Hu:Relation:multipolygon
![]() |
![]() |
Leírás |
---|
A multipoligon kapcsolatot összetett területek ábrázolására használjuk. ![]() |
Csoport: tulajdonságok |
Tagok |
|
Státusz: de facto |
Eszközök a címkéhez |
|
A multipoligon kapcsolatokat összetett területek ábrázolására használjuk. (A kifejezés jelentése: multi = sok, poligon = sokszög. Lásd még: Sokszög a Wikipédiában.)
Egyszerű területeket az OSM-ben úgy térképezzük, hogy egy körben haladó vonalat rajzolunk, és olyan címkével látjuk el, ami inkább területet sugall mintsem körbe futó vonalat. Például ha egy körben haladó vonalat a landuse=forest címkével látunk el, akkor azt feltételezzük róla, hogy terület, míg ugyanarról a zárt vonalról a junction=roundabout címkével ellátva azt feltételezzük, hogy nem terület.
Azonban ez a modell csak olyan területek esetében működik, melyek körvonala egyetlen vonalból áll, és nincs bennük lyuk. Bármely ennél összetettebb terület rajzolása – például mert a körvonala több vonalból áll össze, vagy mert több, egymástól elkülönülő részből áll, vagy mert lyukak vannak benne – multipoligon kapcsolatot igényel.
Röviden szólva a multipoligon kapcsolat egyszerre több vonalat tartalmaz, melyek
- vagy outer (jelentése külső, ejtsd: /ˈaʊtə/) vagy inner (jelentése belső, ejtsd: /ˈɪnə/) szerepet (angolul role, ejtsd: /ɹəʊl/) játszanak, aszerint, hogy az alakzat külső körvonalához vagy egy belső lyukhoz tartoznak, és
- ezen vonalaknak egy érvényes (angolul valid, ejtsd: /ˈvæl.ɪd/) elrendeződésben állva gyűrűket kell alkotniuk, hogy szabályos multipoligont tudjunk belőlük létrehozni.
Címkék
Kulcs | Érték | Használat | Magyarázat |
---|---|---|---|
type | multipolygon | kötelező | Ez a címke mondja meg az egyes számítógépprogramoknak, hogy területet konstruáló szabályokat alkalmazzon a kapcsolat tagjaira. |
... | ... | opcionális | További címkék, melyek leírják a terület tulajdonságait (például a nevét, a területhasználati módot stb.) |
Tagok
Használat
A multipoligonok használatára vonatkozó közösségi ajánlások a következők:
- A multipoligont leíró címkéknek (például landuse=forest) a kapcsolatokhoz kell tartozniuk. A külső vonalnak/vonalaknak címkék nélkül kell maradnia/maradniuk, hacsaknem valamit a saját maguk jogán jelöl/jelölnek. Például egy erdő körbe lehet véve négy kerítéssel; ebben az esetben mind a négy vonal ellátható a barrier=* címkével, de közben mindegyik az erdőhöz tartozó kapcsolat külső (outer) tagja.
Ha egyetlen zárt vonal alkotja a külső gyűrűt és nem jelöl semmit a saját jogán, akkor a külső gyűrű is megkaphatja a címkéket és magát a kapcsolatot hagyd címkék nélkül! Ha több mint egy külső vonalad van (lásd a lentebb az összetett alakzatokat), akkor ez értelmetlen.Javasoljuk – a következetesség érdekében –, hogy a multipoligon címkéivel mindig magát a kapcsolatot jellemezd.- Ha a belső vonal valamit jelképez (például egy lyukas erdő esetében, ahol a lyuk egy tó), akkor magát a belső vonalat kell megcímkézni.
- Más esetekben a belső vonalnak/vonalaknak címke nélkül kell maradnia/maradniuk.
- A vonalak irányítottsága nem számít.
- A kapcsolat tagjainak a sorrendje nem számít (de a megfelelő sorrendben rendezett lista segítheti az emberi felhasználókat abban, hogy könnyebben ellenőrizhessék a kapcsolat teljességét, hiánytalanságát).
A multipoligon érvényességi feltételei
Általában véve a multipoligon kapcsolatok multipoligonok rajzolására használhatók a OGC Simple Feature standard(en)-nak megfelelően (Grafikai példák az OGC érvényességére(en)). Bármi, ami nem ennek a szabványnak megfelelő érvényes multipoligon (például egymást metsző gyűrűk vannak a határvonalán), azt érvénytelen multipligon kapcsolatnak tekintjük, kivéve az egymással érintkező belső gyűrűk nevezetes esetét (lásd alább).
Egy érvényes (zárt) poligont úgy definiálunk, mint olyan vonalak halmaza, amik – ha végpontjaik csatlakoznak – zárt poligont alkotnak.
Egy érvényes multipoligon kapcsolat létrejöttének feltételei a következők:
- Azon vonalak, melyek a multipoligon kapcsolat tagjai, kötelezően egy vagy több zárt poligont alkotnak, vagyis ezen nyitott vonalak egymással végpontjaikban összekapcsolódva egy vagy több zárt láncolatot (gyűrűt) alkotnak, vagy már eleve önálló zárt vonalak.
- Az összekapcsolódás két nyitott vonal esetében azt jelenti, hogy közös végponttal kell rendelkezniük. (Az itt látható ábrákon nagy fekete ponttal vannak jelölve a nyitott vonalak végpontjai.)
- Ha egy pont kettőnél kevesebb vonal végpontja, akkor a poligon nem lehet zárt, és a multipoligon kapcsolat érvénytelen. Lásd még: első példa az érvénytelenségre(en).
- Ha egy végponton kettőnél több nyitott vonal osztozik, akkor multipoligon kapcsolat érvénytelen, mert a zárt poligon nem állítható elő egyértelműen. Lásd: második példa az érvénytelenségre(en). (Kivétel a szabály alól, ha a végpont páros sok nyitott vonalhoz tartozik, ami egymással érintkező belső gyűrűk esetén elfogadott.)
- A belső poligonoknak tilos átfedniük a külső poligonokat vagy akár csak érinteniük is őket. Az átlapolás mindig elkerülhető az alakzat átrajzolásával.
Példák
Egyszerű alakzat
Egy külső és egy belső gyűrű
Egy külső és két belső gyűrű
Több vonal alkot egy gyűrűt
Két egymástól elkülönült külső gyűrű
Két egymástól elkülönült külső gyűrű és több vonal alkot egy gyűrűt
Az összes fejlett tulajdonság összetett kombinációja
Sziget a lyukban
Érintkező belső gyűrűk
Bármiféle egymással érintkező gyűrűk csak zárt vonalakból készíthetők, ha egyáltalán, különben szélsőségesen bonyolult lesz a feldolgozás a szoftveres kliensek számára. A 2. számú (kék) és a 3. számú (zöld) vonalnak egyaránt zárt vonalnak kell lennie. Amennyiben lehetséges, jobb, ha egyetlen vonallá egyesítjük őket, ha azonos dolgot jelenítenek meg.
Néhány térképész a „multipoligon” kapcsolatot használja érintkező belső gyűrűk kombinálására:
<relation id="1">
<tag k="type" v="multipolygon" />
<member type="way" id="1" role="outer" />
<member type="way" id="2" role="inner" />
<member type="way" id="3" role="inner" />
</relation>
Az összetett multipoligonokat használó alkalmazások úgy próbálják meg kirajzolni azokat, mintha az érintkező gyűrűk valójában egyetlen gyűrűt alkotnának. Ebben az esetben az OpenStreetMap eltér a OGC Simple Features szabványtól. A Simple Features-ben az érintkező belső gyűrűk nem támogatottak, mert szükségtelenek – miért készítene bárki is két gyűrűt, ha kombinálva őket egyetlen egyet is készíthetne? Az OpenStreetMap-ben azonban ennek néha van értelme: ha egyenként vannak felcímkézve. Például ha egy erdőben egy tisztás felét egy tó foglalja el, a másik felét pedig egy mezőgazdasági terület, akkor az erdőben két „lyuk” lesz, az egyik natural=water, a másik pedig landuse=farmland címkét kap. Ez egy kényelmet szolgáló trükk: ha a térképésznek egyetlen lyukat kellene készítenie az erdőben, és utána külön-külön poligont kellene csinálnia a tónak is és a mezőgazdasági hasznosítású területnek is, az túlságosan nagy munka lenne. Kerülendő, hogy a multipoligon belső gyűrűje érintse a külső gyűrűt! |
![]() |
Példák az érvénytelenségre
Most következzék néhány példa az érvénytelen multipoligon kapcsolatra, hogy szemléltessük, mit nem szabad csinálni.
Bezáratlan poligonok
Ebben a példában a 2. és a 3. számú vonalak nem kapcsolódnak össze, ezért a multipoligon kapcsolat érvénytelen. | ![]() |
Egymást átfedő, nyitott vonalak ugyanabban szerepben
További példák
- További példák találhatók az érvényes multipoligon kapcsolatokra a Multipoligon példák(en) oldalon.
- Egy problémaleírás: szokatlan alakzatok példái az érvényes és érvénytelen kapcsolatokra(en)
Címkézés
- Azt javasoljuk, hogy az összes címkét, ami az alakzatot leírja, a kapcsolathoz, és ne az egyes vonalakhoz rendeld. Ez sokszor mindenféle címke nélküli vonalakat eredményez.
- A kompatibilitás érdekében alkalmazandó szabályok:
- A kirajzolás stílusát a kapcsolat címkéi határozzák meg.
- Ha a kapcsolat nem rendelkezik címkékkel, akkor a külső határvonalak stílusa alkalmazandó.
- Ha a külső határoló vonalak stílusában ütközés, következetlenség van, vagy nem található stílus, akkor az alakzat hibásnak tekintendő.
- A belső határvonalak címkéi a belső alakzatokhoz tartoznak.
Amenyiben a belső határvonal stílusa azonos a külső határvonal stílusával (egy régi módszerrel), akkor a belső stílus üresként kezelendő.
Részletesen a címkézésről
Ez a szakasz a szoftverfejlesztők számára készült, a közönséges felhasználóknak a címkéket mindig a kapcsolathoz kell rendelniük, nem pedig a külső határvonalhoz!
Multipoligon kapcsolat meglehetősen kevés módon hozható létre. Következzen esetekre bontva a problémák és a megoldási javaslatok listája:
- Egynél több külső (outer) határvonal van:
- A kapcsolatnak vannak címkéi
- használd a kapcsolat címkéit, minden mást hagyj figyelmen kívül a vonalakon.
- A kapcsolatnak nincsenek címkéi, de egy vagy több létrehozó külső határvonal azonos címkehalmazzal rendelkezik
- érvényes adatok esetében vedd a felcímkézett részeket és alkalmazd a stílusukat az egész külső (outer) határvonalra.
- A kapcsolatnak nincsenek címkéi, és a létrehozó külső határvonalak eltérően vannak felcímkézve
- Ez egy probléma, aminek nincs meghatározott megoldása.
- Egynél több belső (inner) határvonal van:
- Egy gyűrűnek (ami egy vagy több vonalból áll) nincsenek címkéi, de egy másiknak vannak
- a címkékkel nem rendelkező gyűrű lyukként kerül kirajzolásra, a címkékkel rendelkező gyűrű pedig a címkéinek megfelelően.
- Minden gyűrű más címkékkel rendelkezik
- mindegyik lyuk a maga címkéi szerint kerül kirajzolásra.
- Egy gyűrűnek (ami kettő vagy annál több vonalból áll) eltérően vannak felcímkézve az őt alkotó vonalai
- ha némelyik vonalnak nincs címkéje, akkor egyszerűen használjuk náluk a többi vonal címkéit. Ha bizonyos vonalak más-más címkékkel rendelkeznek, akkor meghatározatlan a követendő magatartás (ugyanúgy, mint a külső (outer) vonalak esetében).
Megjelenítés
- A JOSM az 1203-as számú frissítés óta képes az összetett multipoligonok kirajzolására.
- Az OSM honlap rétegei az osm2pgsql "--multi-geometry" flag használatától függnek, ami rétegenként különböző. Még több információért a témában lásd Paul Norman blogbejegyzését és ezt a openstreetmap-térképészeti github megbeszélést: [1]
- Az 1497-es számú frissítés óta teljes támogatás a mkgmap(en) által
- a GpsMid(en) támogatja az összetett multipoligon tulajdonságok legtöbbjét
- Létezik egy javasolt algoritmus(en) a multipoligonok feldolgozásához.
Térképezési stílusok: a legjobb gyakorlatok
A multipoligonok megnyitják az utat az előtt, hogy különböző stílusban készíthessünk geometriailag azonos objektumokat: úgy, mint vonalak vagy úgy, mint multipoligonok, zárt vagy nyitott vonalakat használva, közös vagy önálló vonalakkal.
Mindez felveti a kérdést, hogy milyen térképezési stílust használjunk. Némelyik stílus bizonyos előnyökkel rendelkezik a többivel szemben: ezek ún. „jó gyakorlatokként” kezelendők. A többiek esetében leginkább attól függ a dolog, hogy kinek mik az egyéni preferenciái, vagy hogy az illető felhasználó tapasztalt vagy tapasztalatlan térképész.
Általában amikor nagy területek ugyanazokkal a címkékkel rendelkeznek, akkor vagy nagyon sok kis multipoligonnal vagy zárt vonallal adhatjuk meg őket, vagy kis számú nagy multipoligonnal. Magukat a multipoligonokat két térképezési stílusban készíthetjük el:
- „A” módszer
- Belső és külső gyűrűket hozunk létre zárt vonalakból mindenütt, ahol az lehetséges, kivéve akkor, amikor már túlságosan naggyá válnak (kb. 2000 pontnál). A vonalak rendszerint nem tartoznak különböző multipoligonokhoz.
- „B” módszer
- Bármely két multipoligon területe között húzódó határvonalat egyetlen vonal alkot, ami azután a szomszédos multipoligonok esetében közös. Ennek az a következménye, hogy a multipoligon gyűrűk gyakran sok nyitott vonalból állnak.
Évekig intenzív vita folyt arról, hogy a multipoligonok esetében mi a legjobb gyakorlat, lásd a Talk:Relation:multipolygon(en) oldalt és a fórumokat. A végső konszenzus még nem jött létre, de a következő megfigyelések érvényesek:
- A vonalak helyett egyszerű zárt területekből alkotott multipoligonokkal való térképezés megnöveli az adatbázisban lévő objektumok számát, és növeli a kirajzoláshoz szükséges időt. A bonyolultságból fakadó plusz költségek kerülendők.
- Ha a multipoligonok közös vonaldarabokat tartalmaznak („B” módszer), akkor ez hatékonyan reprezentálja az alakzatokat, mivel elkerüljük, hogy a reprezentációban egymást feleslegesen átfedő vonalak legyenek.
- A nem zárt vonalakból álló multipoligonokat („B” módszer) nehezebb kezelniük a tapasztalatlan felhasználóknak, és az olyan egyszerű szerkesztőprogramoknak, mint a Potlatch 2. Sokszor ez oda vezet, hogy a gyanútlan felhasználók véletlenül törlik az ilyen multipoligonokat.
- Sok tapasztalt felhasználó a „B” módszert kényelmetlennek találta, különösen a nagyon nagy multipoligonok esetében.
- A hatalmas multipoligonok a kirajzolási folyamat lelassulását okozzák.
- A JOSM-ban könnyebb, gyorsabb és kevésbé van kitéve a hibáknak a komplex alakzatok szerkesztése az „A” módszer esetében. Ez azért van, mert a „B” módszer számos vonaldarab törlését, létrehozását és beillesztését igényli a multipoligon kapcsolatokkal való munka során.
Mindeddig nem lett hivatalosan korlátozva a multipoligonok használati módja – már amennyiben a geometriájuk érvényes. A megfontolt térképezési stílus elfogadása segíti az adatbázis tisztaságának a megőrzését, és megkönnyíti a szerkesztést minden felhasználó számára.

Egy Potlatch 2 példa
Itt van egy füves terület egy fás területen belül.
Control+kattintás a belső gyűrűre:
Vedd észre, hogy most megjelent a „fánk” (doughnut) ikon az eszköztárban:
Az éppen hozzáadott címkék megtekintéséhez kattints az "Advanced"-re:
Létrejött a multipoligon kapcsolat:
Segédeszközök
- Kapcsolat ellenőrzése(en)
- az OSM Inspector rendelkezik multipoligonokat ellenőrző képességgel
Lásd még
- Lásd A terület jövője(en) oldalon lévő megbeszélést arról, hogy hogyan javítsa az OSM a területek kezelését.