Misschien even wat technische achtergrond geven, dan kan je zelf ook al beter de mogelijkheden en problemen inschatten
Dus, als ik het goed begrijp, dan willen jullie de data van OSM gebruiken om zelf eigenschappen aan de wegen te hangen? Jullie vertrouwen dan op de community om de bepaalde zaken (zoals bijvoorbeeld de straatnamen en basisgraaf) bij te werken, terwijl jullie extra data aan wegsegmenten hangen en die ook onderhouden?
Misschien is het best om eerst het datamodel van OSM uit te leggen. In OSM zijn er 3 data primitieven:
- Nodes: Een node of punt heeft coördinaten
- Ways: Ways, polylines of wegsegmenten zijn een geordende lijst van nodes
- Relations: Relaties zijn een geordende lijst van andere primitieven. Ieder element in die lijst kan ook een rol krijgen (een naam)
Alledrie die primitieven kunnen tags hebben. Tags zijn simpele key=value combinaties, bijvoorbeeld highway=motorway om een autostrade aan te duiden, of maxspeed=70 om een maximum toegelaten snelheid te mappen. Documentatie voor de meestgebruikte tags kan je op de wiki vinden (bijvoorbeeld de highway key: http://wiki.osm.org/wiki/Key:highway)), maar iedere mapper is vrij om zijn eigen tags te bedenken (liefst voor zaken die nog niet gestandardiseerd zijn).
Let op dat ways ook voor andere doeleinden gebruikt worden dan enkel motorwegen. Een closed way (waarvan de begin en eind node dezelfde zijn) kan bijvoorbeeld gebruikt worden om een gebied aan te duiden, met de tag building=yes wordt dan aangeduid dat dat gebied een gebouw is.
Relaties worden gebruik om zaken uit te drukken die moeilijk met nodes en ways te mappen zijn. Bijvoorbeeld de turnrestriction relatie duidt aan dat het verboden of verplicht is om van één weg naar een andere af te slaan. Of de multipolygon relation wordt gebruikt om gebieden met gaten te mappen.
Ieder primitief element krijgt ook een id en een versienummer. Wanneer er iets wijzigt aan het element (bijvoorbeeld het verplaatsen van een node, of het wijzigen van een tag), dan wordt het versienummer van dat element verhoogd.
Jammer genoeg zijn die ids niet echt permanent. Als een way bijvoorbeeld gesplitst wordt (omdat beide delen andere tags nodig hebben), dan krijgt 1 stuk een nieuwe id, en behoudt het andere stuk de oude id. Bij het samenvoegen van ways worden de nodes van de ene naar de andere gecopieerd, en wordt 1 way uit de database gewist. Vooral splitsen gebeurt heel frequent. In OSM is het normaal om eerst een goede basiskaart te hebben, en pas daarna extra details (zoals maximum gewicht, snelheid, ondergrond, …) toe te voegen. En dat toevoegen van extra details zorgt er vaak voor dat de ways gesplitst moeten worden.
In dat variabel zijn van ids schuilt meteen ook het grootste probleem bij het combineren van OSM data met andere data. Je kan namelijk niet zeggen dat je referentie xyz aan OSM way 1302 hangt, want bij de volgende update kan way 1302 plots een aantal keer gesplitst zijn, of misschien volledig verdwenen. Zonder dat er in werkelijkheid iets gebeurd is aan die weg.
Hopelijk helpt dit wat om de mogelijkheden en problemen in te schatten.
Groeten,
Sander