我有一个谷歌地图的问题,我用ajax填充标记(与.each) 我不使用任何数组
function parks() {
$.ajax({
type: 'POST',
dataType: 'json',
url: '/index.php/route/getParks',
success: function(data) {
$.each(data.results, function(k,e){
var myLatlng = new google.maps.LatLng(e.lat,e.lng);
var marker = new google.maps.Marker({
position: myLatlng,
map: mapg,
title: 'Places',
});
})
}
});
}
是否有解决方案或我被迫使用数组?
由于
答案 0 :(得分:1)
你不希望没有数组。你需要搜索整个mapg
对象,找到关于标记的相应区域,找到你的标记和bla bla bla;很痛苦。特别是使用单字母变量名。
相反,定义一个全局标记数组:markers = new Array();
添加标记时填充数组:
$.each(data.results, function(k,e){
var marker = new google.maps.Marker({
position: new google.maps.LatLng(e.lat,e.lng),
map: mapg,
title: 'Places',
id: k // you may want to give another value for easy recognition
});
// you may add like markers["myPlace"] = marker; for easy recognition
markers.push(marker);
});
然后,您可以通过查看markers
数组并从地图中删除来获取标记:
markers["myPlace"].setMap(null);
// or you can search by id by looking markers[index].id in a loop