使用JQuery删除google地图标记
我已经搜索了hi和low关于这个的信息,但是没有结果 基本上,我有一个页面,它加载了一组目录作为复选框,例如,复选框1被称为“展览”,当单击时,会显示地图上的所有展览(我将复选框的值传递给JQuery函数,该函数会过滤XML)。我有6个复选框,都与不同的类别有关。我有这个部分都工作得很好,但我现在需要删除这些标记时,复选框是取消选中。我还需要它只删除与该类别关联的标记 代码如下:使用JQuery删除google地图标记,jquery,google-maps,mapping,Jquery,Google Maps,Mapping,我已经搜索了hi和low关于这个的信息,但是没有结果 基本上,我有一个页面,它加载了一组目录作为复选框,例如,复选框1被称为“展览”,当单击时,会显示地图上的所有展览(我将复选框的值传递给JQuery函数,该函数会过滤XML)。我有6个复选框,都与不同的类别有关。我有这个部分都工作得很好,但我现在需要删除这些标记时,复选框是取消选中。我还需要它只删除与该类别关联的标记 代码如下: MYMAP.placeMarkersTest = function(filename, CatValue) { $.
MYMAP.placeMarkersTest = function(filename, CatValue) {
$.get(filename, function(xml) {
$(xml).find("marker").each(function() {
var eventCat = $(this).find('Category').text();
if (eventCat == CatValue) {
var name = $(this).find('name').text();
var address = $(this).find('name').text();
var lat = $(this).find('lat').text();
var lng = $(this).find('lng').text();
var point = new google.maps.LatLng(parseFloat(lat), parseFloat(lng));
MYMAP.bounds.extend(point);
var icon = "/images/mapping/EventsIcon.png";
var marker = new google.maps.Marker({
position: point,
icon: icon,
map: MYMAP.map
});
var infoWindow = new google.maps.InfoWindow();
var html = '<strong>' + name + '</strong><br />';
google.maps.event.addListener(marker, 'click', function() {
infoWindow.setContent(html);
infoWindow.open(MYMAP.map, marker);
});
MYMAP.map.fitBounds(MYMAP.bounds);
} else {
//alert("There are no matches");
}
});
});
}
MYMAP.placeMarkersTest=函数(文件名,CatValue){
$.get(文件名、函数(xml){
$(xml).find(“marker”).each(函数(){
var eventCat=$(this.find('Category').text();
if(eventCat==CatValue){
var name=$(this.find('name').text();
var address=$(this.find('name').text();
var lat=$(this.find('lat').text();
var lng=$(this.find('lng').text();
var point=new google.maps.LatLng(parseFloat(lat),parseFloat(lng));
MYMAP.bounds.extend(点);
var icon=“/images/mapping/EventsIcon.png”;
var marker=new google.maps.marker({
位置:点,,
图标:图标,
地图:MYMAP.map
});
var infoWindow=new google.maps.infoWindow();
var html=''+name+'
';
google.maps.event.addListener(标记'click',函数(){
setContent(html);
打开(MYMAP.map,marker);
});
MYMAP.map.fitBounds(MYMAP.bounds);
}否则{
//警报(“没有匹配项”);
}
});
});
}
关于如何删除特定标记的任何想法都很好,谢谢。您是否尝试过将每个标记添加到全局数组中,以便将其存储在上下文中,并使用Map.removeOverlay(markerArray[indexvalue])将其删除?在创建标记时,您可以使用marker.Set将其所属的类别添加为属性('MyProperty','MyCategory')然后将标记添加到全局数组中。当您准备删除标记时,可以通过标记数组循环并调用marker.setMap(null)将其从映射中删除
var markers = new Array();
function setMarkers(map, locations, category) {
for(var i = 0; i < locations.length; i++) {
var area = locations[i];
var latlng = new google.maps.LatLng(area.Location[0], area.Location[1]);
var marker = new google.maps.Marker({
position: latlng,
map: map,
shadow: markerShadow,
icon: markerImage,
shape: markerShape,
title: area.Name
});
marker.set('category', category);
markers.push(marker);
}
}
function clearMarkers(category) {
for(var i = 0; i < markers.length; i++) {
if (markers[i].get('category') == category) {
markers[i].setMap(null);
}
}
}
var markers=new Array();
功能设置标记(地图、位置、类别){
对于(变量i=0;i
非常感谢,这看起来是一个理想的解决方案。我会试一试的!我只是想说我对代码有一点了解,并让它工作得很好,谢谢jacksonakj