Atviro žemėlapio duomenys visiems laisvai prieinami, su jais daryti galima bet ką. Tai reiškia galima ir pasidaryti savo Garmin žemėlapį. Garmin žemėlapį sukurti galima galybe skirtingų būdų, yra labai daug galimybių ir metodų, todėl parašysiu seriją straipsnių, po žingsnį rodant kaip padaryti vieną ar kitą dalyką, pradedant nuo paties paprasčiausio Garmin žemėlapio sukūrimo, iki sudėtingo žemėlapio su savais objektais ir savu atvaizdavimo stiliumi (sava simbolika).
Žemėlapio duomenys
Visų pirma mums reikės duomenų. Yra daug variantų, kaip ir iš kur gauti duomenis, čia paminėsiu tik vieną – patį paprasčiausią. Naudokite http://download.geofabrik.de/. Ten rasite visų žemynų, šalių, regionų duomenis.
Visiems tolimesniems bandymams naudosime Lietuvos duomenis, kuriuos parsisiųsti galima iš čia: http://download.geofabrik.de/europe/lithuania.html.
Mus domina pbf failas lithuania-latest.osm.pbf.
Programinė įranga
Žemėlapį kursime naudodami atviro kodo programinę įrangą mkgmap (MaKe Garmin MAP).
Svetainė: http://www.mkgmap.org.uk.
Atsisiųskite paskutinę versiją (failas mkgmap-r1234.zip, kur 1234 – versijos numeris). Išpakuokite naujame aplanke. Turėtumėte gauti tokius failus/aplankus:
- doc
- examples
- lib
- LICENCE
- README
- mkgmap.jar
Patikrinkite, ar gerai atsisiuntė programa ir ar veikia java. Įvykdykite tokią komandą:
java -jar mkgmap.jar --version
Turėtumėte gauti kažką panašaus į šitą:
Time started: Sun Jul 16 16:22:57 EEST 2017
3973
T.y. paleidimo laikas ir mkgmap versijos numeris. Jei paleisti nepavyko – patikrinktie, ar veikia java.
Paprasčiausias žemėlapio kūrimas
Pabandykime paprasčiausią žemėlapio kūrimo komandą:
java -jar mkgmap.jar --input-file=lithuania-latest.osm.pbf
Gauname tokį atsakymą:
SEVERE (MapFailedException): lithuania-latest.osm.pbf:
(thrown in BufferedImgFileWriter.ensureSize()) There is not
enough room in a single garmin map for all the input data.
The .osm file should be split into smaller pieces first.
Garmin žemėlapio formatas turi apribojimą, kokio dydžio gali būti vienas žemėlapio „gabalas“ (nesigilinkime detaliau, kas tas „gabalas“), t.y. kiek informacijos galima sukišti į vieną žemėlapio dalį. Jei bandytume sukurti žemėlapį mažesniam regionui (tarkim tik Vilniui, arba kokiai dar mažesnei už Lietuvą šaliai), tai šios komandos užtektų. Dabar gi mums teks duomenis padalinti į gabalus.
Duomenų dalinimas į gabalus
Dalinimui naudosime programą splitter, kurią galite atsisiųsti iš tos pačios mkgmap svetainės: http://www.mkgmap.org.uk/download/splitter.html.
Padalinimui nurodysime tik pradinį duomenų failą ir maksimalų taškų skaičių – 3,2 milijono. Nesigilinkime, kodėl šis skaičius toks, ar kitoks 🙂
java -jar splitter.jar --max-nodes=3200000 lithuania-latest.osm.pbf
Šis dalintojas sukurs tiek žemėlapio duomenų failų, kiek reikia. Šio įrašo rašymo metu Lietuvai sukuriami keturi failai:
- 63240001.osm.pbf
- 63240002.osm.pbf
- 63240003.osm.pbf
- 63240004.osm.pbf
Dabar mums reikia pakartoti žemėlapio kūrimą, nurodant visus keturis failus.
Žemėlapio kūrimas iš kelių šaltinio kaladėlių
Mums reikia papildyti anksčiau naudotą mkgmap paleidimą kelių įvesties failų nurodymu (rašykite vienoje eilutėje)
java -jar mkgmap.jar --input-file=63240001.osm.pbf
--input-file=63240002.osm.pbf
--input-file=63240003.osm.pbf
--input-file=63240004.osm.pbf
--gmapsupp
Atkreipkite dėmesį, kad gale pridėta dar papildoma parinktis –gmapsupp – ji nurodo, kad iš visų šių keturių duomenų failų reikės sukurti vieną gmapsupp failą. Paleidžiame:
Time started: Sun Jul 16 21:01:03 EEST 2017
Number of MapFailedExceptions: 0
Number of ExitExceptions: 0
Time finished: Sun Jul 16 21:02:41 EEST 2017
Total time taken: 97612ms
Na ir turėtų būti atsiradęs failas gmapsupp.img – tai žemėlapis, kurį galite įsikelti į savo Garmin GPSR įrenginį:
Tai tiek pirmam kartui. Šis žemėlapis neturi adresų paieškos galimybės, niekaip neįtakota, kokie objektai pateko/nepateko į žemėlapį ir panaudotas standartinis Garmino vaizdavimo stilius. Kaip šiuos dalykus valdyti, bus rašoma vėliau.