2013-03-27 13 views
5

Zajmuję się tworzeniem strony internetowej i potrzebuję uzyskać wszystkie granice danego obszaru w zależności od danych wprowadzanych przez użytkownika. Na przykład użytkownik chce poznać granice miasta o nazwie x. Jak mam go pobrać z openstreetmap? Słyszałem o Xapi i osmozie, ale nie mogłem znaleźć żadnego przykładu. Dzięki!Uzyskiwanie granic miasta z openstreetmap

+1

Czy próbowałeś nawet wyszukiwania Google? http://global.mapit.mysociety.org/ –

+0

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

+0

Po prostu chcę dostać całe długie miasto w jednym zapytaniu. Myślę, że nominatim ma taką możliwość, ale nie wiem, jak z niej korzystać. – user2189557

Odpowiedz

2

Wziąłem ukłucie w ten sposób z JavaScript tutaj: https://github.com/pgkelley4/city-boundaries-google-maps

Zasadniczo sprowadza się do znalezienia relation że OpenStreetMap sklepy granicach miasta jak.

Kiedyś coś takiego następującej kwerendy, aby uzyskać Powierzchnia:

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

Albo jeśli nie znajdzie niczego, przechodząc przez węzeł znaleźć żadnych powiązanych obszarów:

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

Aby pobierz ID relacji, odejmij 3600000000 od ID obszaru zwróconego przez powyższe zapytania. Następnie uzyskać relację ze swojego ID:

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

można przetestować zapytania tutaj, kopalnia prawdopodobnie mogłyby zostać poprawione na: http://overpass-api.de/query_form.html

ten sposób, aby uzyskać granice miasta, ich przetwarzania, to inna sprawa, jak nic nie jest w porządku w relacji. W tym celu zobacz mój projekt GitHub i: http://wiki.openstreetmap.org/wiki/Relation:multipolygon/Algorithm

Również chciałbym zauważyć, że dane OpenStreetMap dla granic miasta są nieregularne. Brakuje go w dużych miastach, takich jak Dallas i Los Angeles, z tego co wiem.

+0

Wygląda na to, że dodali LA od 2013 roku. Dallas wciąż jest nieobecny, ale są tam Forth Worth i reszta okolicznych miast. Zobacz: http://www.openstreetmap.org/relation/207359 –

Powiązane problemy