2010-01-18 15 views
5

Czy ktoś był w stanie uzyskać geolokalizację opartą na adresie IP osoby do pracy przy użyciu Google Maps API v3 JavaScript?Google Maps API v3 - geolokalizacja oparta na protokole IP

Wydaje mi się, że nawet podany przykład google nie działa.

http://gmaps-samples-v3.googlecode.com/svn/trunk/commonloader/clientlocation.html

Pytanie:

  1. Czy ten przykład praca dla każdego?

  2. Jak uzyskać geolokalizację opartą na adresie IP osoby do pracy przy użyciu Google Maps API v3?

Odpowiedz

5

Q1: Działa stąd i zapewne wielu innych miejscach. Należy jednak pamiętać, że geolokalizacja z adresów IP nie jest bardzo niezawodną nauką. Otrzymasz lokalizację swojego dostawcy usług internetowych, która może być dość daleko, a ponadto bazy danych IP-to-location nie zawsze są na bieżąco z najnowszymi zmianami, więc możesz nie mieć żadnych danych dla konkretnego adresu IP adres - co prawdopodobnie dzieje się w twoim przypadku.

MaxMind, który oferuje popularną bazę IP-to-lokalizacji opublikował statystyki dotyczące bazy danych:

Q2: Jedynym sposobem, aby dostać się z geolokalizacji z adresu IP adres za pośrednictwem Google Maps API v3 jest za pomocą tej samej metody stosowanej w example you provided. Jeśli jednak okaże się, że jakakolwiek inna baza danych geolokalizacyjnych, taka jak MaxMind GeoLite City, jest bardziej dokładna dla Twojego kraju, możesz samodzielnie wykonać geolokalizację z adresów IP, zamiast delegować ją do Map Google.

+2

działa stąd również. prawdopodobnie twoja lokalizacja (OP) nie znajduje się w bazach danych. – dusoft

+1

Działa również dla mnie (poziom City). –

0

Internetowy interfejs API serwisu Mapy Google wydaje się nie oferować usługi geolokalizacji adresów IP (dostarczona wersja example sugeruje użycie standardu geolokalizacji W3C, który zwykle wymaga działania ze strony użytkownika).

Jednak! Google Maps Geolocation API, zazwyczaj używany na klientach mobilnych, może być używany z Internetu i ma zwrócić długość geograficzną & na podstawie adresu IP klienta żądającego.

Oto krótki przykład jQuery, która demonstruje swoje zastosowanie:

$.ajax({ 
    url: 'https://www.googleapis.com/geolocation/v1/geolocate?key=YOUR-API-KEY', 
    data: JSON.stringify({ "considerIp": "true" }), 
    type: 'POST', 
    contentType: 'application/json', 
    success: function(data) { 
     if(data.location) { 
     alert(data.location.lat + ', ' + data.location.lng); 
     } else { 
     alert('not found'); 
     } 
    } 
    }); 

oto curl równoważne:

curl -H "Content-Type: application/json" -X POST -d '{"considerIp": true}' https://www.googleapis.com/geolocation/v1/geolocate?key=YOUR-API-KEY 

Nie zapomnij zamienić w kluczu prawdziwy API w przykładach powyżej i enable the Geolocation API dla twojego projektu Google API.

+0

Czy masz szansę podać przykład html? –

+1

@RoccoTheTaco: tutaj jest [przykład] (http://jsbin.com/fiberadufu/1/edit?html, console, output) używając tego samego kodu co powyżej. Musisz ustawić zmienną "GOOGLE_API_KEY", w przeciwnym razie nie będzie działać (przejdź do konsoli Google API Console, utwórz nowy projekt, włącz interfejs API geolokacji i uzyskaj klucz API). –

+0

Sprawdź [przykłady] (https://developers.google.com/maps/documentation/javascript/geolocation) w witrynie Mapy Google. – Jaime

Powiązane problemy