Google Maps Api - zaznaczanie nazwami miast oraz ulic

Hej, cześć i czołem!

Piszę mapę dla mojego serwisu, i natknąłem się na pewien problem.
Opiszę jak to powinno działać :slight_smile:

  1. Z mojej aplikacji wyciągam sobie Jsona z imieniem i nazwiskiem oraz miejscowością.
  2. Przekazuje JSONa to Google Maps Api.
  3. Zaznaczam sobie gdzie ktoś zamówił, i podpisuje imieniem i nazwiskiem.

Finalnie chce, aby była mapka z której widzę co się kręci na “rewirze” :slight_smile:

Dla przykładu utworzyłem dane z tablicą, łatwiej do czytania.
http://wklejto.pl/783379

I gdzie jest problem, a no problem leży w miejscu miejscowości. Nie chcę podawać współrzędnych lat oraz lng(bo tego z mojej aplikacji nie wyciągne) tylko np. Warszawa ul. Krucza 7. Poznań Termalna 5 itd itd…

Z góry dzięki załogo!

Dokładnie nie pamiętam która funkcja API za to odpowiada, ale w takim przypadku najpierw musisz wyszukać współrzędne adresów, a dopiero potem przy pomocy uzyskanych współrzędnych nanieść punkty na mapę.

Generalnie lepiej to cachować bo takie ciągłe wyszukiwanie współrzędnych tych samych adresów będzie tylko zjadało transfer do API.

Masz może jakiś przykład takiego rozwiązania? Lub czy mógłbyś “dopasować” do mojego kodu.
Nie do końca rozumiem…

30 sekund w google - wystarczyło wpisać

google maps api get coordinates from address

Musisz użyć API geocoding, przykłady znajdziesz tutaj: https://developers.google.com/maps/documentation/geocoding/intro

Nikt nie powiedział, że będzie łatwo.

No nic, czas na lekturę…

Masz jeszcze api od openstreet map, skąd możesz uzyskać współrzędne, po adresie.

Generalnie jak było napisane wyżej zrób sobie bazę danych z tymi osobami kolumny np. imie, nazwisko, miasto, lat, lng, sprw

gdzie sprw, będzie odpowiadało czy został już wyszukany aby ponownie nie używać transferu api, bo nie każdy adres musi znaleźć dopasowanie. Następnie baze ładujesz do tego skryptu i wyświetlasz na mapie.

Możesz też ustawić crona aby co jakiś czas sprawdzał czy wszyscy mają dopasowany adres, bo zakładam, że będą nowi.

Akurat to takie trudne nie jest

Dodatkowe pole czy adres został wprowadzony czy nie jest całkowicie zbędne, jak nie został to po prostu nie ma lat/lng. Nie ma sensu bawić się w crona, ani inne joby, wystarczy przy dodawaniu te dane zassać i tyle.

Lepiej zastanowić się czy adresy będą się powtarzały często, jeśli tak to trzeba zrobić normalizację db przynajmniej do trzecie postaci normalnej.

Niekoniecznie lat/lng moze zostać puste jezeli przekroczysz limit API adres bedzie w niepoprawnym formacie czy wystąpi jakiś inny błąd co przy każdej iteracji bedzie sie powtarzać, oczywiście mozesz to nadpisać wtedy zerami jako, ze nikt tam raczej nie mieszka i ich nie wyświetlać.

Jasne nie trzeba sie w crona bawić da sie tez to normalnie rozwiazac. Aczkolwiek jezeli to bedą dodawali inni użytkownicy trzeba dodać jakiś mechanizm bezpieczeństwa zeby nie zaspamowali api.

Ale po co…?
Panowie… to strona dla mnie. max 10-15 wejść dziennie.
Za dużo kombinowania.
Poprawiłem jest ok. Dziękuje.