Geolokalizacja po kodzie pocztowym

0

Witam,
muszę napisać formularz, który na bazie podanego kodu pocztowego znajdzie mi najbliższy punkt usługowy bazujący na liście adresów uzupełnianej w panelu administracyjnym, oraz będzie w stanie pobrać (już pewnie z api) jego (kodu pocztowego) województwo, powiat, gminę i miejscowość. Z tego co widzę, go w google mapie średnio z tym wyszukiwaniem po kodzie pocztowym. Czy ktoś z Was może robił już coś takiego? Chodzi o takie zachowanie jak np. w pizzadominium, gdzie po wpisaniu adresu wyświetla się najbliższa pizzeria, która dostarczy pizze ( tylko aby to nie bazowało na adresie lecz na kodzie pocztowym)

2

Mi się wydaje, że google maps sobie radzi z tym dość dobrze. Wpisuję kod, a mapy znajdują przybliżoną lokalizację. Jest to często dość spory obszar, więc nie ma co narzekać. Jak masz już lokalizację to wyszukiwanie najbliższych punktów nie powinno być trudne.
Tu przykładowe rozwiązanie: http://www.geocodezip.com/v3_SO_closestPlaces10sort.html
Na podstawie odpowiedzi do: https://stackoverflow.com/que[...]ps-api-find-nearest-locations

0

Ja bym to zrobił tak:
W panelu adminia, podczas dodawania lokalizacji, dodaj mapę tak aby osoba która uzupełnia dane zaznaczyła kropkę na mapie gdzie znajduje się lokalizacja i te koordynaty zapisuj w DB + indeksuj te dane przy pomocy jakiegoś fajnego silnika do wyszukiwania (1).

Dla klienta użyj geocode api od google aby uzyskać koordynaty dla wyszukiwanego kodu pocztowego (2). Następnie na podstawie otrzymanych koordynatów wyszukaj w indeksie obiekty które są najbliżej wskazanej lokalizacji.

1) Apache Solr lub coś z saas- Algolia albo Elastisearch od AWS
2) Tu uważaj! Google nie zawsze dobrze radzi sobie z takimi zapytaniami. Kilka lat temu miałem duży problem z wyszukiwaniem po kodzie pocztowym 4 znakowym (Austria) - dla takich kodów api głupieje. Zrób sobie coś na wzór stress testów żeby ogarnąć czy zwracane przez api wyniki Cię satysfakcjonują. Jeśli nie to pokombinuj z api place + autocomplete.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0