2011-05-06 47 views
2

我正在嘗試學習Google Maps和Places API,所以我想我會從基礎知識開始:通過IP地址在地圖上顯示用戶的位置。我需要關於jQuery和Google Maps API的幫助

我在another thread中發現了一個獲取用戶經緯度的jQuery腳本,它工作正常(位於var下的警報顯示經度和緯度),但是當我將該變量傳遞給Maps方法時,工作。有人可以看到我的功能有什麼問題或者它是如何被調用的?

$.getJSON('http://api.wipmania.com/jsonp?callback=?', function (data) { 
var latlng = new google.maps.LatLng(data.latitude,data.longitude); 
function initialize() { 
    var myOptions = { 
     zoom: 8, 
     center: latlng, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    }; 
    var map = new google.maps.Map(document.getElementById("map_canvas"), 
     myOptions); 
    } 
}); 

編輯:順便說一句,這是我使用的腳本:

<script language="javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> 
<script language="javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> 
+0

愚蠢的問題,但你必須與你在嵌入式腳本中的頁面上的ID'map_canvas'一個元素? – casperOne 2011-05-06 19:48:39

+0

只是一個旁註,直到你回答上面的問題,但你爲什麼使用那個老jQuery? Jquery現在在1.6。 – plebksig 2011-05-06 19:50:14

回答

0

我想我知道你做了什麼沒有。看起來像您使用Hello World gmaps示例開始。

如果您發現gmaps例如要求在地圖上元素的onloadinitialize功能,所以你要做的是把的getJSON()調用的內容的初始化函數包裝該函數的原代碼裏面是什麼。

下面是它的外觀:

function initialize() { 

    $.getJSON('http://api.wipmania.com/jsonp?callback=?', function (data) { 
     var latlng = new google.maps.LatLng(data.latitude,data.longitude); 
     var myOptions = { 
      zoom: 8, 
      center: latlng, 
      mapTypeId: google.maps.MapTypeId.ROADMAP 
     }; 
     var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 
    }); 

} 
0

試圖聲明您function initialize()getJSON返回塊之外。

像這樣:

$(function(){ 

    $.getJSON('http://api.wipmania.com/jsonp?callback=?', function (data) { 
      var latlng = new google.maps.LatLng(data.latitude,data.longitude); 
      initialize(latlng); 
    }); 
}); 

function initialize(latlng) { 
    var myOptions = { 
     zoom: 8, 
     center: latlng, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    }; 
    var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 
}