动态删除谷歌地图中的特定标记
delete specific marker in google map dynamically
我曾经遇到过这个问题,我一直在忍受这个问题,但我没有得到答案。我有观点,每一点都有一个类别。我需要从过滤器中显示这些数据:当我们进入页面加载时——所有点,当我们通过过滤器选择类别时——地图上需要显示属于所选类别的点。我检查未选中的类别id是否等同于标记类别id。但标记不会删除。我做错了什么?这是我的代码:
function ajaxLoad(dataForm,urlAction,flag){
$.ajax({
data:dataForm,
type: 'POST',
url:urlAction,
success:function(data){
var data = JSON.parse(data);
var i;
var a;
// get all unchecked categories
var unchecked = ($("input:checkbox:not(:checked)"));
markers = [];
for (i = 0; i < data.length; i++) {
point = new google.maps.LatLng(data[i][1], data[i][2]);
marker = new google.maps.Marker({
position: point,
icon:data[i][4],
title:data[i][0],
//id category
id:data[i][5]
});
var content;
if(data[i][3]) {
google.maps.event.addListener(marker, 'click', (function (marker, i) {
return function () {
infowindow.setContent(data[i][3]);
infowindow.open(map, marker);
}
})(marker, i));
}
marker.setMap(map);
marker.setMap(null);
markers[i] = marker;
if(flag === true){
for (a = 0; a < unchecked.length; a++) {
var marker = markers[i];
//check if unchecked category id == markers category id
if(markers[i].id != unchecked[a].value){
marker.setMap(null);
}
}
}
}
map.setCenter(marker.getPosition());
},
error:function(data){console.log(data)}
});
}
$(document).ready(function(){
map = new google.maps.Map(document.getElementById('map'), {
zoom: 13,
center: new google.maps.LatLng(50.7498176,25.3192401),
mapTypeId: google.maps.MapTypeId.ROADMAP,
scrollwheel: false,
});
infowindow = new google.maps.InfoWindow();
//show all
ajaxLoad(1,"<?php echo Yii::app()->controller->createUrl('/advertise/default/getMap')?>",false);
($('input[type="checkbox"]').on('click',function(){
var data = $('#form-filter').serialize();
//filter category
ajaxLoad(data,"<?php echo Yii::app()->controller->createUrl('/advertise/default/filterMap')?>",true);
} ));
});
我解决了它!刚刚设置:
for(i=0; i<markers.length; i++){
markers[i].setMap(null);
}
在ajax查询并删除该部分之前:
if(flag === true){
for (a = 0; a < unchecked.length; a++) {
var marker = markers[i];
//check if unchecked category id == markers category id
if(markers[i].id != unchecked[a].value){
marker.setMap(null);
}
}
相关文章:
- 删除特定的谷歌地图标记
- 删除谷歌地图热图的光晕效果
- 删除谷歌地图地点服务中的标记
- 用于删除谷歌地图标记的反向动画
- 如何删除谷歌地图中的特定多边形添加事件监听器右键单击
- 动态删除谷歌地图中的特定标记
- 刷新/删除谷歌地图API上的标记
- 按标签删除谷歌地图标记
- 可以从元素中删除谷歌地图吗?
- 通过下拉选择删除谷歌地图标记
- 如何获得id时点击并删除?谷歌地图V3
- 删除谷歌地图自定义标记上的鼠标
- 我怎样才能完全删除谷歌地图弹出气球
- 加入搜索框&删除谷歌地图API Javascript中的标记
- 删除谷歌地图圆圈/形状
- 删除谷歌地图中绘制的多边形
- 无法删除谷歌地图中的事件侦听器
- 如何删除谷歌地图公司信息
- 删除谷歌地图的DataLayer顶点
- 不能删除谷歌地图标记