Jos kaikki Suomen järvet multipolygoneiksi muuttuisivat

Jos kaikki Suomen järvet multipolygoneiksi muuttuisivat, niin Garmin-kartalla näkyisivät saariakin sisältävät vesialueet. Nythän siellä näkyvät monista suurista järvistä vain rantaviivat. Eilen määrittelin kokeeksi Inarinjärven, ja sehän näkyy hienosti, jopa saarien sisältämät järvet. Saimaata en uskaltanut ruveta vielä työstämään. Vähänkin isompi multipolygon saa JOSMin tahmaamaan, jos ei valitse wireframe-piirtotilaa (ctrl-w).

Merialueet ovat oma lukunsa. Periaatteessa mkgmap osaa muodostaa rantaviivoista multipolygonit itse (–generate-sea=multipolygon), mutta käytännössä Geofabrikin valmiiksi leikatuista alueista puuttuu tieto siitä, mistä kohtaa ne on leikattu. Samaten splitter vaatii pieniä korjauksia, jottei se riko leikkausrajalla olevia multipolygoneja. Splitterin tekijä on ilmeisesti halukas tekemään tarvittavat korjaukset, mutta Geofabrikin karttapaloihin ei varmaankaan ole luvassa korjausta lähiaikoina.

Relaatiot voivat olla uusi asia monille, mutta niitä ei tarvitse pelätä. JOSMissa on aika mukava relaatiomuokkain. Kannattaa vain olla huolellinen, sillä JOSM ei ilmeisesti vielä osaa tarkistaa multipolygon-relaatioita. Olen korjannut muutamia relaatioita, joihin oli liitetty muiden järvien saaria. Määrittelin jokaisesta järvestä oman multipolygon-relaationsa: rantaviiva (natural=water tai natural=coastline) role=outer ja saaret (natural=land tai natural=wood) role=inner.

Jos vielä voisi luopua natural=coastlinen käytöstä järvillä kokonaan, niin saataisiin isotkin järvet mukaan shapefile-kartoille ja PostGIS:iin osm2pgsql-ohjelmalla. En tiedä, onnistuuko, mutta ensi viikollahan tuon voi Inarinjärvestä tarkistaa. Ehkä tuo ralaatiolle annettu natural=water ja itse rantaviivalle annettu natural-coastline -yhdistelmä toimii. Eivät nuo relaatiotkaan ongelmattomia ole, ainakaan jos haluaa käyttää tietoja muilla kuin vartavasten OSM:ia varten tehdyillä ohjelmilla. Multipolygoneiksi tehdyt järvet kyllä tulevat tiedostoihin oikein, eli reikäisinä polygoneina, mutta reiät, joille on joille on annettu omia ominaisuustietoja, kuten saarille natural=land, tuntuvat tipahtavan pois.
Geofabrikin Suomi-aineistossa näyttää olevan 50143 natural=water -kohdetta. Näistä vain 2872:lla on nimi.

Eilen SlippyMapin Mapnik-taso näytti kovin oudolta Lokan ja Porttipahdan tekojärvien kohdalla. Määrittelin niille asianmukaiset multipolygonit, ja nyt suorat viivat ja käänteiset vesialueet ovat kadonneet kartalta.

Inarinjärvellä liitin aluksi saarten järvet mukaan isoon relaatioon roolissa outer, mutta silloin mkgmap antoi niille pikkujärvillekin nimeksi Inarinjärvi. Daeron poisti järvet relaatiosta, ja minä määrittelin saarille omat multipolygonit (natural=land ja järvet (natural=water) roolissa inner).

Siitä voi halkoa hiuksia, onko natural=land enemmän oikein kuin täysin tyhjä saari. Daeron nimittäin poisti myös saarille lisäämäni natural=land, ja minä palautin ne takaisin määriteltyäni järviä sisältävien saarten multipolygonit. Jos Inarinjärven saaret voidaan olettaa pääosin luonnontilaisiksi, natural=land ei liene kovin väärin (vielä oikeammin saattaisi olla natural=wood). Asutummilla alueilla saaret lienee paikallaan jättää merkitsemättä, jos maankäytöstä ei ole tietoa.

Piirtelin ison osan Saimaata multipolygoneiksi. En antanut nimiä muille kuin selkeille osille, joiden nimet olivat pääteltävissä teiden tai siltojen nimistä, kuten Savilahti Mikkelissä. Joitakin saaria nimesin pisteiden tai teiden nimien perusteella.
Viimeisestä multipolygonista tuli vähän turhan iso (yli 1200 jäsentä), kun en löytänyt luontevaa katkaisukohtaa. Opinpahan JOSMin tehokäyttöä, ja noita voi pilkkoa myöhemmin. Nyt Garmin-karttani näyttää jo kovin siniseltä. Saatan jatkaa Saimaata lähipäivinä vielä koilliseen päin, ellei joku muu innostu ensin.

Tuota…
Johtuukohan tuon Keep Rightin antama virhe kotivesilläni tuosta Saimaan vesistön multipolygonihommasta vai mahdollisesti Rääkkylän kunnan rajan polygoneista vai jostain muusta?
Keep right sanoo kohdassa
http://keepright.ipax.at/report_map.php?zoom=13&lat=62.18836&lon=29.82826&layers=B00T&ch=0%2C30%2C40%2C50%2C60%2C70%2C90%2C100%2C110%2C120%2C130%2C150%2C160%2C170%2C180%2C191%2C192%2C193%2C194%2C195%2C196%2C197%2C198%2C201%2C202%2C203%2C204%2C205%2C206%2C207%2C208%2C210%2C220%2C231%2C232%2C270%2C281%2C282%2C283%2C284%2C291%2C292%2C293%2C311%2C312&show_ign=1&show_tmpign=1
"This way is tagged with natural water and should be closed loop.!
Navigaattorissa en ole voinut tuota multipolygonihommaa katsoa, koska minun Garminini meni pimeäksi ja on nyt takuuhuollossa.
Openstreetmap-sivun kartassa sekä kunnan raja että tuo linkin osoittama Jaama-Suoparsaari alue näyttää olevan ihan O.K.
Sinänsä tuo Keep Right on näköjään herkkä valittamaan. Itse tekemiäni virheitä (, sen havaitsemia ja muita itse havaitsemiani hölmöilyjä) aion korjata joskus kesemmällä, kun saan ensin navigaattorin ja kelit lämpiävät.

Keep Right ei taida ymmärtää sitä, että natural=water on jaettu moneen osaan. Jostain syystä (latautumisen nopeuttamiseksi?) pitkät polut on kartalla jaettu enintään 500 solmun mittaisiin osiin, niin kuin rantaviiva Rääkkylän ympäristössäkin. Voisin mainita tuosta Keeprightin tekijälle.

Suurimmassa määrittelemässäni palasessa Saimaata oli noin 1400 polkua samassa relaatiossa, siinä kun ei ollut mitään selkeitä salmia, joiden kohdalta olisi ollut luontevaa pilkkoa rantaviivaa. Siitä saattaa jokin multipolygon-työkalu jo ruveta yskimään.

Navigaattorissa on helppo havaita splitter-ohjelman tämänhetkinen puute, että se ei säilytä multipolygon-relaatioita karttapalasten rajoilla. Saimaa näyttää aika hassulta karttapalan rajan lähistöllä. Siihen on kyllä tulossa lähiaikoina korjaus.

OSMin api-rajapintaan tuli 2000 pisteen rajoitus viime keväänä versiopäivityksen yhteydessä. Perustelu oli tosiaan, että aina kun polkua muutetaan, pitää koko polku lähettää uudestaan palvelimelle, mikä alkaa jo kestää pidempään. Myös erityisesti Potlatch hidastui kovasti “ylipitkiä” polkuja käsiteltäessä. Sittemmin ohje on ollut tuota 500 pisteen luokkaa, niin käyttäjien ei tarvitse heti katkaista polkua uudestaan, jos esim. saavat tarkennettua rantaviivaa kävellen tms. tavalla. Maanteillä näin pitkiä pätkiä ei yleensä tule vastaan, jokin tien ominaisuus muuttuu aikaisemmin (tai sitten on muunnettu suoraan gps-loki pisteiksi). Pisimmät maantie-polut taitavat nyt olla Suomessa 200 pisteen luokkaa.

Tekijä vahvisti oletukseni ja lupasi tehdä asialle jotain. Hän lupasi myös harkita ehdottamieni multipolygon-tarkistusten toteuttamista.

Vanha Windows-osm2pgsql ei sekään ymmärrä Inarinjärven relaatioita. Järvi ei ole järvi, sen sijaan muutaman saaret ovat. Osa saarissa olevista järvistä kyllä on vettä, kuten pitääkin. Järvi ei ole myöskään mukana Geofabriikin shapefilesatsissa. Se saattaa vielä ajan mittaan hävitä Mapnik-tasoltakin, nyt se kenties piirretään sinne harvakseen päivittyvästä coastline-aineistosta. Mutta periaatteessa hyvä yritys, ehkä ohjelmat joskus kehittyvät OSM-relaatioiden tasolle.

Entä näkyykö Saimaa? Sen rannat muutin natural=water ja poistin saarilta natural=coastline.

Ei näy Saimaakaan Geofabrikin shapefileissä. Tarkistin myös Cloudmaden shapefilet, mutta en ole ihan varma voiko niistä päätellä vielä mitään. Ne olivat helmikuun 9. päivältä, ja periaatteessa Inarinjärvi oli jo siihen aikaan natural=water. Sellaisena se ei näy, mutta toisaalta järvi on kuitenkin mukana coastline-viivoina. Eli jos Cloudmade tekee tiedostot suoraan OSM-aineistosta, niin helmikuun 9. päivän aineisto on ehkä tehty ainakin pari päivää vanhemmasta tilanteesta.
Järvirelaatioita ja ylipäätään polygoneja varmaan opitaan OSM:ssa hallitsemaan ajan mittaan, mutta muuten olen kyllä sitä mieltä, että reipas relaatioiden käyttö voi johtaa suuriin vaikeuksiin datan käytössä, sen lisäksi että se tekee kartan muokkaamisen epämiellyttäväksi ja karkottaa aloittelijat. Olen tehnyt 11 vuotta töitä OSM-tyylisen viivanpätkistä-alueita relaatioiden avulla -tietokannan ympärillä, mutta ei minulle tulisi mieleen edes itse ruveta rakentamaan relaatioita käsityönä ilman juuri sitä varten viritettyä sovellusta, puhumattakaan että laittaisin jonkun muun tekemään samaa. En ole viitsinyt tehdä edes reikäisiä polygoneja kuin pari kokeeksi, koska GIS-ihminen minussa sanoo, että ei ketään pitäisi pakottaa tekemään niin yksinkertaista asiaa sillä tavalla. Mutta OSM:ssa joudutaan tasapainottelemaan yksinkertaisen muokkauksen ja monipuolisten ominaisuuksien välillä. Relaatioita kuitenkin tarvitaan esimerkiksi kunnollisen reitityksen aikaansaamiseksi.

Olen pitkälti samaa mieltä, mutta kuten totesit, relaatiot ovat välttämättömiä joissakin sovelluksissa. Viime kesänä katselin Tallinnan karttaa, ja siellä pisti silmään se, että bussilinjoja oli piirretty pari metriä tien sivuun ilman relaatioita. Se vaikutti hankaloittavan kartan muokkaamista paljon enemmän kuin relaatioiden käyttäminen. Mihin esimerkiksi piirretään jalkakäytävät? (Niitä oli Tallinnassa merkitty hyvin säästeliäästi, samoin kuin suojateitä, joita ei edes ollut jokaisen risteyksen jokaisessa kulmassa. 20 cm:n reunakiveltä ei niin vain lähdetä ylittämään ajorataa lastenvaunuilla tai polkupyörällä. Lisäsin sinne vain muutaman jalkakäytävän ja suojatien reittijälkieni perusteella enkä ruvennut ekstrapoloimaan.)

Silloin tällöin tulee vastaan rikkinäisiä kääntymiskielto- ja reittirelaatioita. JOSM taitaa rikkoa kääntymiskieltorelaatiot lisäämällä oletusarvoisesti jokaisen tienpätkän relaatioon, kun riittäisi säilyttää vain via-jäsentä lähin tie. Reittirelaatiot taas tuppaavat menemään rikki, kun lisätään kiertoliittymiä tai kaksiajorataisia osuuksia. Niitä on hankala korjata automaattisesti. Kääntymiskieltorelaatiot ovat siitä helppoja, että käyttämäni mkgmap osaa valittaa niistä.

Uskon, että saaret ja järvet pysyvät paremmin paikoillaan kuin tiet. Teitähän pilkotaan tavan takaa, kun sellaisten määreiden kuin surface, lit, maxspeed, name, ref arvot muuttuvat tai kun määritellään reittirelaatioita.

Tuomiojärvi Jyväskylässä on hieman yksinkertaisempi esimerkki järvi-saari-relaatiosta.

http://www.openstreetmap.org/browse/relation/69021

Kyllä, on yksinkertaisempi, eikä sekään toimi Cloudmaden eikä Geofabrikin shapefileissä. Molemmissa Tuomiojärvi on kokonaisena alueena ilman saarireikiä. Ulkoreuna tulee mukaan, koska se on yhtenä sulkeutuvana rinkulana. Esimerkiksi Lehtisaari on kyllä sekin olemassa omana metsäisenä maankäyttöalueenaan. Kumpikin firma käyttää ilmeisesti samaa työkaluohjelmaa, joka ei hallitse järviä ja saaria.
Saarijärven Pyhäjärvi on tehty vähän eri tavalla, rantaviiva on jaettu pätkiin, ja saarilla on toisenlaisia tageja. Siitä ei shapefileihin siirry mitään.
http://www.openstreetmap.org/browse/relation/303406

Kuopiossa näkyy nykyään kastuvan jalat: http://www.openstreetmap.org/?lat=62.8939&lon=27.6743&zoom=12&layers=0B00FTF (viittaus 17.02.2010).

Olisiko multipolygon liian iso tai Mapnik niin tyhmä, ettei se ymmärrä katsoa karttapalan kokonaan ympäröiviä multipolygoneja?

Multipolygonien pilkkominen on hieman ristiriitaista. Avasin siitä oman viestiketjunsa Suurten multipolygonien pilkkominen ja toivon rakentavia ehdotuksia.

Korjaus: Mapnik- ja OpenCycleMap-kartat näyttävät hyviltä mutta Osmarender-tasolla tulvii. En huomannut, että olin valinnut Osmarender-kartan näkyviin. Kyseessä on Osmarenderin virhe. Wiki-sivulla Osmarender/Development oli jo mainittu kaksi virhettä, ja nyt tämä kolmaskin.

Rääkkylässä on nyt Openstreetmap.org -kartta aivan sekaisin. Saaret, mm. Jänissaari, Oravisalo ja Varpasalo ovat “kastuneet” ja järvi niiden ympärillä kuivanut. MM. Jänissaaren nimeksi on tullut “Saimaa” ja sen rantaviivan nimeksi Jänissaari. Katso vaikka tästä linkistä http://www.openstreetmap.org/?lat=62.3418&lon=29.6642&zoom=12&layers=B000FTF . Imuroin tuon gmapsupp.img-tiedoston ja katselin sitä Qlandkarte-ohjelmalla Linuksissa ja se taas näyttää tämän seudun lähialueet ihan O.K. samoin navigaatorissa on pari päivää vanhempi veriso O.K, kun vain suurennus on riittävä. Sen sijaan mittakaavalla, jolla näkyy koko Pohjois-Karjala, ei jävi näy navigaattorissa lainkaan. Höytiäinen näkyy myös Qlandkartessa pelkänä rantaviivana. Sehän (Höytiäinen) ei ilmeisesti lainkaan Saimaan multipolygoniin. No. toivottavasti nuo ongelmat ratkeavat vähitelle. Tuo tilannekarttalinkki on katsottu siis 25.2.2010 kello 21.30.

Tänään Openstreetmap on korjautunut. Klo 9.00

Mikä tarkalleen oli sekaisin? Linkkisi on Slippy Map -selaimeen, joka voi näyttää eri tavalla piirrettyjä karttoja. Yksi piirrostapa on Osmarender, jossa kuulemma on sellainen vika, että se voi sekoilla, jos multipolygon-alueen reunaviiva ylittää zoom-tason 12 karttapalan rajan. Käsittääkseni muut karttakuvat (Mapnik, pyöräilykartta OpenCycleMap ja nimettömät tiet) on piirretty Mapnikilla. Niissä en ole huomannut virheitä. Tai no, yhden virheen sentään, mutta se lienee virheellisen datan syytä. Tämän tekemäni jakoviivan (Heposelkä, Saimaa) eteläpuolella maa ja vesi olivat vaihtaneet jokin aika sitten paikkaa, mutta nyt Mapnik näyttää ne oikein. Relaatiota 405813 (jakoviivan eteläpuolinen Saimaa) on muutettu ainakin kahdesti minun jälkeeni, ja ainakin nykyistä edeltävä versio 7 näytti järkevältä. En pystynyt lataamaan relaation historiaa, koska se kesti palvelimen mielestä liian kauan.

Oletko huomannut Slippy Map -ikkunan oikeassa ylänurkassa ±merkin? Sitä painamalla voit valita näytettävän kartan sekä Data-tason. Data-tasolta voit valita karttakohteita, kuten vaikka Suuri Jänissaari. Katsoin muutaman saaren historiaa, ja ne ovat minun jäljiltäni.

Jos kerrot Höytiäisen id:n minulle, niin voin määritellä järvelle multipolygonin. Tällä haavaa en ole enää määrittelemässä suuria vesistö-multipolygoneja (kuten Päijänne), koska sitä vastustettiin. Mkgmap osaa tehdä natural=coastline-viivoistakin vesialueita, mutta silloin järville ja saarille ei käsittääkseni voi antaa nimiä. Jotta voisin käyttää kyseistä valitsinta, minun täytyy “padota” Geofabrikin karttapala eli “rakentaa” Suomen raja-alueiden pikkujärvien ja Itämeren rantaviivat umpeen. En ole vielä kokeillut, kuinka se kävisi helposti päinsä.

Muutama viikko sitten muutin mkgmapin oletustyyliä niin, että järvet näkyvät karkeammallakin mittakaavalla. Mutta navigaattori ei aina näytä kaikkea, mitä kartalla on, eikä se ole tarkkaan kartoitetuilla alueilla järkevääkään. Kokeile valita kartta-asetuksista täydet yksityiskohdat, jospa järvi sitten näkyisi. Helpoiten lähetät Garmin-kartastani palautetta suoraan minulle tai avaat tänne uuden viestiketjun sitä varten.

Multipolygoneissa on tällä hetkellä sellainen ongelma, että karttapalat pilkkova splitter-ohjelma ei vielä osaa säilyttää relaatioita vaan jättää leikkausalueensa ulkopuoliset pisteet pois, vaikka ne tai niiden viivat kuuluvat alueella näkyvään relaatioon. Siksi karttapalojen rajojen lähellä saattaa esiintyä virheitä. Karttapalojen rajat näet valitsemalla koko Suomen näkyviin.