Vilnius 2007-2018

Vilniaus atvirasis žemėlapis ne visada buvo toks detalus, koks yra šiandien. Jį pildome jau daugiau nei 10 metų. Automatinis importas buvo darytas tik su adresų informacija, taigi visi keliai, pastatai, lankytinos vietos yra suvestos, patikrintos ir pataisytos rankomis.
Šiame video galima pamatyti, kaip Vilniaus kelių duomenys pildėsi nuo 2007 iki 2018 metų.

Jei norite patys susikurti istorinį video savo miestui, instrukciją ir reikiamą skriptą rasite straipsnyje apie istorijos video kūrimą. Jums reikės kantrybės importuojant duomenis, o video kūrimas QGIS’u jau tik vaikų žaidimas.

Share

Kartografijos problemos ir jų sprendimai

Pagrindiniu vadinamas OpenStreetMap žemėlapis (tas, kurį matome www.openstreetmap.org) dažnai sulaukia neigiamų nuomonių, nes yra perkrautas, jame rodoma (ar bandoma rodyti) galybė įvairiausios informacijos, neaiškus žemėlapio tikslas ir žinutė, kurią jis bando perduoti. Bet geriau pasidomėjus paaiškėja, didžioji dalis tokios kritikos nėra pelnyta, šio žemėlapio kartografai sprendžia labai netrivialias problemas. „Pagrindinis“ žemėlapis visų pirma yra skirtas žymėtojams, kad jie matytų tai, ką sužymėjo. Tai reiškia, kad jis skirtas labiau žemėlapiais besidominčiais žmonėmis nei eilinis žmogus, todėl persotinimas yra leistinas. Taip pat reikia suprasti, kad šis stilius yra skirtas rodyti viso pasaulio duomenis, o tai reiškia, kad kartografai turi išspręsti galybę įvairiausių uždavinių, kaip maksimaliai aiškiai pavaizduoti norimą informaciją, kai jos variacijų gali būti labai labai daug. Jei kažkokia simbolizavimo priemonė (spalva, šablonas, simboliai) panaudoti vienoje vietoje vaizduoti elementui ar savybei X, kitame pasaulio gale elementui Y jau reikia ieškoti kitokių sprendimų. O juk sprendimas kiek įmanoma turi būti intuityvus.

Imagico

Tinklaraštyje blog.imagico.de galima šiek tiek paskaityti pasakojimų, kokios pasitaiko problemos ir kokie kartografiniai jų sprendimai svarstomi ar pritaikomi OpenStreetMap žemėlapyje.

  • Paišyti linijas yra paprasčiausia dalis. Ar tikrai? Ką daryti, kai daug neištisinių (punktyrinių) linijų reikia pavaizduoti šalia, jei jos nėra tiesios? Kaip turint ribotą spalvų kiekį pavaizduoti svarbias kelio savybes: klasifikaciją, dangą, paskirtį? Ar esate pastebėję „pašvaistę“ aplink žemėlapyje rodomą tekstą? O pašvaistę aplink kelius?
  • Vandens įraše aprašomas vandens objektų vaizdavimas. Dažniausiai visas vanduo būna vienos spalvos, bet gal nebūtinai? Gal galima skirtingomis spalvomis pavaizduoti skirtingas vandens savybes, ir tai padaryti taip, kad žemėlapio naudotojui vaizdavimo skirtumai būtų kiek galima intuityvesni? O kaip vaizduoti brastas, kad jos neuždengtų savęs?
  • Miškų vaidavimo įraše rasite informacijos apie tai, kokie gali būti miškai, iš karto pasakysiu, kad tai ne tik: lapuočiai, spygliuočiai ir mišrūs. Kaip skirtingi miškai buvo vaizduojami skirtingais istoriniais periodais. Kokie miškų žymėjimai yra svarbūs? Koks gaunasi galutinis miškų vaizdas?

Taip, didžioji dalis šios informacijos yra gan specifinė ir techninė, bet tai turėtų būti geras pavyzdys, ką gi daro „tie kartografai“. Pagaliau kiekvienam žemėlapių mylėtojui šie įmagico.de įrašai turėtų būti malonūs skaityti, nes yra daug iliustracijų 🙂

Share

Lietuvos upių baseinai

Atvirąjį žemėlapį galima naudoti ne tik lankytinų vietų ar kelio iki jų paieškai. Atvirojo žemėlapio duomenis galima naudoti ir darant įvairius skaičiavimus. Pabandykime paskaičiuoti Lietuvos upių baseinus.

Skaičiavimui imsime upių ir upeliukų duomenis, tada nurodysime upių žemupius, nuo kurių reikės „lipti“ aukštyn upe, užeinant į visus intakus. Skaičiuojant „grynus“ baseinus, Lietuvoje gausime gan neįdomų vaizdelį – ~80% Lietuvos užima Nemuno baseinas. Todėl paskaičiuosime ir kelis Nemuno intakų baseinus: Neries, Šešupės, Nevėžio ir Merkio. Tada jau gauname spalvingesni/įdomesnį rezultatą:

Upių baseinai

Skaičiavimas

Skaičiavimui naudojama PostGIS funkcija st_touches, randanti objektus, kurie liečia nurodytą objektą, ir senas geras „bangos“ principas, paprastai taikomas trumpiausio kelio iš labirinto paieškai.

Galima pastebėti, kad jei imtume ir kanalus, tai Ventos-Dubysos kanalo pagalba Nemunas „užgrobtų“ ir Ventą, na arba atvirkščiai 🙂 Na, bet kanalų mes neimame, nes skaičiuojame tik natūralius vandens kelius, taigi du skirtingi baseinai niekaip negali susijungti.

Probleminės vietos – už Lietuvos ribų išeinančios upės: Šešupė (ta kuri į Nemuną įteka), Mūša, Nemunėlis ir kitos. Galimi du sprendimo variantai:

  1. Tarkime nuo Mūšos (einant upe aukštyn) dar Latvijos pusėje atsiskiria daug kitų upių, kurios prasideda Lietuvoje. Galime visas tokias Mūšos baseino upes „surinkti“ ties Lietuvos siena ir iš karto priskirti Mūsos baseinui (darant „standartinį“ skaičiavimą upės baseiną pradedame nuo vienos atkarpos, o Mūšos atveju pradėsime nuo kelių atkarpų).
  2. Šešupė į Nemuną įteka iš Karaliaučiaus pusės, nors prasideda Lietuvoje. Galima atskirai atsisiųsti Šešupės atkarpos Karaliaučiuje duomenis ir juos rankiniu būdu susidėti į duombazę, kad atstatytume pilną upės trajektoriją (daroma prielaida, kad skaičiuojame naudodami tik Lietuvos duomenis)

Kam viso to reikia?

Toks skaičiavimas vizualizuoja kur yra kokie baseinai. Tada mes galime geriau įsivaizduoti, kad būdami 80% Lietuvos teritorijos, į upę paleidę žaislinį laivelį, jį vėliau sutiksime Rusnėje (žinoma jei jis stebuklingai peršoks visas užtvankas).

Kitas dalykas, taip mes patikriname OpenStreetMap duomenis. Jei kažkokios upės kelių atkarpos lieka nepriskirtos jokiam baseinui – reiškia yra duomenų klaidų. Gal griovys neteisingai pažymėtas kaip upeliukas, gal trūksta kažkokios upės atkarpos, gal nėra nupaišytas vandens kelias per vandens telkinius (ežerus, tvenkinius). Vizualiai klaidos atrodo taip:

Upių baseinų klaidos

Kelias per ežerus ir tvenkinius? Kam? Ogi tam, kad vėliau būtų galima daryti maršrutizavimą upėmis. Netolimuose planuose yra upių žemėlapis, kuriame būtų galima skaičiuoti baidarių, laivų, plaustų ar kokių kitų neskęstančių plaukimo priemonių maršrutą. Tam reikia, kad upių duomenys būtų teisingi, kaip kelių duomenys.

Išeities failai

Jei kas norite pabandyti patys paskaičiuoti upių baseinus, ar turite minčių, ką dar galima padaryti su tokiais skaičiavimais, susiimportuokite Lietuvos duomenis į PostgreSQL su PostGIS ir tada naudokite šiuos skriptus:

  • table.sql – pagrindinė lentelė, kurioje laikomi upių segmentų duomenys
  • sesupe.sql – Šešupės duomenys (realiai einant upe aukštyn Šešupė Lietuvoje „pasirodo“ viename taške, tai šis importas nėra būtinas, tiesiog išbandytas principas)
  • excess.sql – pertekliniai segmentai (palei sieną arba kai kurie oficialiai neregistruoti „upeliukai“, nesusijungiantys su bendru upių tinklu)
  • touch.sql – vieno bangos žingsnio skaičiavimo funkcija
  • process.sql – pagrindinė upių baseino skaičiavimo funkcija
  • upiu_baseinai.qgs – QGIS projektas rezultatų peržiūrai

Paleidimas:

psql gis < table.sql
psql gis < touch.sql
psql gis < excess.sql
psql gis < sesupe.sql
psql gis < process.sql

Ir tada QGIS’e atsidarote projekto failą upiu_baseinai.qgs. Projekte tikimasi, kad db yra localhost su standartiniu prievadu (portu) ir naudotoju gis be slaptažodžio. Jei pas jus kitokie nustatymai – pataisykite .qgs projekto failą rankomis (tai paprastas xml failas).

Tai teik su vandeniu, o algoritmą panaudosime ir kitiems tikslams… 🙂

Share

Vektorinis žemėlapis

Džiugu pranešti, kad atnaujintas openmap.lt pradėjo naudoti vektorinius žemėlapius. Mano žiniomis, tai pirmas Lietuvoje padarytas vektorinis žemėlapis (kitas yra Google žemėlapis, bet jis ne Lietuvoje padarytas).

Sakysite, kad techninės detalės, niekam neįdomu? Ne. Štai kelios paprastam naudotojui matomos vektorinio žemėlapio savybės, kurių nebuvo ir negalėjo būti anksčiau naudotuose rastriniuose („kaladėliniuose“) žemėlapiuose.

Žemėlapio pasukimas

Nors šiais laikais įprasta žemėlapį orientuoti taip, kad viršuje būtų šiaurė (beje, istoriškai taip buvo ne visada: viduramžiais viršuje buvo pietūs, dar anksčiau viršuje buvo rytai). Vektorinį žemėlapį galima pasukti kaip norime, ir visos etiketės (gatvių, lankytinų vietų ir pan. pavadinimai) bus atitinkamai perpaišytos, nebus aukštyn kojomis parašyto teksto:

Kam to reikia? Dažnai žmonės mėgsta žemėlapį pasukti savo žiūrėjimo kryptimi. Jei tarkim aš stoviu prie Gedimino paminklo Katedros aikštėje ir noriu eiti link Rotušės, tai norėsiu taip pasukti žemėlapį, kad Rotušė būtų „virš“ Katedros aikštės. Taip pat galima padaryti, kad žemėlapis automatiškai sukinėtųsi pagal judėjimo kryptį (kaip tai daroma GPSR įrenginiuose).

Žemėlapio pakreipimas

Žemėlapį taip pat galima pakreipti, taip sudarant erdvinio vaizdo įspūdį:

Pasukti ir pakreipti žemėlapį galite dešiniu pelės mygtuku arba dviem pirštais tapšno-įrenginiuose.

Žemėlapis yra interaktyvus

Galima spausti ant žemėlapyje rodomų lankytinų vietų, bus rodoma papildoma informacija, tokia kaip darbo laikas, svetainė, nuotrauka ir pan.

Ortofotografinis sluoksnis

Šiame žemėlapyje yra ir Nacionalinės Žemės Tarnybos ortofotografinis ORT10LT sluoksnis. Tai nėra vektorinės technologijos nuopelnas tiesiogiai, bet su vektoriniu žemėlapiu yra daug paprasčiau padaryti, kad ant ortofotografinio žemėlapio būtų rodomi kelių, upių pavadinimai ir pan.

Kitos techninės naujovės

Taipogi yra eilė naujovių labiau techninėmis detalėmis besidomintiems. Tarkim vektorinio žemėlapio atveju, serveris grąžina tik objektų formas. Kaip braižomas žemėlapis (kokie objektai braižomi, kokie nebraižomi, kokios naudojamos spalvos, kelių storiai, piktogramos lankytinoms vietoms ir panašiai) yra valdoma paprastu json failu žemėlapį rodančioje svetainėje. Tai reiškia, kad dabar, net neatlikdami sudėtingų veiksmų, tokių kaip savo duombazės kūrimas, osm duomenų įkėlimas ir atnaujinimas ir pan. jūs galite susikurti savo žemėlapį tiesiog įvairiais vizualaus redagavimo įrankiais pakoregavę stiliaus json failą pagal savo poreikius (gal išmesti sau neįdomius objektus, gal spalvas pritaikyti prie savo svetainės spalvų schemos ir pan.).

Pakreipus žemėlapį galima pridėti 3D žemėlapį tiesiog panaudojus pastatų aukščio informaciją.

Ir dar daug daug kitų naujų galimybių, apie kurias bus rašoma vėliau 🙂

Share

2017 – piliakalnių metai

2017 metai paskelbti piliakalnių metais. Tikriausiai visi žinome bent keliasdešimt piliakalnių, bet tikrai ne visi žino, kad Lietuvoje žinomų/atrastų/patvirtintų piliakalnių yra beveik 900! Visus juos rasti galite Lietuvos lankytinų vietų žemėlapyje http://places.openmap.lt/.

Lietuvos piliakalniai

Mano šiandienos žiniomis, daugiau piliakalnių turi tik Didžioji Britanija (~2000). Kai kurie piliakalniai yra sutvarkyti, padaryti privažiavimai, laiptai. Kiti gi lieka „paslėpti“ po medžiais ar krūmais, tokius rasti galima tik naudojantis žemėlapiu.

Atvirame žemėlapyje piliakalnių informacija buvo suvesta naudojant archeologų svetainės piliakalniai.lt duomenis. Šioje svetainėje rasite ir detalesnį dr. Gintauto Zabielos piliakalnių, jų tipų, raidos ir tyrimo istorijos aprašymą.

Piliakalnių sąrašas pastoviai pildomas atradus naujus piliakalnius. Taip taip, piliakalnių sąrašas auga! Atrandami nauji piliakalniai! Gal ir jūs rasite kokį naują piliakalnį? 🙂

Kadangi places.openmap.lt duomenis ima iš OpenStreetMap, tai visus piliakalnius rasite ir iš OpenStreetMap duomenų daromuose Garmin žemėlapiuose, ir įvairiose programėlėse išmaniesiems įrenginiams.

Įdomių atradimų piliakalnių metais!

Share