Wyznaczenie strefy w miescie - wyszukiwarka

Witam, potrzebuje pomocy. Musze zrobic podzial miasta na strefy - osiedlami. Chodzi o to zeby mozna bylo stwierdzić wpisując ulice ktore to osiedle - taka wyszukiwarka. Ktos ma jakis pomysł jak to ogarnąć ?

Nie jestem przekonany, czy założenie jest słuszne.
Nie znasz żadnej ulicy, która z lewej strony należy do jednego osiedla, a z prawej do drugiego?
Albo (powiedzmy) północna jej część należy do osiedla A, a południowa do osiedla B?

… Przemyśl, czy to Twoje założenie jest prawidłowe.

1 Like

Myślę, że trzeba by się bardziej pomęczyć. Stworzyć wielokąty odpowiadające granicom osiedla, którego wierzchołkami są współrzędne na mapie. Następnie, gdy osoba wpisuje adres - należałoby pobrać współrzędne tego adresu i sprawdzić do którego wielokąta należy. To czy punkt o podanych współrzędnych należy do danego wielokąta to już zupełnie inna bajka :wink:

Tak jak napisał @BSorbus, granice osiedli gdzieś przebiegają, więc wyszukiwanie musi zawierać też nr. działki. Sprawdź czy nie ma jakiegoś spisu działek/ulic, w postaci jakiegoś API dla tego miasto - np. Poznań ma takie coś i z tego można korzystać. Chodzi o przypisanie adres->osiedle.

A mogłbyś troszeczke rozszerzyć swoja myśl ? Jak na google mapsach wyznaczyc jakis wielokąt ? I jak policzyc pozniej czy dany punkt znajduje sie gdzies pomiedzy ?

Być może spróbujesz tak:
http://maps.googleapis.com/maps/api/geocode/json?address=Mazowiecka+Warszawa

Ciekawy temat. Zobacz sobie na bazę TERYT: http://www.stat.gov.pl/broker/access/definitionTree.jspa
Są tam też pliki XML do ściągnięcia z województwami, powiatami, gminami, miejscowościami, częściami miejscowości (np. osiedla, dzielnice) i ulicami.
Temat jednej ulicy znajdującej się na terenie dwóch dzielnic rozwiązany jest tam tak, że w bazie są dwie ulice o tej samej nazwie, ale o innych identyfikatorach - należą one do dzielnic leżących obok siebie.

Ciekawostka: w Warszawie są dwie ulice o nazwie “Ogrodowa” - jedna w dzielnicy Wola a druga w dzielnicy Wesoła:
https://www.google.pl/maps/place/Ogrodowa,+Warszawa/@52.2385723,20.9858863,17z/data=!3m1!4b1!4m2!3m1!1s0x471ecc812bff2309:0x1cc45a537adf99e8
https://www.google.pl/maps/place/Ogrodowa,+Warszawa/@52.2528673,21.2175598,17z/data=!3m1!4b1!4m2!3m1!1s0x471ed1653eab81cb:0xc442e0f0ecea484d

Geolokalizacja Google zaporoponowana przez kolegę post wyżej z tym przykładem sobie nie poradziła. Nie jestem też przekonany co do prawidłowości danych udostępnianych przez Google (w kwestii przyporządkowania do dzielnic) - TERYT jest na pewno bardziej syntetyczne w tej kwestii.

Okazuje się, że dzielnica dzielnicy nie równa i takie miasta jak Warszawa, Kraków, Poznań, Wrocław i Łódź mają “podjednostki” zwane delegaturami (zwane zwykle dzielnice). Z kolei delegatury np. Kraków-Krowodrza znów dzieli się na dzielnice.

Teryt byłby ok, tylko jeden problem, te strefy pokrywaja sie w 90% z dzielnicami wiec jedyne co przychodzi do głowy to zassanie terytu i pozniej reczne przypisywanie strefy do dzielnicy ktora sie nie miesci w danej strefie. Chyba, że macie jakieś rozsądniejszy pomysł ?

To co zwraca API googla też było by wzglednie dobre. Tylko niewiem czego sie spodziewać - ile, jakie dzielnice mi to zwróci ? mozna zmusić google w jakis magiczny sposob o liste tego ?

Mercer - Ja tutaj nie widze drugiej ogrodowej ?

Zassałem baze ulic warszawy z terytu ale jest jeden problem. Mianowicie nie jestem wstanie wstwierdzic jednej rzeczy, jesli ulica przebiega przez 2 czy wiecej osiedli czy numer 33 należy do Mokotowa czy Ursynowa… Chyba ze to ma jakies zaszyte info o którym ja niewiem ?

No w skrócie, bo tak jak pisałem to troszkę skomplikowane a już na pewno pracochłonne.

Za pomocą maps.google możesz wyznaczyć współrzędne punktów będące wierzchołkami wielokąta, który pokrywa osiedle. Musisz mieć zatem model wielokąta, który nakarmisz tymi współrzędnymi i co ważne - połączeniami między nimi. Taki wielokąt ze współrzędnymi to nic innego jak wielokąt w systemie kartezjańskim. Masz bazę wierzchołków, i krawędzi - masz wielokąt. (to imo musiałbyś porobić ręcznie)

http://0x80.pl/articles/point_in_polygon.html

Słusznie, ale warto koledze zwrócić uwagę, że natyra się jak wół, bo to nie są ani trójkąty, ani kwadraty lecz figury o baaaaardzo wielu wierzchołkach

http://www.adresy.um.warszawa.pl/wyszukiwanie/faces/punktyAdresowe.xhtml ?

W http://osiedla.poznan.pl/osiedla użyłem danych z podobnego API do wyszukiwania poszczególnych adresów. Poza tym, w API są tez opisane współrzędne wielokątów określające poszczególne osiedla.

Sprawdź co oferuje Urząd Miasta Warszawa.

Wacaw - To co wstawiłes dla UM warszawa bedzie wystarczajace, to co zgadza sie dzielnicami wstawie z automatu a reszte bedzie mozna przypisać recznie - te ktore sie nie zgadzaja… Wiec wzglednie problem rozwiazany