Topologijos taisyklės

Plotai su „skylėmis“

OpenStreetMap žymėtojai dažnai klausia, ką daryti, kai turime parkelį, sudarytą iš miško ir jo viduryje esančios pievos. Kaip juos teisingai pažymėti?

Tokiu atveju OpenStreetMap tikėtina turėsime du kelius: A – išorinis perimetras, B – vidinės pievos perimetras:

Jei išorinį kelią A pažymėsime tiesiog landuse=forest, o vidinį – landuse=meadow, gausime tokius geografinius objektus:

Kaip matome, miškas neturi iškirpimo. Taigi jei skaičiuosime miško plotą – gausime neteisingą rezultatą. Kuriant žemėlapį reikės pievos plotą (apskritimą) paišyti vėliau (aukščiau) už miško plotą (stačiakampį), jei norėsime, kad pieva matytųsi. Kadangi realiame žemėlapyje bus daug panašių objektų, tai vienoje vietoje „iškirpimas“ bus pieva, kitoje – miškas, trečioje vanduo, ketvirtoje ežero sala. Taigi net teoriškai neegzistuos tokia braižymo tvarka, kuri užtikrintų teisingą objektų vaizdavimą. Vienu atveju nesimatys miškai, kitu – pievos, vienu atveju nesimatys ežero salos, kitu atveju – maži ežeriukai miškuose.

Sprendimas yra sukurti multipoligoną (ryšį), kuriame A kelią nurodytume kaip „outer“ kelią, o B – kaip „inner“. Tokiu atveju gautume trečią geografinį objektą:

Gavome objektą su „išpjova“. Būtent toks ir yra miškas. Turint tokį mišką mums ir ploto skaičiavimai gausis teisingi, ir nereikės rūpintis, ką braižyti pirmą – mišką ar pievą – visada gausime teisingą rezultatą, nes figūros viena su kita nepersidengia.

Galutinis objektų sąrašas turėtų būti toks:

  • C – miško multipoligonas (landuse=forest), sudarytas iš A kaip „outer“ ir B kaip „inner“.
  • B – pievos poligonas (landues=meadow) – kelias B
  • A – parko poligonas (leisure=park) – išorinis kelias. Parkas yra viskas: ir miškas, ir pieva. Braižant žemėlapį parkas yra „virš“ visko. T.y. apačioje braižome miško/medžių ir pievos/žolės plotus, o tada virš jų, jei to reikia žemėlapiui, paišome permatomą „parko“ plotą arba tiesiog parko pavadinimą, dengiantį tiek miško, tiek pievos dalis.

Puiku. Bet ne visi žino, kad taip reikia žymėti. Ką daryti? Sukurti ir naudoti Topologijos taisykles, kurios šiuo konkrečiu atveju nurodytų, kad miško ir pievos poligonai negali persidengti.

Kas yra topologijos taisyklės?

Topologijos taisyklės apibrėžia santykį tarp skirtingų objektų geografinėje informacinėje sistemoje. Tarkime viena taisyklė gali nurodyti, kad miško poligonai negali persidengti vienas su kitu. Kita taisyklė gali nurodyti, kad miško poligonas negali persidengti su vandens poligonu. Dar kita taisyklė – kad miesto X adreso taškai turi būti miesto X administracinėse ribose.

Daugiau principinių topologijos taisyklių pavyzdžių galite rasti ESRI Topologijos taisyklių brošiūroje.

Kam reikalingos topologijos taisyklės

Apibrėžus topologijos taisykles ir jų laikantis, geografinė duomenų bazė tampa tvarkingesne. Kuriant ar keičiant duomenis aiškiau, kaip reikia teisingai braižyti. Prisiminus aukščiau aprašytą parko pavyzdį, apibrėžus taisyklę, kad miškas ir pieva negali persidengti, pasidaro aišku, kad neužteks nupaišyti pievą vidury miško, reikia tokį patį plotą „iškirpti“ iš miško.

Laikantis tokių taisyklių palengvinamas ir kartografų darbas. Jei pagal aukščiau apibrėžtą pavyzdį pievos plotas bus iškirptas iš miško, kartografui nereikės rūpintis, ką paišyti pirmiau/žemiau – mišką ar pievą. Nors šiuo konkrečiu atveju atrodytų, kad paišykime mišką žemiau, tada virš jo pievą ir viskas bus gerai, bet kas bus, jei turėsime analogišką situaciją, tik dabar jau turėsime mažą miškiuką didelėje pievoje? Jei nedarysime pievos iškirpimo pagal miško plotą, galutiniame žemėlapyje miškas nesimatys.

Nepamirškime ir plotų skaičiavimo. Tarkime norime paskaičiuoti bendrą miškų plotą. Jei pievos ar kiti miško viduje esantys plotai nebus „iškirpti“ – mes gausime neteisingą suminį plotą (bus įskaičiuotas ir pievų plotas). Susumavę visus Lietuvos miškus, pievas, gyvenamuosius plotus, vandenį ir t.t. ir pan. mes gausime didesnį skaičių nei bendras Lietuvos plotas!

OpenStreetMap

Atvirame žemėlapyje duomenims yra suteikiama labai didelė laisvė. Žymėtojai patys gali susigalvoti norimas žymas, jų reikšmes. Taip pat nėra apibrėžtos (bent jau kol kas) ir topologijos taisyklės. Taigi kas kaip sugalvoja, tas taip ir braižo. Tokia anarchija nors ir padaro braižymą lengvesniu, bet užtat tokių duomenų naudojimas yra sudėtingesnis.

Taigi kol kas yra apibrėžiamos tik regioninės topologijos taisyklės. Pavyzdžiui Lietuvoje yra apibrėžtos kelios topologijos taisyklės. Bendras jų veikimo procesas yra toks:

  1. Topologijos taisyklė yra suformuluojama, pasiūloma ir aptariama.
  2. Topologijos taisyklė patvirtinama, vykdoma taisyklės neatitinkančių objektų paieška, taisomos problemos ir tuo pačiu tikrinama, ar visur taisyklės taikymas yra logiškas. Jei kažkur taikymas nelogiškas – taisyklė arba taisoma, arba jos atsisakoma apskritai.
  3. Jei pavyksta ištaisyti visas topologijos taisyklės klaidas, taisyklė įjungiama į „stebėjimo režimą“. Tai reiškia, kad periodiškai (kasdien) yra patikrinama, ar naujai įvesti ar pakeisti objektai atitinka taisyklės reikalavimus.

Tai tiek bendros informacijos apie topologijos taisykles. Žinokite, kad toks dalykas yra, rašykite į sąrašyną (talk-lt) naujų taisyklių kūrimo ar esamų keitimo pasiūlymus!

Share

Lietuvos pažintiniai takai

Lietuvoje yra virš šimto pažintinių takų. Informacija apie juos buvo renkama OpenStreetMap nuo pat projekto atsiradimo pradžios. Nes tuo metu (prieš 13 metų) praktiškai nebuvo kito pasirinkimo (neskaitant dedikuotų GIS sprendimų). Kalbant apie pažintinius takus, mums įdomi tiek taškinė informacija (kurią paprasta rodyti žemėlapyje, „į kurią“ galima naviguoti ir pan.), tai paprastai bus pažintinio tako pradžios taškas (ar taškai, kai pradžių yra kelios). Na ir įdomi pati trasa (maršrutas), nes kai jis nubraižytas žemėlapyje, mes galime geriau suprasti, ką pamatysime eidami konkrečiu taku.

Maršrutų informacija yra pakankamai sudėtingas dalykas, todėl nėra taip jau ir trivialu pamatyti pažintinių takų informaciją, nors būdų tikrai yra daug. Žemiau pateiksiu kelis variantus skirtingiems taikymams/įrenginiams.

Interneto svetainės

Galite naudoti http://hikebikemap.org/. Joje įsijungę „Lonvia Hiking Routes“ matysite pažintinių takų maršrutus (ten pat galite įsijungti ir dviračių maršrutų rodymą).

Lietuvoje galite naudoti https://places.openmap.lt svetainę. Joje yra galimybė matyti pažintinius takus kaip taškus žemėlapyje, tai patogu ieškant pažintinių takų Lietuvoje:

Bet galite ir gauti tiesiog sąrašą visų pažintinių takų: https://places.openmap.lt/pazintiniai-takai/

Na ir detalią pažintinio tako informaciją:

Mobilioji programėlė

Mobiliuose aparatuose (telefonuose, planšetėse), kai norite viską turėti nenaudojant interneto, kaip visada nepralenkiama yra OsmAnd programėlė, tik žmonės dažnai nežino/neranda reikiamo funkcionalumo, kurio OsmAnd labaaaai jau daug.

Taigi. Einame į meniu „Konfigūruoti žemėlapį“, ir ten pačioje pabaigoje randam punktą „Maršrutai“:

Tada žiūrime skiltį „Padengimas žygių simboliais“:

Čia galite pasirinkti jums priimtinesnį pėsčiųjų maršrutų vaizdavimą (arba jį išjungti). Ir viskas, tada žemėlapyje matysite paryškintus pažintinius takus:

Duomenys

O dabar truputis techninės informacijos tiems, kas ne tik naudoja OpenStreetMap informaciją, bet ją pildo/taiso.

Pažintinių takų tašką žymime maršruto pradžioje kaip paprastą tourism=attraction, tik pridedame papildomą žymą attraction:type=hiking_route. Toliau standartiškai name, website, description, image, distance žymos.

Pats maršrutas – keliai, sujungti į ryšį, turintį tokias žymas:

  • type=route
  • route=hiking
  • network=lwn
  • name=**** pavadinimas, lygiai toks pats, kaip ir aukščiau minėtame tourism=attraction taške ****
  • distance=5

Štai ir viskas. Gero vaikščiojimo! 🙂

Share

Vikipedjos duomenų palyginimas

Prieš porą metų buvo rašyta apie Lietuvoje naudojamą sistemą išorinių šaltinių ir OSM duomenų lyginimui (I dalis, II dalis). Sistema randa neatitikimus, o mums tada lieka arba taisyti trūkumus OSM, arba pranešti problemą išorinio šaltinio savininkams.

Tai šį kartą parašysiu apie konkretų pavyzdį – Vikipedijos (Wikipedia) informacijos naudojimą kaip išorinį šaltinį, ir kaip Jūs galėtumėte prisidėti.

Lyginimas su Vikipedija

Jau keli metai, kaip Vikipedijos straipsniuose galima pridėti ir geografinę informaciją (koordinates). Todėl galima pradėti daryti „surišimą“ tarp OSM ir Vikipedijos duomenų. T.y. galima pažiūrėti:

  1. ar visi objektai, kurie OSM turi „wikipedia“ žymą, Vikipedijoje turi nurodytas koordinates (na ir ar apskritai toks straipsnis yra Vikipedijoje
  2. ar yra OSM visi objektai, kurie turi savo aprašymus Vikipedijoje su koordinatėmis (išskyrus kai kuriuos objektus, kuriems OSM ne vieta, pavyzdžiui įvykių vietos)

Palyginimo rezultatą galite rasti čia: http://patrulis.openmap.lt/wikipedia.html:

Kokios gali būti situacijos

Pagrindinis dalykas, kurį reikia žinoti, tai kad nei vienas duomenų rinkinys (nei Vikipedija, nei OSM) nėra 100% teisingas. Būtent todėl ir reikia, kad žmogus patikrintų rezultatus.

Dažniausia situacija bus tokia, kad ir objektas yra OSM’e, ir straipsnis Vikipedijoje turi nurodytas koordinates, ir koordinatės sutampa su OSM (su šiokia tokia paklaida). Tokie objektai sąraše apskritai nebus rodomi (todėl ir eilės numeriai eina ne iš eilės), nes su jais nieko ir daryti nebereikia.

„NĖRA“

Gali būti, kad objektas su koordinatėmis yra Vikipedijoje, bet jo nėra OSM’e. Tokiu atveju sąraše bus rodoma rausva eilutė su tekstu „NĖRA“. Reiškia reikia atsidaryti OSM žemėlapį pagal Vikipedijos nurodytas koordinates ir pažiūrėti, kokius duomenis turime OSM’e. Spaudžiame ant „NĖRA“ ir gauname detalesnę konkretaus objekto informaciją:

Čia turime nuorodą „Atidaryti vietą“ (viena skirta JOSM redaktoriui, kita – iD redaktoriui). Spaudžiame nuorodą, jūsų redaktoriuje turėtų atsidaryti atitinkama vieta.

Jei randame straipsnį atitinkantį objektą ir jis neturi žymos „wikipedia“ – tiesiog pridedame žymą „wikipedia“ su reikšme, kuri nurodyta eilutėje „Straipsnis“, konkrečios iliustracijos atveju – „lt:Respublikinė Panevėžio ligoninė“ – atkreipkite dėmesį į „lt:“ priekyje – tai būtina dalis, nes rodome į lietuvišką Vikipedijos straipsnį.

Turėkite omenyje, kad Vikipedijoje koordinatės tiesiog įrašomos kaip skaičiukai. T.y. įvedimo metu nesimato, į kokią vietą pasaulyje tos koordinatės rodo, kokie šalia yra objektai ir pan. Taigi gali būti, kad koordinatės nurodytos netiksliai. Kartais netikslumas bus keli metrai, kartais kilometrai, kai kuriais išimtiniais atvejais galima rasti koordinačių Afrikoje 🙂 (čia rimtai)

Tai jūsų tikslas, žinoma, identifikuoti teisingą objektą teisingoje vietoje. T.y. nereikia OSM esamo objekto traukti į Vikipedijos koordinates, jei jums pagal ortofoto ar kitus šaltinius (svetaines internete, savo vietines žinias ar pan.) matosi, kad OSM koordinatės yra teisingos.

Jei objekto OSM nėra, reikia jį sukurti teisingoje vietoje ir vėlgi pridėti „wikipedia“ žymą.

Jei nesate tikri, ortofoto aiškiai nesimato, internete nieko doro rasti nepavyksta – geriau nieko nedarykite – palikite kaip yra. Gal kas nors kada nors nuvažiuos ir vietoje paieškos trūkstamo objekto.

Atkreiptinas dėmesys, kad Vikipedijoje gali pasitaikyti objektai, kurie realiai ir neturi atsidurti OSM žemėlapyje. Pavyzdžiui mūšių vietos (kai toje vietoje šiandien fiziškai nėra tarkim paminklo). Tada geriau klausti sąrašyne (talk-lt) ar IRC.

„YRA“

Jei objektas yra, bet Vikipedijos ir OSM koordinatės nesutampa daugiau nei paklaida, tai įrašas sąraše vis tiek bus, bet jis bus žalias, o po įrašu bus pilka eilutė, kur bus nurodyta, kur toks objektas yra OSM’e ir koks yra pozicijų neatitikimas. Tada galima bandyti patikrinti, kurios koordinatės yra neteisingos. Jei neteisingos OSM’e – reikia pataisyti (perkelti objektą).

Tai tiek variantų taisant OSM duomenis.

Netikslūs Vikipedijos duomenys

Jei matote, kad Vikipedijoje netikslūs duomenys – palikite (šiame įraše nedetalizuosiu, kaip taisyti Vikipediją). Žinoma, jei žinote kaip – galite pataisyti ir Vikipedijoje.

Sąrašo antroje dalyje būtent ir bus surašyti objektai OSM’e, kurie turi „wikipedia“ žymas, bet nurodytas Vikipedijos straipsnis arba neegzistuoja, arba neturi koordinačių. Šį kartą nenagrinėsime, ką su tokiais įrašais daryti, nes čia jau ne OSM, o Vikipedijos redagavimas (ir yra žmonių, kurie Vikipediją tvarko pagal OSM duomenis, na bent aš žinau du).

Tikrinimo principinės klaidos

Nors ši sistema naudojama jau ne pirmus metus, duomenys, algoritmai ir pan. pastoviai keičiasi, taigi gali būti klaidų pačiame tikrinime. Tada geriausia būtų parašyti į talk-lt (ar man asmeniškai), žiūrėsime, ką galima padaryti.

Palyginimo sąrašas atnaujinamas neperiodiškai. Jei bus daug tvarkančių – galima atnaujinti kad ir kasdien (Vikipedijos duomenys atsinaujina tik kas ~mėnesį).

Tai tiek. Pabandykite, pažiūrėkite, ir būtinai klauskite, jei kas neaišku. Kuo daugiau sutvarkysite tokių paprastų palyginimų, tuo daugiau laiko seniau palyginimu užsiimantiems žmonėms liks sudėtingų lyginimų tvarkymui (kelių geometrijai, upių intakams ir pan.)

Share

Duomenų pildymas naudojant Street Complete

Atviro žemėlapio redagavimas nebūtinai turi būti sudėtingas. Yra programėlių, kurios leidžia labai paprastai pildyti trūkstamus duomenis. Viena tokių – StreetComplete.

Su šia programėle galite papildyti trūkstamus duomenis: darbo laiką, kelių dangą, namų aukštį bei stogo formą ir pan. Jums absoliučiai nieko nereikės žinoti apie OpenStreetMap žymas. Visa informacija bus pateikta labai aiškiai, yra net vertimas į lietuvių kalbą.

Jūsų įvesti duomenys matysis internetiniuose žemėlapiuose (pavyzdžiui lankytinų vietų žemėlapyje), išmaniųjų telefonų programėlėse, Garmin įrenginiams skirtuose žemėlapiuose ir t.t. ir pan.

Autorizacija

Pakeitimai bus siunčiami tiesiai į OpenStreetMap duomenų bazę (be trečiųjų šalių patvirtinimo), todėl prieš dirbant jums reikia nurodyti savo OSM paskyrą. Tą padaryti galite nuėję į Nustatymų meniu:

ir čia parinkę „Autorizuoti prieigą prie OSM“.

Jums reikės nurodyti savo OSM naudotojo vardą ir slaptažodį. Vieną kartą sutvarkius prieigą, daugiau šito daryti nebereikės.

Duomenų pildymas

Programėlės mintis yra duoti jums „užduotis“ pildyti trūkstamą informaciją apie greta jūsų esančius objektus. Taigi ji labiausiai tinka jums esant lauke, vaikštant po miestą ar pan. Kai jūsų telefone įjungtas vietovės aptikimas (įjungtas GPS), programėlė automatiškai atsisiunčia užduotis (informaciją apie objektus su trūkstama informacija) ir rodo jums žymeklius žemėlapyje. Pagal žymeklių piktogramas galite suprasti, kokios informacijos trūksta (darbo laiko, dangos ar pan.). Spustelėję žymeklį, gausite konkretesnį klausimą ir galėsite įvesti atsakymą. Suvedę vieną ar daugiau atsakymų nustatymų meniu parinkite punktą „Nusiųsti atsakymus“ – jūsų pakeitimai nukeliaus į OpenStreetMap duomenų bazę.

Štai pavyzdys, kaip įvedama trūkstama vaistinės darbo laiko informacija ir tada atsakymai nusiunčiami į OSM:

Viskas. Kaip matote veikimas labai paprastas. Darbo laiko, gatvių pavadinimų ir dangos papildymai tikrai labai naudingi. Kiti pakeitimai (kurių pastoviai daugėja), tokie kaip pastatų aukščiai, stogų formos, dviračių stovų kiekis ir pan. gal mažiau naudingi (nes beveik niekas tokios informacijos nenaudoja), bet vis tiek suteikia puikią progą pasivaikščioti ir parankioti žvaigždutes už atliktas užduotis! Svarbiausia nesistenkite užpildyti visko, ko jūsų prašo. Pildykite tik tai, ką tiksliai žinote (idealiu atveju – ką aplankėte ir patikrinote vietoje). Pabandykite!

Gauti iš Google Play

Share

Lietuvos adresai

Atvirame žemėlapyje OpenStreetMap įvedama ir adresų informacija. Adreso informaciją matome prie įvestų objektų, taipogi galime ieškoti konkretaus adreso.

adreso_paieska_openmap

Adresas gali būti įvestas keliais būdais:

  • Atskiras taškas
  • Poligonas (pvz. pastatas) gali turėti nurodytą savo adresą
  • Prie lankytinos vietos informacijos gali būti pridėta ir adreso informacija. Čia pastebėtina, kad net jei adresas nurodytas pastatui, o jo viduje yra daug lankytinų vietų, pažymėtų taškais, visiems jiems vis tiek nurodome adresus. Informacija kartojasi, bet taip bent jau šiuo metu yra paprasčiau, nes kaip nors automatiškai nustatyti adresą lankytinoms vietoms pagal kituose objektuose esančią informaciją toli gražu nėra paprasta iš techninės pusės.

Adresų informacijos pildymas

Jei tikėsime komerciniais žemėlapių tiekėjais, tai Lietuvoje yra daugiau nei 830000 adresų. Atvirame žemėlapyje šiuo metu įvesta beveik 140000 adresų. Pagrindinė tokio mažo adresų skaičiaus atvirame žemėlapyje priežastis – teisiniai apribojimai, kurie neleidžia masiškai importuoti adresų iš Registrų Centro. Kad iš principo tai įmanoma, matome Vilniuje, kur Vilniaus savivaldybei atvėrus adresų duomenis jie buvo greitai suimportuoti.

Iki bus atverta Registrų centro turima adresų informacija, už Vilniaus ribų adresus pildyti galima tik rankiniu būdu. T.y. reikia prisiregistruoti atvirame žemėlapyje, dėti naują tašką neįvesto adreso vietoje (tarkim pastato viduryje) ir nurodyti adreso informaciją – miestą, gatvę ir namo numerį.

adreso_taskas_id

Čia dar kartą verta priminti, kad adresus reikia suvedinėti pagal vietos žinias, o ne kopijuoti iš Registrų centro ar kitų žemėlapių svetainių, kurios naudoja tuos pačius Registro centro duomenis, t.y. adresų negalima kopijuoti iš maps.lt, maps.google.com ar regia.

Adresų informacijos tikrinimas

Kol neturime atviro išorinio adresų šaltinio, negalime pilnai patikrinti į OSM įvestų adresų informacijos korektiškumo, bet kai kurias klaidas rasti visgi galime. Pavyzdžiui:

  • Adreso numeris turi būti sudarytas tik iš skaitmenų ir raidžių – taip galima rasti adresų numerius, kur bandoma įvesti seniai neegzistuojančius „kampinius“ adresus, butų/kambarių informaciją ir pan.
  • Adreso gatvė turi tiksliai sutapti su pavadinimu netoliese esančioje gatvėje, t.y. adrese gatvės pavadinimas turi būti įrašytas su tokiais pačiais tarpais, didžiosiomis mažosiomis raidėmis ir galūnę „g.“ ar pan.
  • Adreso miestas turi patekti į to miesto administracines ribas (beje būtent dėl šios taisyklės prie adreso reikia įvesti ir miestą – žymą „addr:city“, adresų paieškoje ši žyma nenaudojama (miestas nustatomas pagal administracines ribas), jos reikia išimtinai adresų ar administracinių ribų klaidoms aptikti)

Aukščiau išvardintos taisyklės tikrinamos kiekvieną dieną ir adresai atitinkamai taisomi.

Adresų informacijos atsisiuntimas

OpenStreetMap duomenys yra atviri, taigi bet kas gali atsisiųsti Lietuvos (ar viso pasaulio) duomenis ir iš ten išsitraukti adresų informaciją. Deja jei reikia tik adresų informacijos, toks variantas nėra labai patogus, nes:

  • Tenka atsisiųsti žymiai daugiau informacijos, nei kad reikia adresų informacijai ištraukti
  • Adresų informacija gaunama įvairiais geometrijos tipais: taškais arba poligonais
  • Kai kurie adresai kartojasi (pavyzdžiui kai turime pastatą ir jo viduje esančius objektus su adresais)

Kad būtų paprasčiau, Lietuvos adresų informacija išimama iš Lietuvos duomenų, apdorojama ir platinama atskirai. Apdorojimas gan paprastas:

  • Jei adresas yra poligone, kaip adreso koordinatės ištraukiamas poligono centras
  • Jei tokių pačių adresų yra daugiau nei vienas, tai galutiniame faile pateikiamas visų adreso koordinačių geometrinis vidurkis

Tokį apdorotą adresų failą galite atsisiųsti kaip ESRI shape failą iš http://shapes.openmap.lt.

Share