Hu:Relation

From OpenStreetMap Wiki
Jump to navigation Jump to search
Kapcsolat

A kapcsolat (angolul relation, ejtsd: rilésön) egy fontos alapelem az OpenStreetMap (OSM) adatmodelljében. A kapcsolat az adatbázis alapelemeiből egy halmazt hoz létre, ahol a halmazhoz tartozás ismérve valamely térképezendő objektumot leíró közös földrajzi vagy logikai tulajdonság.

  • A kapcsolatot egy vagy több pont, vonal és/vagy más kapcsolat rendezett listája alkotja. Ezek a kapcsolat tagjai (angolul member, ejtsd: membör).
  • A kapcsolat tagjai opcionálisan rendelkezhetnek szereppel (angolul role, ejtsd: roul), ami leírja, hogy az adott tag milyen funkciót tölt be az adott kapcsolatban.
  • A kapcsolat is rendelkezhet címkékkel, amik meghatározzák, hogy milyen térképelemet ír le.

A kapcsolatokat 2007. október 8-án vezettük be az API v0.5-tel.

Részei

Tagok Tag

A kapcsolat tagjai adatelemek – pontok, vonalak vagy kapcsolatok – lehetnek. Ha egy kapcsolatban valamely másik kapcsolat tag, akkor azt beágyazott kapcsolatnak nevezzük. Az adatelemek sorrendje a feltöltésükkor megadott lesz, mivel a sorrend információt hordozhat.

Szerepek Szerep

A szerep egy olyan opcionális szöveges mező, ami leírja a kapcsolat egy tagjának a funkcióját. Például Észak-Amerikában az east (kelet) szerep azt jelenti, hogy egy út keletiként van feltüntetve(en) az útirányokat mutató utakat számozó táblákon. Vagy egy multipoligon kapcsolatban az inner (belső) és az outer (külső) szerepeket arra használjuk, hogy megadjuk, hogy egy vonal a poligon belső vagy külső határvonalát alkotja.

Használata

A kapcsolatokkal objektumok közötti logikai (és rendszerint helyi) vagy földrajzi viszonyokat modellezünk. Nem arra lettek tervezve, hogy egymással lazán kapcsolódó, de nagy kiterjedésű egységeket tartalmazzanak. Nem lenne például megfelelő egy olyan kapcsolatot létrehozni, amely Kelet-Anglia összes ösvényét gyűjti egy csokorba. Lásd még: A kapcsolatok nem kategóriák(en).

Mérete

Javasoljuk, hogy kapcsolatonként maximum 300 tagot használj! Amennyiben ennél több tagot kell együtt kezelned, akkor alkoss kisebb kapcsolatokat belőlük, és azokat kombináld össze egyetlen szuper-kapcsolattá(en)!
Ennek az az oka, hogy minél több tag van egy kapcsolatban, annál nehezebb azt kezelni, annál könnyebben szétszakad, annál könnyebben merülnek fel ütközések és annál több erőforrást igényelnek az adatbázistól és a szervertől.

information sign

Megjegyzés: A „szuper-kapcsolat” papíron jó elképzelésnek tűnik, de a számos OSM szoftver közül egyik sem dolgozik vele.

Típusai

Searchtool right.svg Bővebben: Kapcsolattípusok

Minden kapcsolatnak van egy típusa, ami kijelöli, hogy miféle szerkezetben kell az adatoknak benne szerepelniük. A típust a type=* címke adja meg a kapcsolat számára. A különféle kapcsolattípusok más-más térképezési célra szolgálnak.

Multipoligon

A multipoligon kapcsolatban az inner (belső) és az outer (külső) szerepeket arra használjuk, hogy megadjuk vele, hogy egy vonal – ami a kapcsolat tagja – a belső vagy a külső határvonalát alkotja-e egy zárt területet körbekerítő poligonnak. Például egy belső vonal definiálhat egy szigetet egy tóban, amit kapcsolatként térképezünk.

Autóbusz-útvonal

Autóbusz-útvonal lehet az a kapcsolat, aminek a type=route, route=bus, ref=* és operator=* címkéi vannak. A kapcsolat tagjai azokat az utakat leíró vonalak lesznek, amelyeken a busz halad, és azokat a megállókat jelölő pontok, melyek a busz megállóhelyei. A vonalak forward (előre) vagy backward (visszafelé) szerepekkel rendelkezhetnek aszerint, hogy a busz melyik irányban halad a végállomásai között az adott úton. (Ha mindkét irányban használja a busz az adott utat, akkor a szerep üresen maradhat.)

Más példák

Eszközök

Navigáció a kapcsolatokon

Itt azokat az alkalmazásokat gyűjtjük listába, amelyek követni tudják a kapcsolattal megadott útvonalakat (mint például a zarándokutakat). Ha tudod, bővítsd te is a listát!

  • Még nincs ilyen alkalmazás.

Struktúra

Név Érték Leírás
id 64-bites egész(en) szám, ami ≥ 1 A kapcsolatok azonosítói egyediek. (Egy pontnak és egy vonalnak viszont lehet ugyanaz az azonosítója, mint egy kapcsolaté.) A szerkesztőprogramok átmenetileg negatív azonosítóval is rögzíthetnek kapcsolatokat, hogy ezzel jelezzék, mely kapcsolatok nincsenek még az OSM szerverén rögzítve. A szerveren rögzített azonosítók tartósak, ami azt jelenti, hogy egy létező kapcsolathoz társított azonosító változatlan marad az idők folyamán akkor is, ha új adatokat adunk a kapcsolathoz vagy ha valamit javítunk rajta. A törölt kapcsolatok azonosítóit tilos újrafelhasználni, hacsak nem egy korábban létező kapcsolat kerül visszaállításra.
tagok Pontok, vonalak, kapcsolatok A legtöbb esetben van valamilyen tagja a kapcsolatnak, a kivételekről lásd az Üres kapcsolatok(en) oldalt!
címkék Kulcs–érték párok halmaza, ahol minden kulcs legfeljebb csak egyszer szerepelhet Kötelező a type=* címke. Nem minden címke használható kapcsolatok esetében. Lásd még a Térképelemek oldalt a címkézésről szóló útmutatóhoz!

Példa (xml-ben)

Az alábbi példában a budapesti 6-os villamos útvonalának egyik részét (a Széll Kálmán tér → Móricz Zsigmond körtér irányt) leíró kapcsolatot láthatjuk. (id=1102936)

A kapcsolat egyik címkéje, a type=route adja meg, hogy a kapcsolat közlekedési viszonylatot ír le.

A kapcsolatnak 17 vonal és 19 pont a tagja. A tagoknak csak az azonosítóit tartalmazza az xml, a tagok címkéit és egyéb adatait nem. A vonalak az útvonal egyes szakaszai, a pontok pedig a megállókat jelentik. A pontok stop (megálló) szereppel bírnak, a vonalaknak nincs szerepük. A vonalak sorrendje meghatározott, mivel végpontjaikkal láncszerűen kapcsolódniuk kell egymáshoz.

A kapcsolat be van ágyazva a teljes 6-os viszonylatot leíró 1102938 azonosítójú, route_master(en) típusú kapcsolatba.

<relation id="1102936" visible="true" version="29" changeset="34028674" timestamp="2015-09-14T20:17:51Z" user="zokert" uid="2347244">
    <member type="way" ref="69969514" role=""/>
    <member type="way" ref="325824575" role=""/>
    <member type="way" ref="310975581" role=""/>
    <member type="way" ref="310975579" role=""/>
    <member type="way" ref="68741620" role=""/>
    <member type="way" ref="337893916" role=""/>
    <member type="way" ref="223333217" role=""/>
    <member type="way" ref="223333218" role=""/>
    <member type="way" ref="310979268" role=""/>
    <member type="way" ref="54724407" role=""/>
    <member type="way" ref="333547243" role=""/>
    <member type="way" ref="337893915" role=""/>
    <member type="way" ref="125949689" role=""/>
    <member type="way" ref="54724401" role=""/>
    <member type="way" ref="54724406" role=""/>
    <member type="way" ref="333834903" role=""/>
    <member type="way" ref="121097745" role=""/>
    <member type="node" ref="690201102" role="stop"/>
    <member type="node" ref="700251709" role="stop"/>
    <member type="node" ref="700251692" role="stop"/>
    <member type="node" ref="700251582" role="stop"/>
    <member type="node" ref="1446663327" role="stop"/>
    <member type="node" ref="826166118" role="stop"/>
    <member type="node" ref="826166295" role="stop"/>
    <member type="node" ref="826166296" role="stop"/>
    <member type="node" ref="826166316" role="stop"/>
    <member type="node" ref="2931128302" role="stop"/>
    <member type="node" ref="826166324" role="stop"/>
    <member type="node" ref="826166328" role="stop"/>
    <member type="node" ref="826166352" role="stop"/>
    <member type="node" ref="688953520" role="stop"/>
    <member type="node" ref="688953600" role="stop"/>
    <member type="node" ref="688953706" role="stop"/>
    <member type="node" ref="688953511" role="stop"/>
    <member type="node" ref="688953651" role="stop"/>
    <member type="node" ref="688953546" role="stop"/>
    <tag k="from" v="Széll Kálmán tér M"/>
    <tag k="name" v="6 => Móricz Zsigmond körtér M"/>
    <tag k="operator" v="BKV"/><tag k="ref" v="6"/>
    <tag k="route" v="tram"/>
    <tag k="to" v="Móricz Zsigmond körtér"/>
    <tag k="type" v="route"/>
    <tag k="wheelchair" v="yes"/>
    <tag k="wikipedia" v="fr:Ligne 6 du tramway de Budapest"/>
</relation>

Lásd még