我有一个网页,使用listing_id, lat, lng
接收值为$.getJSON
的AJAX数据。回调函数采用这些系列值,并为每组listing_id, lat, lng
创建一个Google地图标记。然后将标记推入数组markers
,将其listing_id
推入数组markersListingId
。
var latLng = new google.maps.LatLng(json[i].lat, json[i].lng);
var marker = new google.maps.Marker({
position: latLng,
icon: base_url + 'images/template/markers/listing.png',
});
markers.push(marker);
markersListingId.push(json[i].listing_id);
问题:当我想选择与特定listing_id
相对应的特定标记时出现问题,尤其是在标记被删除并添加到{{1}的更复杂情况下数组。
我可以让for循环遍历markers
数组中所有标记的id然后使用循环索引markersListingId
来获取i
数组中的标记,但这会使跟踪变得非常棘手
markers
问题:如何存储标记,以便我可以使用var id_to_select = 1234;
for(var i = 0; i < markersListingId; i++) {
if(markersListingId[i] == id_to_select) {
markers[i].setMap(null);
}
}
轻松选择特定标记?
答案 0 :(得分:0)
创建标记时,您可以使用哈希表而不是使用数组吗?
var markers = {};
//id goes in place of 1234
n = 1234;
markers[n] = new google.maps.Marker({
map: map,
position: new google.maps.LatLng(0,0)
});
s = '2234'
markers[s] = new google.maps.Marker({
map: map,
position: new google.maps.LatLng(20,0)
});
google.maps.event.addListener(map, 'click', function(event) {
k = 1234;
markers[k].setMap(null);
markers['2234'].setMap(null);
});
}