User:City-busz/Kapcsolatok

From OpenStreetMap Wiki
Jump to: navigation, search

Az adatmodell nézőpontjából a kapcsolatok alapvetően objektumok csoportja, amiben minden egyes objektumnak meghatározott szerepe van. A kapcsolatoknak címkéi is lehetnek.

Figyelem!

Ez a cikk az én (City-busz) ötleteimet, javaslataimat írja le a kapcsolatokkal kapcsolatban, emiatt olyan információkat is tartalmaznak, amelyek (még) nem lettek elfogadva az OSM közösség által. Viszont várom a véleményeket az oldal vitalapján.

Általam javasolt használati módok

Összetett sokszög (multipolygon)

Az egyszerű sokszögek (zárt vonalak, polygons) igen korlátozott objektumábrázolási lehetőséget nyújtanak: a sokszöget egyetlen vonal alkotja, és nem lehetnek benne lyukak. Gyakran nincs is szükség többre, azonban a következő eseteket csak összetett sokszögekkel lehet megoldani:

  • Lyukak elhelyezése az objektumon belül (pl. udvar egy házban, tisztás egy erdőben, sziget egy folyón).
  • A sokszög több, egymáshoz kacsolódó vonalból áll (pl. határvonalak, tengerpartok, nagyobb tavak, folyópartok). A darabolásra az adatbázis méretének és a szerkesztőprogramok terhelésének csökkentése miatt van szükség.
  • A sokszög több, egymástól teljesen különálló részből áll (pl. egy ország exklávéja, amely egyáltalán nem érintkezik az anyaország országhatárával).

Az összetett sokszögek lehetőséget biztosítanak a fentiek megvalósítására, akár kombináltan is.

Használat

Címkék
Kulcs Érték Leírás
type multipolygon A kapcsolat típusának megadása (kötelező)
* * Bármely egyéb címke, amely a sokszöget jellemzi.
Tagok
Alapelem Szerep Mennyiség Leírás
Way outer egy vagy több A sokszög egyetlen vagy egyik külső gyűrűjét részben vagy egészben alkotó vonal.
Way inner egy vagy több A sokszög egyetlen vagy egyik belső gyűrűjét részben vagy egészben alkotó vonal (pl. sziget, udvar).
Node Way label egy A sokszög feliratának a helye.

Az "outer" és "inner" tagoknak zárt útvonal(ak)at kell alkotniuk, tehát ahol az egyik vonal véget ér, onnan kell indulnia egy másik vonalnak.

Megjegyzések
  • (Az Osmarender jelenleg csak az egyetlen "outer" taggal rendelkező sokszögeket támogatja, az "inner" tagoknak pedig egyenként zárt vonalaknak kell lenniük.)
  • A sokszöget leíró címkék megadhatók a közvetlenül a kapcsolatnak és az "outer" tagoknak egyaránt. (Kompatibilitási problémák miatt azonban érdemes az outer tagot használni, mivel jelenleg az Osmarender nem jeleníti meg a "name" címkét az objektumon, ha az a kapcsolatban van megadva, a többi címkét pedig egyik renderelő sem támogatja.)
  • Az "inner" tagok címke nélkül hagyhatók.
  • Ha egy "inner" tag önmagában jelent valamit (pl. egy erdő lyukkal, ahol a lyuk egy tó), akkor így az "inner" tag is megcímkézhető.
  • A vonalak iránya nem számít. (Kompatibilitási problémák miatt viszont mégis számít, mert jelenleg a Mapnik renderelővel csak akkor működik, ha a külső és belső vonalak ellentétes irányúak. Például a külső gyűrű órajárással megegyezően, a belső gyűrű pedig az órajárással ellentétesen halad.)
  • (A "label" szerepet jelenleg egyik renderelő sem támogatja.)

Példák

Kezdő használat
Egy külső és egy belső gyűrűből (lyukból) álló sokszög. A gyűrűk egy-egy zárt vonalból állnak:
<relation id="1">
  <tag k="type" v="multipolygon" />
  <member type="way" id="1" role="outer" />
  <member type="way" id="2" role="inner" />
</relation>
Multipolygon Illustration 1.svg
Egy külső és több belső gyűrűből (lyukból) álló sokszög. A gyűrűk egy-egy zárt vonalból állnak:
<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>
Multipolygon Illustration 2.svg
Haladó használat
Egy külső és egy belső gyűrűből (lyukból) álló sokszög. A külső gyűrű kettő vonalból, a belső gyűrű egy zárt vonalból áll:
<relation id="1">
  <tag k="type" v="multipolygon" />
  <member type="way" id="1" role="outer" />
  <member type="way" id="2" role="outer" />
  <member type="way" id="3" role="inner" />
</relation>
Multipolygon Illustration 3.svg
Több, egymástól független külső gyűrűből álló sokszög:
<relation id="1">
  <tag k="type" v="multipolygon" />
  <member type="way" id="1" role="outer" />
  <member type="way" id="2" role="outer" />
</relation>
Multipolygon Illustration 4.svg
Kombinált használat
Több külső és egy-egy belső gyűrűből (lyukból) álló sokszög. Az egyik belső gyűrű több vonalból áll:
<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" />
  <member type="way" id="4" role="outer" />
  <member type="way" id="5" role="inner" />
</relation>
Multipolygon Illustration 5.svg
Több külső és több belső gyűrűből (lyukból) álló sokszög. A gyűrűk több vonalból állnak:
<relation id="1">
  <tag k="type" v="multipolygon" />
  <member type="way" id="1" role="outer" />
  <member type="way" id="2" role="outer" />
  <member type="way" id="3" role="outer" />
  <member type="way" id="4" role="outer" />
  <member type="way" id="5" role="inner" />
  <member type="way" id="6" role="inner" />
  <member type="way" id="7" role="inner" />
  <member type="way" id="8" role="inner" />
  <member type="way" id="9" role="inner" />
  <member type="way" id="10" role="inner" />
  <member type="way" id="11" role="inner" />
  <member type="way" id="12" role="outer" />
  <member type="way" id="13" role="outer" />
  <member type="way" id="14" role="outer" />
  <member type="way" id="15" role="outer" />
  <member type="way" id="16" role="inner" />
  <member type="way" id="17" role="inner" />
  <member type="way" id="18" role="inner" />
  <member type="way" id="19" role="inner" />
  <member type="way" id="20" role="outer" />
</relation>
Multipolygon Illustration 6.svg
Abból adódóan, hogy több külső gyűrű is lehet egy kapcsolatban, könnyen lehet modellezni "szigeteket" egy lyukon belül:
<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="outer" />
</relation>
Multipolygon illustration 7.svg

(Folytatás hamarosan.)