我正在嘗試使用標記填充Google地圖。每個標記的信息包含在此陣列中:使用標記填充Google地圖JSON
[{"id":"1","name":"toler","lng":"110.33929824829102","lat":"-7.779369982234709","created_at":"2014-02-21 16:19:28","updated_at":"2014-02-21 16:19:28"},{"id":"2","name":"hallo :)","lng":"110.36865234375","lat":"-7.797738383377609","created_at":"2014-02-21 16:19:49","updated_at":"2014-02-21 16:19:49"}]
但是,我的地圖不顯示標記。我在我的JavaScript中使用此代碼:
getLocations();
function getLocations() {
alert('hello');
$.ajax({
type: "GET",
url: "http://localhost:8888/public/test",
dataType: "jsonp",
success: function(json){
$.each(json, function(i, entry){
PlotMarker(json[i].lat, json[i].long);
});
},
error: function(err){
console.log(err);
}
});
}
function PlotMarker(lat, long){
var marker = new google.maps.Marker({
position: new google.maps.LatLng(lat, long),
map: map,
draggable: false,
animation: google.maps.Animation.DROP
});
markerLocations.push(marker);
}
有什麼辦法可以解決這個問題嗎?調用此URL
http://localhost:8888/public/test
返回上面顯示的JSON。
任何幫助將不勝感激。
謝謝。
編輯:
function initialize() {
var markers = [];
var latLng = new google.maps.LatLng(-7.8,110.3666667);
var map = new google.maps.Map(document.getElementById('map-canvas'), {
zoom: 13,
center: latLng,
mapTypeId: google.maps.MapTypeId.ROADMAP
});
}
'gmap'聲明在哪裏? – Andy
你的意思是初始化函數? – patrick
如果你已經用'var'在'initialize'中聲明'gmap',那麼其他函數將無法看到它。在函數之外聲明'gmap',例如:'var gmap',然後在'initialize'內部執行'gmap = whatever'。 – Andy