On 1-2-2012 10:44, Ruud den Blanken wrote:
Vorig jaar heb ik OSM rondom Gorinchem aangepast door panden en adressen uit de BAG toe te voegen. Ik had ook de beschikking over postcodes maar die mochten vanwege licentiebezwaren nog niet worden toegevoegd.
Vandaag, per 1 februari 2012, mag het wel.

De vraag is nu hoe ik dit het beste kan aanpakken.
Alle adrespunten die ik wil uitbreiden met een "addr:postcode" tag, hebben nu in principe al een tag "bag:vbo_id". Ik kan een lijst genereren van alle verblijfsobject_id's met bijbehorende postcodes.

Liefst zou ik hieruit een script met update-query's genereren die ik kan loslaten op OSM. Ik maak voornamelijk gebruik van JOSM en kon geen plugins vinden die in dit soort functionaliteit voorzien.
Waarschijnlijk moet ik dit vanuit een andere invalshoek benaderen.

Iemand hints hoe dit aan te pakken?


Met vriendelijke groet,

Ruud den Blanken
Gorinchem

Hoi Ruud,

Zoals je weet, kun je niet zomaar een script met update-queries uitvoeren tegen de OSM-database aan ;) Je moet de adrespunten downloaden als OSM file, bewerken en vervolgens uploaden. Ik geloof niet dat er tools beschikbaar zijn om een "join" uit te voeren van OSM-data met een externe databron. Dit zou je moeten scripten.

Voor upload met JOSM kun je gebruik maken van het eigen file formaat: http://wiki.openstreetmap.org/wiki/JOSM_file_format . Dit lijkt erg op het standaard OSM XML-formaat. D.m.v. een action-attribuut kun je aangeven wat er met de data moet gebeuren. Voorbeeldje: <node id='1608043892' action='modify' timestamp='2012-01-28T00:16:32Z' uid='210260' user='jotpe' visible='true' version='1' changeset='10517630' lat='52.3024097' lon='7.1756024'>
<tag k='bag:vbo_id' v='abcdef' />
<tag k='addr:housenumber' v='yyy' />
<tag k='addr:street' v='xxx' />
<tag k='addr:postcode' v='zzz' />
</node>

De attributen id, timestamp, uid, user, visible, version, changeset, lat en lot zijn standaard-attributen. Deze waren al aanwezig in de download. Het action-attribuut geeft aan dat de betreffende node moet worden geupdate. De tags geven aan welke tags de nieuwe versie moet hebben. Je kunt aan de tags niet zien welke nieuw is, dus je moet gewoon die van jou toevoegen.

BELANGRIJK: aangezien je bestaande data wijzigt, zorg ervoor dat je de bewerkingstijd zo kort mogelijk houdt! Het heeft dus de voorkeur om kleine gebieden tegelijk te updaten, omdat in theorie de kans aanwezig is dat anderen tussentijds de data bewerken. Je kunt de database immers niet freezen. Dit heeft als gevolg dat jij conflicten moet oplossen indien nodig. Dat is zonde van de tijd. Let er dan ook op dat je na een upload eerst nieuwe data downloadt, om eventuele wijzigingen mee te pakken.

Mogelijk is in jouw geval FME een optie. Ik ben niet bekend met de OSM-writer, maar als je zelf het action-attribuut in het node-element weet te krijgen i.p.v. als tag, dan zou het wel eens kunnen werken. De andere attributen moeten dan niet wijzigen. Als dit klaar is, zou je de wijzigingen met JOSM kunnen uploaden.

Groeten,

Frank


_______________________________________________
Talk-nl mailing list
Talk-nl@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-nl

Antwoord per e-mail aan