我正在动态构建gMap插件的选项,并且需要知道如何检查其中一个标记是否已经存在。
这是用javascript构建的:
success: function(data) {
var markers = { controls: true, scrollwheel: true, markers: [], zoom: 8 };
$.each(data["events"], function(id, event) {
// .. do other stuff with the data
if(showmap) {
// add location to maps list prevent multiples
//
// How do I check to see if it already exists?
//
// event[] is a JSON Object, BTW
//
//if((markers.indexOf(event['LocLatitude']) == -1) && (markers.indexOf(event['LocLongitude']) == -1)) {
marker1 = { latitude: event['LocLatitude'],
longitude:event['LocLongitude'],
html: '"'+event['LocName']+'<br />'+event['LocAddress']+'<br />'+event['LocCity']+', '+event['LocState']+'"',
icon:{image: "/images/gmap_pin_orange.png",
iconsize: [26, 46],
iconanchor: [12,46],
infowindowanchor: [12, 0]
}
};
markers.markers.push(marker1);
//} // if((markers.indexOf(event['LocLatitude']) == -1)
} // if(showmap)
} // $.each(data["events"]
}, // success:
上面评论的代码显示了当我将其构建为字符串时我是如何做到的,该技术不再有效。 我需要知道在推送标记之前,如何检查标记是否已经存在于markers.markers中。
答案 0 :(得分:0)
您可以使用数字ID分配它们,还是以某种方式根据上下文创建ID,而不是将标记推送到表中?看看我对这个问题的回答: How to select and manipulate google maps (V3 JS API) marker by ID?
答案 1 :(得分:0)
在这里,我正在迭代标记并检查我想要的标记,返回false会将我从$ .each中删除,返回true继续。
marker_exists = false;
$.each( markers.markers, function(i, n){
if(markers.markers[i].latitude == event['LocLatitude'] && markers.markers[i].longitude == event['LocLongitude']) {
if(markers.latitude == "") {
markers.latitude = event['LocLatitude'];
markers.longitude = event['LocLongitude'];
}
marker_exists = true;
return false;
} else {
return true;
}
});