Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 动态删除谷歌地图中的特定标记_Javascript_Google Maps - Fatal编程技术网

Javascript 动态删除谷歌地图中的特定标记

Javascript 动态删除谷歌地图中的特定标记,javascript,google-maps,Javascript,Google Maps,我曾经面对过这个问题,我也经历过这个问题,但我没有得到答案。我有观点,每个观点都有一个类别。 我需要显示来自过滤器的数据:当我们在页面加载时-所有点,当我们通过过滤器选择一个类别时-在地图上需要显示属于所选类别的点。我检查未选中的类别id是否等于标记类别id。但标记不能删除。我做错了什么? 这是我的密码: function ajaxLoad(dataForm,urlAction,flag){ $.ajax({ data:dataForm, type

我曾经面对过这个问题,我也经历过这个问题,但我没有得到答案。我有观点,每个观点都有一个类别。 我需要显示来自过滤器的数据:当我们在页面加载时-所有点,当我们通过过滤器选择一个类别时-在地图上需要显示属于所选类别的点。我检查未选中的类别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);

   } ));
    });
函数ajaxLoad(数据格式、urlAction、标志){
$.ajax({
数据:数据表,
键入:“POST”,
url:urlAction,
成功:功能(数据){
var data=JSON.parse(数据);
var i;
var a;
//获取所有未选中的类别
var unchecked=($(“输入:复选框:未(:选中)”);
标记=[];
对于(i=0;i
我解决了! 刚刚设定:

   for(i=0; i<markers.length; i++){
        markers[i].setMap(null);
    }
(i=0;i)的

            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);
                    }

                }