Witam, pobrałem ze strony GUS bazę miejscowości, przerobiłem ją na plik sql. Chciałbym osiągnąć efekt, który jest widoczny na niektórych portalach internetowych, tj.: można wyszukać np. ogłoszenia do 50, 100 km od wybranej danej miejscowości. Kompletnie nie mam pojęcia jak to zrobić. Jest jakaś biblioteka odpowiedzialna za efekt takiego selekcjonowania?
Powiedz jakie masz kolumny w bazie :)
a masz pozycje X,Y tych miejscowości? Bo jak nie to przyda się jakieś Google Maps API, gdzie takie rzeczy będą (btw: nie przeszukiwałeś internetu, prawda?)
Musisz przechowywać X, Y miejsowości + X, Y dla każdego ogłoszenia. Jak to masz, to obliczasz odległość, pomiędzy tymi funkcjami.
MySQL:
https://github.com/mattg888/MySQL-Distance-Calculation-Functions
PostgreSQL:
Zainstaluj lepiej Postgis, przez co będziesz mieć nowy typ kolumny geo, no i łatwe obliczanie poprzez funkcje st_distance.
Podajże w nowej wersji będzie można dodać indexy do tych kolumn, co znacznie przyśpieszy sprawę.
MongoDB :
Najbardziej polecam tutaj przechowywanie takich wartości, bo wyszukiwanie jest bardzo szybkie.
http://docs.mongodb.org/manual/tutorial/calculate-distances-using-spherical-geometry-with-2d-geospatial-indexes/
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.