tecnica:gps_cartografia_gis:osm_recipes
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
tecnica:gps_cartografia_gis:osm_recipes [2018/04/26 07:02] – [Stile della mappa] niccolo | tecnica:gps_cartografia_gis:osm_recipes [2020/07/31 09:54] (current) – [Riferimenti Web] niccolo | ||
---|---|---|---|
Line 2: | Line 2: | ||
In questa pagina alcune ricette utili per cucinare mappe OpenStreetMap da caricare su navigatore GPS. In particolare l' | In questa pagina alcune ricette utili per cucinare mappe OpenStreetMap da caricare su navigatore GPS. In particolare l' | ||
+ | |||
+ | Tutti gli script qui descritti sono contenuti nell' | ||
===== Spazio limitato: è necessario un compromesso ===== | ===== Spazio limitato: è necessario un compromesso ===== | ||
Line 7: | Line 9: | ||
Per motivi di capienza sarà quindi necessario restringere l' | Per motivi di capienza sarà quindi necessario restringere l' | ||
+ | **ATTENZIONE**: | ||
===== Cosa includere ===== | ===== Cosa includere ===== | ||
Line 13: | Line 16: | ||
* **Centri abitati**. Avere i centri abitati come waypoint è utile per effettuare ricerche e spostarsi velocemente sulla mappa del GPS. | * **Centri abitati**. Avere i centri abitati come waypoint è utile per effettuare ricerche e spostarsi velocemente sulla mappa del GPS. | ||
* **Confini amministrativi**. Si sono inclusi i confini delle regioni italiane soprattutto per fini " | * **Confini amministrativi**. Si sono inclusi i confini delle regioni italiane soprattutto per fini " | ||
+ | |||
+ | ===== Galleria ===== | ||
+ | |||
+ | {{.: | ||
+ | {{.: | ||
+ | {{.: | ||
+ | |||
+ | {{.: | ||
+ | {{.: | ||
+ | {{.: | ||
===== Confini regioni italiane da Istat ===== | ===== Confini regioni italiane da Istat ===== | ||
Line 161: | Line 174: | ||
</ | </ | ||
- | Per estrarre le way e trasformarle al volo in nodi si usa una query **amenity_way.xml** leggermente diversa: | + | Per estrarre le way si usa una query **amenity_way.xml** leggermente diversa: |
<code xml> | <code xml> | ||
Line 173: | Line 186: | ||
</ | </ | ||
- | La differenza sta nell' | + | La differenza sta nell' |
+ | |||
+ | Notare che secondo le indicazioni del wiki il **[[https:// | ||
Con **wget** si scarica i due estratti da OpenStreetMap: | Con **wget** si scarica i due estratti da OpenStreetMap: | ||
Line 182: | Line 197: | ||
</ | </ | ||
- | Per diminuire le dimensioni del file destinazione si rimuove | + | Con lo script **{{.: |
+ | |||
+ | Per diminuire le dimensioni del file destinazione si rimuovono | ||
<code bash> | <code bash> | ||
- | osmfilter "op_amenity_n.osm" --keep-node-tags=" | + | osmfilter "op_amenity_n_fix.osm" --keep-node-tags=" |
--drop-author --fake-version --out-osm -o=" | --drop-author --fake-version --out-osm -o=" | ||
</ | </ | ||
- | * FIXME Il file **op_amenity_w.osm** | + | Per trasformare ogni //way// del file **op_amenity_w.osm** |
- | | + | |
+ | Come si sono estratti gli opportuni oggetti | ||
===== Centri abitati da OSM ===== | ===== Centri abitati da OSM ===== | ||
- | ===== mkgmap-splitter | + | L' |
+ | |||
+ | <code bash> | ||
+ | osmfilter " | ||
+ | --keep-node-tags=" | ||
+ | --drop-author --fake-version --out-osm -o=" | ||
+ | </ | ||
+ | ===== Assemblare tutti i pezzi ===== | ||
+ | |||
+ | Per combinare tutte le parti prodotte in precedenza si utilizza **osmconvert** contenuto nel pacchetto Debian **osmctools**: | ||
+ | |||
+ | <code bash> | ||
+ | osmconvert \ | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | -o=" | ||
+ | </ | ||
+ | |||
+ | Il risultato è un file **gmapsupp.osm** ancora nel **formato XML di OpenStreetMap**. | ||
+ | ===== mkgmap-splitter | ||
+ | |||
+ | Il file risultante **gmapsupp.osm** deve essere suddiviso in quadranti più piccoli (tile, mattonelle) per adeguarsi al formato Garmin, si utilizza il programma **mkgmap-splitter** installato dal pacchetto Debian omonimo. | ||
+ | |||
+ | < | ||
+ | mkgmap-splitter gmapsupp.osm | ||
+ | </ | ||
+ | |||
+ | Il risultato è una serie di file la cui simensione è di circa **10 Mb** ciascuno: | ||
+ | |||
+ | * **63240001.osm.pbf** | ||
+ | * **63240002.osm.pbf** | ||
+ | * ... | ||
+ | |||
+ | |||
+ | ===== Personalizzare lo stile della mappa ===== | ||
- | ^ %%--region-name%% | Viene mostrato accanto al nome del centro abitato nella visualizzazione | + | Prima dell'esecuzione finale del programma |
- | ===== Stile della mappa ===== | + | * I **levels** sono versioni |
+ | * Gli **styles** associano ogni elemento OSM ad un particolare simbolismo (rendering grafico) Garmin, indicando a quale //level// si applica. | ||
+ | * Il **linguaggio TYP** può essere usato per modificare i simbolismi predefiniti Garmin, ad esempio per modificare come viene visualizzato un certo tipo di track o path. | ||
Fondamentale lettura è il **[[https:// | Fondamentale lettura è il **[[https:// | ||
Line 218: | Line 276: | ||
| 24 | 120 - 80 m | | | 24 | 120 - 80 m | | ||
- | ==== Personalizzazione | + | ==== Lo stile " |
- | Dai sorgenti di **mkgmap** si è estratta la directory | + | Lo stile **default** è inglobato nell' |
- | + | ||
- | | + | |
- | | + | |
In **options** si vede che la mappa contiene 4 livelli di dettaglio: | In **options** si vede che la mappa contiene 4 livelli di dettaglio: | ||
Line 247: | Line 302: | ||
Secondo le indicazioni OpenStreetMap l'// | Secondo le indicazioni OpenStreetMap l'// | ||
+ | |||
+ | ==== Personalizzazione dello stile " | ||
+ | |||
+ | Rispetto allo stile //default// si sono rese necessarie alcune modifiche per realizzare una mappa destinata all' | ||
+ | |||
+ | * I **confini regionali** devono essere **sempre visibili** (anche alla scala 800 km). Prepareremo quindi un **livello #3** (il meno dettagliato) alla **risoluzione 18**. | ||
+ | * Alcuni **centri abitati** compaiono alla scala **5 km**. Il **livello #2** verrà usato quindi alla **risoluzione 19**. | ||
+ | * Le **track** e **path** devono essere visibili **dalla scala 2 km**. Per questo prepareremo un **livello #1** (dettaglio intermedio) alla **risoluzione 20**. | ||
+ | * Gli **waypoint** appaiono dalla scala **120-80 m**. Si tratta del **livello #0** (il più dettagliato) alla **risoluzione 24**. | ||
+ | |||
+ | Schematicamente: | ||
+ | |||
+ | ^ Oggetto | ||
+ | ^ Confini regionali | ||
+ | ^ Centri abitati minori | ||
+ | ^ Track e path | ||
+ | ^ Waypoint | ||
+ | |||
+ | Dai sorgenti di **mkgmap** si è estratta tutta la directory **mkgmap-r3741/ | ||
+ | |||
+ | * **styles/ | ||
+ | * **styles/ | ||
+ | |||
+ | Nel primo si definiscono i livelli di dettaglio e la relativa risoluzione: | ||
+ | |||
+ | < | ||
+ | levels = 0:24, 1:20, 2:19, 3:18 | ||
+ | </ | ||
+ | |||
+ | Nel secondo si definisce a quale risoluzione far comparire i vari oggetti: | ||
+ | |||
+ | < | ||
+ | highway=footway|highway=path|highway=steps [0x16 road_class=0 road_speed=0 resolution 20] | ||
+ | highway=track [0x0a road_class=0 road_speed=1 resolution 20] | ||
+ | ... | ||
+ | boundary=administrative & admin_level< | ||
+ | boundary=administrative & admin_level< | ||
+ | boundary=administrative & admin_level< | ||
+ | boundary=administrative & admin_level< | ||
+ | </ | ||
+ | |||
+ | ==== Personalizzazione del simbolismo (file TYP) ==== | ||
+ | |||
+ | Ogni GPS Garmin ha un **simbolismo predefinito** che definisce l' | ||
+ | |||
+ | Nella mappa compilata con mkgmap è possibile tuttavia definire delle **personalizzazioni** rispetto al simbolismo predefinito. Abbiamo sfruttato questa possibilità per **modificare l' | ||
+ | |||
+ | Per ottenere il risultato è sufficiente creare un file **my_etrex10.txt** con questo contenuto: | ||
+ | |||
+ | < | ||
+ | [_id] | ||
+ | ProductCode=0x1 | ||
+ | FID=9999 | ||
+ | [end] | ||
+ | |||
+ | [_line] | ||
+ | Type=0x00a | ||
+ | ;GRMN_TYPE: Roads/ | ||
+ | UseOrientation=Y | ||
+ | Xpm=" | ||
+ | "- c # | ||
+ | " | ||
+ | " | ||
+ | ; | ||
+ | String1=0x04, | ||
+ | ExtendedLabels=N | ||
+ | [end] | ||
+ | |||
+ | [_line] | ||
+ | Type=0x016 | ||
+ | ;GRMN_TYPE: Roads/ | ||
+ | UseOrientation=Y | ||
+ | Xpm=" | ||
+ | "- c # | ||
+ | " | ||
+ | " | ||
+ | ; | ||
+ | String1=0x04, | ||
+ | ExtendedLabels=N | ||
+ | [end] | ||
+ | </ | ||
+ | |||
+ | **ATTENZIONE**: | ||
+ | |||
+ | < | ||
+ | highway=track [0x0a road_class=0 road_speed=1 resolution 24 continue] | ||
+ | highway=track [0x0a01 road_class=0 road_speed=1 resolution 23-20 continue] | ||
+ | highway=track [0x0a02 road_class=0 road_speed=1 resolution 19] | ||
+ | </ | ||
+ | |||
+ | La riga **[[wp> | ||
+ | |||
+ | **NOTA BENE**: Con **mkgmap versione svn3741** non è più necessario compilare il file TYP, è possibile utilizzare direttamente il testo sorgente. | ||
+ | |||
+ | ===== No Results found: bug POI non elencati per categoria ===== | ||
+ | |||
+ | Sembra che ci sia un bug nel firmware dell' | ||
+ | |||
+ | Dovrebbe essere sufficiente che la **mappa OSM** contenga un nodo di questo tipo: | ||
+ | |||
+ | < | ||
+ | <node id=" | ||
+ | <tag k=" | ||
+ | <tag k=" | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | e lo stile **styles/ | ||
+ | |||
+ | < | ||
+ | amenity=place_of_worship [0x2c0d resolution 24] | ||
+ | </ | ||
+ | |||
+ | Si è verificato invece che in alcune condizioni ciò non accade, la categoria **Community** riporta **No Results found - Try Adjusting Search Parameters**. Dalle prove fatte è necessario rispettare le seguenti condizioni per **evitare il bug**: | ||
+ | |||
+ | - Il file mappa OSM deve **contenere dei nodi** - eventualmente fasulli - che verranno assegnati agli stili da 0x2c0a a 0x2c0c. Tali nodi devono essere in prossimità degli altri, cioè più o meno nel range della mappa; posizionandoli in prossimità delle coordinate lat=0 lon=0 non funziona. | ||
+ | - Il file dello stile deve definire degli stili per i nodi di cui sopra, **assegando le icone da 0x2c0a a 0x2c0c**. | ||
+ | |||
+ | In pratica sembra che l' | ||
+ | |||
+ | |||
+ | ===== mkgmap ===== | ||
+ | |||
+ | L' | ||
+ | |||
+ | Durante l' | ||
+ | |||
+ | < | ||
+ | mkgmap \ | ||
+ | --reduce-point-density=4 --unicode \ | ||
+ | --description=" | ||
+ | --style-file=' | ||
+ | --country-name=' | ||
+ | --region-name=' | ||
+ | --family-id=9999 \ | ||
+ | --gmapsupp 63240*.osm.pbf \ | ||
+ | ./ | ||
+ | </ | ||
+ | |||
+ | L' | ||
+ | |||
+ | ===== Riferimenti Web ===== | ||
+ | |||
+ | * **[[http:// | ||
+ | * **[[https:// | ||
+ | * **[[https:// | ||
+ | * **[[http:// | ||
+ | * **[[http:// | ||
+ | * **[[https:// | ||
+ | * **[[https:// |
tecnica/gps_cartografia_gis/osm_recipes.1524718938.txt.gz · Last modified: 2018/04/26 07:02 by niccolo