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.
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
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)
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