55 lines
1.9 KiB
Markdown
55 lines
1.9 KiB
Markdown
# Dyomedea
|
|
|
|
## Hiking app.
|
|
|
|
## Components
|
|
|
|
### Slippy
|
|
|
|
The viewport on the underlying map
|
|
|
|
### Map
|
|
|
|
The map itself (and its overlays)
|
|
|
|
## Data formats
|
|
|
|
There is a number of data formats more or less specific to geography and hiking, such as:
|
|
|
|
* [GPX 1.1 Schema Documentation](https://www.topografix.com/GPX/1/1/)
|
|
* [GeoJSON](https://geojson.org/)
|
|
* [Keyhole Markup Language - Wikipedia](https://en.m.wikipedia.org/wiki/Keyhole_Markup_Language)
|
|
* [Elements — OpenStreetMap Wiki](https://wiki.openstreetmap.org/wiki/Elements)
|
|
* [<svg> - SVG: Scalable Vector Graphics | MDN](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/svg)
|
|
|
|
SVG is very generic and is used to draw 2D figures in HTML applications and doesn't care about geography.
|
|
|
|
KML, GeoJSON and OSM elements have been designed to represent generic geographical points and shapes.
|
|
|
|
GPX is more specific, having been designed to represent routes and tracks and its semantices are directly useable in our application.
|
|
|
|
The strucure of our components and indexes can therefore follow the GPX format.
|
|
|
|
OSM elements is interesting to extract information from the OSM DB, either by querying their API or by downloading portions of the database.
|
|
|
|
GeoJSON might be of interest as an intermediate format since a number of JS libraries have been developped to perform queries or draw GeoJSON data as SVG.
|
|
|
|
KML might be considered as an import format.
|
|
|
|
And SVG, of course will be used to render tracks and routes on a map since its elements are directly supported by React.
|
|
|
|
## Notes to self
|
|
|
|
### Patching node_modules
|
|
|
|
This can be done by updating their sources in the node_modules directory and using the patch-package npm CLI command (thanks [stackoverflow](https://stackoverflow.com/a/13302095/1402881)) :
|
|
|
|
```
|
|
$npx patch-package localized-strings
|
|
```
|
|
|
|
However, it takes ages before `ionic serve` takes these modifications into account.
|
|
|
|
|
|
|