2009-09-02 91 views
5

基本上每當有人打開我的(Google)地圖時,我希望它默認爲其大致位置。基於地理編碼IP的中心Google地圖

有沒有一種簡單的方法來做到這一點與谷歌的API或我必須編寫自定義代碼(這是基於Python的應用程序)?

回答

3

結賬http://www.ipinfodb.com/。您可以通過將服務傳遞給IP地址來獲取經度和緯度值。我最近創建了一個簡單的服務,它抓取當前的IP地址,然後將它傳遞給服務(「api/location/city」只是一個捲動ipinfodb服務的服務)。使用jQuery:

$.get("api/location/city", null, function(data, textStatus) 
{   
    if (data != null) 
    { 
     if (data.Status == "OK") 
     { 
      var lat = parseFloat(data.Latitude); 
      var lng = parseFloat(data.Longitude); 

      $.setCenter(lat, lng, $.settings.defaultCityZoom); 

      manager = new MarkerManager(map, {trackMarkers : true }); 

      var e = $.createUserMarker(map.getCenter()); 
      e.bindInfoWindowHtml($("#marker-content-event").html()); 

      var m = []; 
      m.push(e); 

      // map.addOverlay(e); 
      manager.addMarkers(m, 10); 
      manager.refresh(); 
     } 
     else 
     { 
      $.setCenter($.settings.defaultLat, $.settings.defaultLng, $.settings.defaultZoom); 
     } 
    } 
}, "json"); 

這裏的關鍵是這一行:

$.setCenter(lat, lng, $.settings.defaultCityZoom); 

只需設置中心到服務調用的結果的緯度/經度。

+0

這是好的,但現在我需要找出如何獲得IP。 – Eeyore 2009-09-02 19:15:47

0

the docs,只是map.setCenter(new GLatLng(37.4419, -122.1419), 13);或任何其他座標。在頁面的Javascript中執行它通常是首選。

如果你的意思是把IP翻譯成緯度和經度,我認爲Google API不支持,但還有其他的網絡服務,比如,hostip,以及許多其他的服務。我不知道推薦哪一個 - 試一試,我的建議!

0

如果用戶使用FireFox 3.5/google gear,則可以從瀏覽器本身檢索lat和lng。 你會發現細節另一個stackoverflow post here

8

您可以使用谷歌API的內置ClientLocation對象:

if (GBrowserIsCompatible()) 
{ 
    var map = new google.maps.Map2(document.getElementById("mapdiv")); 

    if (google.loader.ClientLocation) 
    {   
     var center = new google.maps.LatLng(
      google.loader.ClientLocation.latitude, 
      google.loader.ClientLocation.longitude 
     ); 
     var zoom = 8; 

     map.setCenter(center, zoom); 
    } 
} 
+0

由於某種原因,它不適合我。 – Eeyore 2009-09-02 19:15:15

+0

適合我喜歡的魅力。 – zgoda 2009-09-03 17:15:03

+0

你的答案是我需要的。好工作 – Txugo 2011-02-07 18:31:15

0
+0

只包含鏈接的答案是[認爲不好的做法](http://meta.stackexchange.com/questions/8231/are-answers-that-just-contain-links-elsewhere-really-good-answers)。請總結這裏的內容(不要複製/粘貼),這樣答案就可以獨立運作。如果你不這樣做,那麼你的答案就會被刪除,特別是如果鏈接死亡的話。 – 2012-11-19 16:30:21