2013-03-27 22 views
5

Sto sviluppando un sito Web e ho bisogno di ottenere tutti i limiti di un'area dati in base all'input dell'utente. Ad esempio, l'utente desidera conoscere i confini di una città chiamata x. Come dovrei ottenerlo da openstreetmap? Ho sentito parlare di xapi e osmosi, ma non ho trovato alcun esempio da nessuna parte. Grazie!Ottenere i confini della città da openstreetmap

+1

Hai provato a cercare su Google? http://global.mapit.mysociety.org/ –

+0

https://help.openstreetmap.org/questions/8117/getting-city-border-from-osm-data –

+0

Voglio solo ottenere tutto il lat lungo del città in una query. Penso che nominatim abbia questa capacità, ma non so come usarla. – user2189557

risposta

2

ho preso una pugnalata a fare questo con JavaScript qui: https://github.com/pgkelley4/city-boundaries-google-maps

In sostanza si tratta di trovare il relation che OpenStreetMap memorizza i confini della città come.

ho usato qualcosa come la seguente query per ottenere l'area:

area[name="Seattle"]["is_in:state_code"="WA"];foreach(out;); 

Oppure, se questo non trova nulla, passando attraverso il nodo di trovare tutte le zone collegate:

node[name="New York"][is_in~"NY"];foreach(out;is_in;out;); 

Per ottenere l'ID relazione, sottrarre 3600000000 dall'ID area restituito dalle query sopra. Quindi ottenere il rapporto dalla sua ID:

(relation(" + relationID + ");>;);out; 

È possibile testare le query qui, il mio potrebbe probabilmente essere migliorato: http://overpass-api.de/query_form.html

Questo è come ottenere i confini della città, della loro elaborazione è un'altra questione come nulla è in ordine all'interno della relazione. Per questo vedi il mio progetto GitHub e: http://wiki.openstreetmap.org/wiki/Relation:multipolygon/Algorithm

Inoltre, vorrei notare che i dati di OpenStreetMap per i confini delle città sono chiazzati. Manca per grandi città come Dallas e LA da quello che posso dire.

+0

Sembra che abbiano aggiunto LA dal 2013. Dallas è ancora disperso, ma Forth Worth e il resto delle città circostanti sono lì. Vedi: http://www.openstreetmap.org/relation/207359 –

Problemi correlati