2010-01-18 99 views

回答

5

Q1:它可以在這裏工作,也可能來自其他許多地方。但請注意,來自IP地址的地理位置不是一門非常可靠的科學。您將獲得ISP的位置,這可能相當遙遠,此外,IP到位置數據庫並不總是與最新更改保持一致,因此您可能沒有任何特定IP的數據地址 - 這可能是你的情況發生了什麼。

的MaxMind,它提供了公佈其數據庫的一些統計數據的流行的IP到位置數據庫:

Q2:只有這樣,才能從IP獲取地理位置通過Google Maps API v3的地址是使用example you provided中使用的相同方法。但是,如果您發現其他地理位置數據庫(如MaxMind GeoLite City)對您的國家/地區更爲準確,則可能需要自己執行IP地址的地理定位,而不是將其委派給Google地圖。

+2

作品也來自這裏。可能你的(OP)位置不在數據庫中。 – dusoft 2010-01-18 09:44:58

+1

對我來說也很好(城市級別)。 – 2010-01-18 17:03:03

0

網絡Google Maps API似乎沒有提供IP地址地理定位服務(提供的example建議使用W3C地理定位標準,通常需要用戶採取措施)。

但是!谷歌的Maps Geolocation API,通常在移動客戶端使用,可以可以從網站使用與確實返回基於請求的客戶端的IP地址緯度經度&。

下面是一個簡單的jQuery的例子,演示了它的用法:

$.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'); 
     } 
    } 
    }); 

這裏是curl相當於:

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

不要忘了在真實的API密鑰交換的例子上方和enable the Geolocation API用於您的Google API項目。

+0

你有沒有機會提供一個html例子? – 2017-11-01 15:39:17

+1

@RoccoTheTaco:這是[示例](http://jsbin.com/fiberadufu/1/edit?HTML,控制檯,輸出)使用與上面相同的代碼。您需要設置'GOOGLE_API_KEY'變量,否則這將不起作用(轉到Google API控制檯,創建新項目,啓用地理定位API並獲取API密鑰)。 – 2017-11-01 20:00:22

+0

查看Google地圖網站中的[示例](https://developers.google.com/maps/documentation/javascript/geolocation)。 – Jaime 2017-11-28 03:10:11