Generalizacija

Kartais gali pasirodyti, kad visos žemėlapių įdomybės yra tik stambiausiame mastelyje, kad smulkesniuose tiesiog rodome mažiau duomenų. Bet ne viskas taip paprasta. Štai kaip atrodo geležinkeliai 11 mastelyje:

Geležinkelio artefaktai 11z

Plika akimi matosi, kad geležinkelis nubraižytas su problemomis. Padidinkime šį piešinį:

Gelžkelio artefaktų 11z fragmentas

Kai kuriose vietose matome netvarkingus geležinkelio „punktyrus“ (apibrėžta raudonai). Kitose vietose matome, kad buvo bandyta braižyti visas esamas geležinkelio linijas, o tokiame mastelyje jos netelpa, todėl gavosi makalynė (apibrėžta mėlynai).

Abi šios problemos atsiranda dėl to, kad kuo smulkesnis mastelis, tuo labiau objektų mastelis neatitinka žemėlapio mastelio: jei mastelis yra 1:50000, tai 3 metrų pločio geležinkelio linija žemėlapyje turėtų būti 0,06mm pločio! Geležinkelį tenka braižyti žymiai platesniu, kad jis apskritai matytųsi žemėlapyje. Realiame gyvenime šalia esančias geležinkelio linijas tenka braižyti vieną ant kitos. Todėl ir gauname košę-makalošę.

Tai taipogi reiškia, kad vektorinėse kaladėlėse yra daugiau informacijos, nei jos realiai reikia: dėl to ilgiau užtrunka kaladėlių kūrimas, daugiau kilobaitų reikia persiųsti internetu ir naršyklės daugiau laiko užtrunka braižydamos informaciją žemėlapyje.

Generalizacija

Tokios problemos sprendžiamos naudojant kartografinę generalizaciją. Generalizacija – tai procesas, kurio metu geoobjektai pašalinami, paryškinami, pastumiami ar pan. tam, kad smulkesnio mastelio žemėlapyje vis tiek būtų įmanoma perduoti norimą informaciją ir žemėlapis neatrodytų kaip košė. Generalizacija daryta nuo senų laikų, bet formaliai ją aprašinėti pradėta XIXa. Šiuo metu, kai išplito GIS naudojimas, automatinė generalizacija yra viena iš įdomiausių sričių, nes reikia matematiškai, algoritmais apibrėžti tai, ką dalis kartografų laiko ne mokslu, o menu. Kas norite daugiau informacijos apie generalizaciją, galite jos rasti internete, kad ir šitoje kiek senstelėjusioje, bet vis dar tinkančioje GITTA medžiagoje.

Sprendimas

Tokios kelių koncentracijos generalizavimo sprendimas yra vienas iš paprastesnių:

Geležinkelio generalizacija

  1. Pradiniai duomenys – geležinkelių keliai (imame tik pagrindinius bėgius, išmetame šalutinius, atsišakojimus ir pan.) – mėlyni vektoriai.
  2. Aplink visus geležinkelius paišome buferį (tarkim 40 metrų) ir visų geležinkelių buferius sujungiame į vieną diiiiiidelį poligoną – žalias poligonas.
  3. Tada randame tokio gauto žalio poligono apytiksles vidurio linijas – juodi vektoriai (piešinyje jie šiek tiek kampuoti, nes matomi duomenys dar ir papildomai supaprastinti tiek, kiek užtenka smulkesniame mastelyje).

Visa ši operacija su visais Lietuvos geležinkeliais neužtrunka nei minutės.

Rezultatas toks:

Generalizuotas geležinkleis

Kiti elementai

Tokios pačios problemos yra su automobilių keliais (tarkime A1, A2 ir kai kurių kitų kelių atkarpos yra dvigubos). Taip pat generalizuoti reikėtų ir plotus. Tikriausiai sudėtingiausias darbas – generalizuoti namus (pradžioje supaprastinti jų geometriją, tada juos praretinti ar sujungti, galiausiai apjungti į didesnius pastatų plotus). Tokiems dalykams vien standartinių PostGIS funkcijų jau neužteks. Bet čia jau užsiėmimas ateičiai.

Share

Žymėtojai 2018-03

Tai kas ir kur žymi Lietuvoje? Ogi pasirodo pakankamai daug skirtingų žmonių! Vieni žymi aplink savo gyvenimo vietą, kiti pagal kažkokias kitas žymėjimo schemas.

Lietuvos žymėtojai 2018-03

Žemėlapis pagamintas padalinus Lietuvą į šešiakampius, tada paskaičiavus, kiek kiekvienas žymėtojas tame šešiakampyje yra paskutinis keitęs tašku, linijų ir poligonų. Kiekviename šešiakampyje vaizduojamas didžiausią skaičių gavęs žymėtojas.

P.S. Tai grubus laisvalaikiui pagamintas vaizdavimas. Jei kas nepateko į žemėlapį, tai nereiškia, kad jūsų indėlis nesvarbus. Juk nupaišome didelį mišką ir gauname tūkstančius objektų, o nupaišome 50 stovyklaviečių – gauname 50. Ir sunku pasakyti, kas realiai vertingiau 🙂

Share

Nuoroda į žemėlapio vietą

Žemėlapius naudojame ne tik tam, kad patys sužinotume daugiau. Žemėlapiais dažnai norime ir draugams perduoti vienokią ar kitokią žinutę. Gal parodyti kokią nors vietovę, gal pakviesti susitikimui į konkrečia stovyklavietę, kavinę ar teatrą. Žinoma galima papasakoti žodžiais, kaip nusigauti į stovyklavietę, ar parašyti kavinės adresą, bet, naudojant openmap.lt žemėlapius, yra ir paprastesnis būdas.

Dinaminis url

Kai jūs naršote po openmap.lt žemėlapį, žemėlapio „adresas“ (url) atrodo daugmaž taip:

openmap.lt/#m/18/54.68047/25.2955/0/26

Kaip matote, po svetainės pavadinimo „openmap.lt“ yra raidelė ir grupė skaičiukų. Neaiškinsiu detaliai, ką reiškia kiekvienas konkretus skaičius (kas labai norės – tikrai patys išsiaiškins), tiesiog užteks pasakyti, kad šiuose skaičiuose yra užkoduota:

  • Įjungtas žemėlapio sluoksnis (paprastas žemėlapis, ortofotografija, mišrus žemėlapis)
  • Mastelis
  • Koordinatės
  • Žemėlapio pasukimas ir pakreipimas (jei nesuprantate, ką tai reiškia – žemėlapyje laikykite dešinį pelės mygtuką ir tempkite pelę)

Taigi užkoduota visa informacija apie tai, ką jūs matote žemėlapyje. Ir kas svarbiausia, šitas url pats pasikeičia, kai tik jūs ką nors padarote su žemėlapiu: pakeičiate sluoksnius, mastelį, pastumiate žemėlapį. Tai reikalinga tam, kad jūs galėtumėte labai nesunkiai vaizdeliu, kurį matote jūs, pasidalinti su savo draugais. Taigi, norėdami draugams persiųsti žemėlapio vaizdą, tiesiog persiųskite jiems adreso juostos turinį. Mobilioje chrome naršyklėje viskas dar paprasčiau – galite tiesiog parinkti meniu „Bendrinti“ ir taip perduoti reikiamą nuorodą jums patogiausiu būdu: paštu, pranešimu ar pan.:

Bendrinimas Chrome naršyklėje

Tokią nuorodą paspaudusiam žmogui bus atvertas tas pats žemėlapis, toje pačioje vietoje, su tais pačiais sluoksniais, kaip ir jums. Taigi drąsiai galite rašyti draugams „man labai patinka šitas parkas, nes…“ ir siųsti tiesiog nuorodą į žemėlapį.

Nuorodą į konkrečią lankytiną vietą

Žemėlapyje jūs galite pažymėti konkrečią lankytiną vietą:

Lankytina vieta žemėlapyje

Prie lankytinos vietos yra „Tiesioginė nuoroda“. Tokią nuorodą gavę žmonės atsidarys ne tik tą patį žemėlapį toje pačioje vietoje, bet dar ir bus atverta tos pačios lankytinos vietos informacija.

Beje, kai atidarote lankytiną vietą, tai url irgi pasikeičia, taigi siųsti galite nebūtinai „Tiesioginę nuorodą“, o ir url turinį (pvz. su Android Chrome funkcija „Bendrinti“)!

Tai puikiai tinka, kai norite pakviesti draugus šnektelėti į kavinę ar aludę, paskutiniu atveju galite net siųsti nuorodą į uždraustąjį žemėlapį! 😉

Share

Kelių koncentracija

Prieš mėnesį buvo rašyta apie kelių klasifikacijos reikšmę kartografijoje ir apie automatinius tikrinimus. Buvo identifikuotos trys problemos:

  • Pasimetę (neprijungti) keliai
  • Per aukšta klasifikacija
  • Per žema klasifikacija

Tada buvo pateiktas pirmos problemos (pasimetusių kelių) sprendimas. Dabar kilo mintis, kaip spręsti antrąją problemą (per aukšta klasifikacija). Gan paprastas (nors ir neidealus) pasirodė toks sprendimas:

  • Daliname Lietuvą į tokio paties dydžio segmentus
  • Kiekviename segmente skaičiuojame kelių ilgius
  • Tikriname didžiausius ilgius turinčius segmentus

Gaunasi visai neblogas rezultatas, kuo raudonesnis segmentas, tuo didesnė jo kelių koncentracija:

Lietuvos kelių koncentracija

Ir priartinta viena iš koncentracijų:

Priartinta kelių koncentracija

Kaip matome, aptinkamos kelių koncentracijos. Sutvarkius didžiausias koncentracijas iškyla neteisingai aptiktos problemos (angl. false positive), t.y. didžiųjų miestų keliai. Bandžiau žaisti su skirtingais segmentų dydžiais, skirtingų klasifikacijų kelių svoriais, skaičiuojant koncentraciją segmente, bet, matyt, teisingesnis sprendimas būtų panaudoti Statistikos departamento turimas gyventojų koncentracijas ir pagal tai koreguoti kelių ilgį. T.y. kuo didesnė gyventojų koncentracija, tuo didesnė gali būti ir kelių koncentracija. Na bet šitą paliksime ateičiai. Kol kas naudinga tiek, kiek identifikuoja paprastas algoritmas 🙂

Kai kurios koncentracijos gali būti neaptinkamos, jei segmentai dengia tik jų dalį. Šitą problemą galima būtų spręsti kuriant persidengiančius segmentus.

Paskutinę problemą – per žemą klasifikaciją – gal būtų galima spręsti darant maršrutizavimo testus, bet yra daug variantų, kur tiesiog kelių grafo analizė negali duoti teisingo sprendimo. Tarkim būna, kad yra kokia nors įmonės/gyvenvietės teritorija ir greta jos tolimesniu keliu eina apvažiavimas, kuris ir turi turėti aukštesnę klasifikaciją, nes būtent apvažiavimu turėtų važiuoti transportas. Panašu, kad tokių dalykų neįmanoma spręsti be ortofotografijos ir vietos žinių…

Share

Lietuvos dviračių žemėlapis

Prieš kokius penkis metus buvo sukurtas atviras Lietuvos dviračių žemėlapis. Per tą laiką technologijos stipriai pasikeitė, tai atėjo laikas šį žemėlapį perdaryti. Taigi pristatome atnaujintą žemėlapį:

Lietuvos dviračių žemėlapis

Žemėlapis turi du lygiaverčius adresus:

Žemėlapio pagrindui sukurta į akis per daug nekrentanti šviesi tema, kur spalvas „gavo“ tik vanduo ir miškas – lengvesniam orientavimuisi. Ryškios spalvos skirtos tik esminiams žemėlapio duomenims – dviračių infrastruktūrai. Ką reiškia kiekviena spalva ar ženkliukas rasite sutartiniuose ženkluose (apačioje dešinėje):

Sutartiniai ženklai

Po sutartiniais ženklais rasite nuorodą į techninį aprašymą, kaip reikia žymėti objektus atvirajame žemėlapyje.

Žemėlapio pildymas

Šiandien Lietuvoje yra ne vienas dviračių žemėlapis. Visų jų pagrindinė problema – atnaujinimas. Jie padaromi kažkokiu metu x ir pamirštami – duomenys neatnaujinami, todėl juos ilgainiui pamiršta ir naudotojai.

Todėl šitas atviras žemėlapis turi šansų neturėti pamiršimo problemos, nes pildyti gali bet kas. Taigi pildykite žemėlapį, jei turite klausimų – klauskite sąrašyne talk-lt. Jei nenorite redaguoti žemėlapio – registruokite pastabas (OSM Notes). Svarbiausia – ne techninė žemėlapio realizacija, o žemėlapio duomenų rinkimas ir atnaujinimas!

Share