我正在尝试使用标记填充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