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/05/05 06:55] – [Personalizzazione dello stile default] 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 247: | Line 305: | ||
==== Personalizzazione dello stile " | ==== Personalizzazione dello stile " | ||
- | Queste le esigenze | + | Rispetto allo stile //default// si sono rese necessarie alcune modifiche |
* I **confini regionali** devono essere **sempre visibili** (anche alla scala 800 km). Prepareremo quindi un **livello #3** (il meno dettagliato) alla **risoluzione 18**. | * 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**. | * 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**. | * 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/ | Dai sorgenti di **mkgmap** si è estratta tutta la directory **mkgmap-r3741/ | ||
Line 278: | Line 345: | ||
==== Personalizzazione del simbolismo (file TYP) ==== | ==== Personalizzazione del simbolismo (file TYP) ==== | ||
- | Ogni GPS Garmin ha un **simbolismo predefinito** che definisce l' | + | 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 ===== | ||
- | Nella mappa caricata è possibile definire delle **personalizzazioni** rispetto al simbolismo predefinito. Abbiamo sfruttato questa possibilità per **modificare l' | + | |
+ | * **[[https:// | ||
+ | | ||
+ | | ||
+ | * **[[http:// | ||
+ | * **[[https:// | ||
+ | |
tecnica/gps_cartografia_gis/osm_recipes.1525496129.txt.gz · Last modified: 2018/05/05 06:55 by niccolo