Adres geokodu raz w mapach Google, zapisz w bazie danych, czytaj wynik geokodowany od tego momentu

13

Czy możliwe jest geokodowanie adresu, zapisanie wyniku w bazie danych, a następnie odczytanie tego wyniku odtąd?

Używam mapy Google, która geokoduje setki adresów, które oczywiście osiągnęły limit geokodów. Po geokodowaniu jest mało prawdopodobne, aby adres ponownie się zmienił, więc warto zapisać wynik geokodu w bazie danych.

Używam Wordpress jako platformy, więc jeśli to możliwe, chciałbym zapisać wynik geokodowany jako pole w bazie danych, które dotyczy konkretnej firmy.

KLIENT SZCZEGÓLNIE ZAPYTAŁ O WYKORZYSTANIE GOOGLE W CAŁOŚCI PROJEKTU WYKORZYSTUJĄCEGO YAHOO LUB INNE INNE.

AKTUALIZACJA: Każdy, kto mówi o tym, o co pytam, jest sprzeczny z TOS, ale nie jest to ich własny przykład, który robi to samo - developers.google.com/maps/articles/phpsqlgeocode ?

Obrabować
źródło
6
Przeczytaj warunki 10.0.3 (a, b, c) developers.google.com/maps/terms , nie wolno używać Treści do tworzenia niezależnej bazy danych „miejsc” lub innych informacji o lokalnych wpisach.
Mapperz
3
Yahoo PlaceFinder developer.yahoo.com/geo/placefinder ma lepsze Warunki - Interfejs API Placefinder nie ma wspomnianego ograniczenia dotyczącego przechowywania zwracanych danych lokalizacji.
Mapperz
@Mapperz Ok dzięki. Czy można zapisać w Google Fusion Table i jakoś połączyć to z WordPress?
Rob
Czy potrzebujesz danych pocztowych ZIP + 4? Jeśli tak, to zmienia odpowiedź. Czy zamierzasz wysłać coś na adres, czy po prostu użyć danych geograficznych do lokalizacji i pozycji?
Jeffrey
1
Poczekaj ... Jestem prawie pewien, że to wciąż naruszenie TOS z API Yahoo.
Matt

Odpowiedzi:

5

Zgodnie z Warunkami korzystania z usługi YahooMaps nie wolno przechowywać danych zebranych podczas korzystania z interfejsu API. (konkretnie viii) „NIE WOLNO:”

(vi) użyj Yahoo! Interfejsy API map z informacjami o lokalizacji, które są starsze niż 6 godzin i pochodzą z urządzenia GPS lub dowolnego innego urządzenia wykrywającego lokalizację;

(vii) użyj Yahoo! Interfejsy API Map z informacjami o lokalizacji pochodzącymi z urządzenia GPS lub dowolnego innego urządzenia wykrywającego lokalizację, w przypadku gdy takie informacje nie zostały przesłane do Twojej aplikacji lub usługi bezpośrednio przez użytkownika końcowego;

(viii) przechowuj lub zezwalaj użytkownikom końcowym na przechowywanie zdjęć map, danych map lub geokodowanych informacji o lokalizacji z Yahoo! Interfejsy API Map do wykorzystania w przyszłości;

(ix) używaj samodzielnego geokodera do jakichkolwiek celów innych niż wyświetlanie Yahoo! Mapy lub wyświetlanie punktów na Yahoo! Mapy;

(x) publikować lub wyświetlać lub zezwalać innym użytkownikom na publikowanie lub wyświetlanie dowolnych informacji o geokodowanej lokalizacji za pomocą dowolnego Yahoo! Interfejsy API Map;

Jest to zgodne z tym, co widziałem w TOS od Google, Bing, MapQuest i Yahoo. Powodem tego jest to, że korzystają bezpośrednio z możliwości przedstawienia wyników użytkownikowi końcowemu. Jeśli ich logo i „mapy Google” nie zostaną wyświetlone, nie otrzymają żadnego „ulicznego kredytu” ani ekspozycji. Tak więc ich motywacja do świadczenia usługi zniknęła. Ułatwiają korzystanie z usługi (niezwykle łatwe), ale także nakładają rozsądne ograniczenia. Tak długo, jak korzystasz z ich danych, aby zarabiać na nich pieniądze (nawet jeśli tylko dostają ujawnienie), jesteś zgodny z warunkami ich OWU. Jeśli spróbujesz ominąć te warunki, ryzykujesz, że zostaniesz odcięty w dowolnym momencie. Niezbyt szczęśliwa historia, jeśli twoja usługa opiera się na ich usłudze.

Nigdy nie korzystałem ze środowiska roboczego FME, wygląda on naprawdę potężnie (a jednocześnie bardziej skomplikowany niż jest to potrzebne), ale nadal będzie podlegał warunkom świadczenia usług przez dostawców danych. Porównaj przepływ pracy FME z tym prostym żądaniem HTTP do interfejsu API LiveAddress firmy SmartyStreets:

https://api.qualifiedaddress.com/street-address/?street=1600+Ampytheatr+Pkway+Mountain+Vew+ca&auth-token=23350695

Pobiera następujący adres i standaryzuje go (w tym oczywistą korektę pisowni), sprawdza, czy jest on możliwy do dostarczenia, a następnie geokoduje go i dzieli adres na różne komponenty, wysyłając go jako strumień JSON. (jeśli nie czytasz JSON, możesz podłączyć dane wyjściowe do formatyzatora JSON, aby uzyskać znacznie bardziej czytelne wyniki. (Możesz również użyć własnych danych w ciągu adresu URL do celów testowych)

1600 Ampytheatr Pkway Mountain Vew, Kalifornia

staje się

1600 Amfiteatr Pkwy Mountain View, CA 94043-1351

Istnieje wiele komercyjnych interfejsów API, które wykonują weryfikację adresu, SmartyStreets po prostu zdarza się, że parkuję samochód każdego ranka. (Cdyne, StrikeIron, QAS to kilka innych, które oferują podobną usługę.) Te usługi komercyjne oferują korzystanie z ich danych, które nie są związane nadmiernie restrykcyjnymi warunkami świadczenia usług. Zasadniczo możesz użyć wynikowego zestawu danych do prawie wszystkiego, co bezpośrednio konkuruje.

Masz rację, że dane geokodowania nie zmieniają się zbyt często i są czymś, co z pewnością można buforować lokalnie lub w bazie danych, aby zminimalizować liczbę żądań do serwera. Dobre myślenie.

Jeffrey
źródło
Dane są odświeżane co 6 godzin, a intencją jest użycie ich z Yahoo Maps - kluczowa część >> użyj Yahoo! Interfejsy API map z informacjami o lokalizacji, które są starsze niż 6 godzin i pochodzą z urządzenia GPS lub dowolnego innego urządzenia wykrywającego lokalizację;
Mapperz
@Mapperz Świeżość i źródło danych adresowych nie były głównym problemem w TOS. Przytoczyłem je tylko po to, aby dodać kontekst do najważniejszego punktu, którym jest: „NIE MUSISZ” (viii) przechowywać lub zezwalać użytkownikom końcowym na przechowywanie zdjęć map, danych map lub geokodowanych informacji o lokalizacji z Yahoo! Interfejsy API Map do wykorzystania w przyszłości. Nie ma znaczenia, jak świeże lub nieaktualne są dane.
Jeffrey,
@Jeffrey Nie mam wyboru, jak tylko korzystać z usług Google, jest to szczególny wymóg klienta. Wyklucza to korzystanie z Yahoo lub czegokolwiek innego.
Rob
@ Teamworksdesign.com Znakomity, który eliminuje wiele rozglądania się, a teraz możesz zagłębić się w kod. Szczęście!
Jeffrey,
5

Po wielu kopaniach Google faktycznie pokazuje, jak przechowywać wyniki Geokodów w bazie danych. Ponieważ istnieje samouczek Google na temat tego, jak to zrobić, zakładam, że nie narusza to jasnych, błotnych warunków świadczenia usług, o których wspominało tak wielu.

Obrabować
źródło
4

Korzystanie ze środowiska roboczego FME do wykonywania geokodowania „zbiorczego” z interfejsu API Yahoo PlaceFinder

Limit 50 000 żądań na 24 godziny:

wprowadź opis zdjęcia tutaj

Kluczowym składnikiem jest moduł HTTPFetcher

Ten zrzut ekranu jest zmodyfikowaną wersją swobodnie dostępnego obszaru roboczego „Budowanie usług sieciowych” http://fmepedia.safe.com/articles/FAQ/Building-Web-services-workspace

Modyfikacje:

Wprowadzanie wielu adresów (csv jest najszybszy)

Jakość każdego geokodowanego dopasowania jest rejestrowana (powyżej 87 jest dobra)

Dodano rzędną z innej usługi (geonames gtop30 dem)

Sprawdzanie poprawności i filtrowanie złych adresów do sprawdzenia.

(Spróbuje dostać się do sklepu FME po zapoznaniu się z umową / warunkami).

Mapperz
źródło
Byłbym bardzo zainteresowany widzeniem twojego Workspace również, ponieważ to również
pasuje
Wygląda to na świetny przepływ pracy, ale pamiętaj, że przechowywanie wyników z pewnością stanowiłoby naruszenie TOS.
Jeffrey,
tylko jeśli przechowujesz go dłużej niż 6 godzin ... lub używasz go w połączeniu z Yahoo Maps do wyświetlania lokalizacji
Mapperz
Korzystanie z PlaceFinder nie wymaga korzystania z Yahoo! Mapy lub Yahoo! Mapy API. Eddie Babcock Yahoo! Geo Technologies developer.yahoo.com/forum/PlaceFinder-General-Discussion/…
Mapperz
@Mapperz Cóż, TOS mówi: „NIE WOLNO: {{cytowano również wielkimi literami}") przechowywać lub zezwalać użytkownikom końcowym na przechowywanie zdjęć map, danych map lub geokodowanych informacji o lokalizacji z interfejsów API Yahoo! Maps do wykorzystania w przyszłości. " Wydaje się całkiem jasne, że jeśli intencją jest „przechowywanie” danych, narusza to TOS. Ale z pewnością należy to interpretacji. Wszystko to powiedziało: gdybym budował aplikację komercyjną, chciałbym upewnić się, że moja interpretacja jest taka sama jak interpretacja dostawców danych, ponieważ oni (w tym przypadku Yahoo) posiadają ostateczny przełącznik zabijania.
Jeffrey,
4

Krótka odpowiedź na pierwsze pytanie brzmi „ tak”, o ile korzystasz z usługi mapowania Google , możesz przechowywać wyniki. Jest to wyraźnie określone (po kilku powtórnych odczytach) w swoich ToS i interfejsie API geokodowania.

Należy pamiętać, że podobnie jak wiele innych popularnych usług geokodów, one również tego wymagają

  1. Używaj tylko danych pozyskanych i buforowanych przez Google z ich narzędziami do mapowania
  2. Jeśli jest to narzędzie wewnętrzne, a nie zewnętrzne publicznie bezpłatne, musisz zarejestrować się jako klient komercyjny, aby legalnie z niego korzystać.

Zanotuj uważnie # 1 ... bardzo krytyczne rozróżnienie, możesz buforować, ale nie chcą, abyś używał lat / long (na przykład) w czyimś narzędziu do mapowania, czy to innej stronie internetowej, czy „homebrew” (choć ma to być szczerze mówiąc, nie jestem pewien, w jaki sposób każdy może śledzić, gdzie używane są dane długości / długości.

wszystkie ograniczenia i inne ograniczenia określone w ich Zasadach i innych obowiązujących dokumentach.

użytkownik15518
źródło