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_Google Maps Api 3 - Fatal编程技术网

Javascript 点击谷歌地图上的一个标记关闭它

Javascript 点击谷歌地图上的一个标记关闭它,javascript,google-maps,google-maps-api-3,Javascript,Google Maps,Google Maps Api 3,我通过点击地图在谷歌地图上添加标记。现在,我想通过点击谷歌地图上的一个标记来删除它,但是没有机会尝试它 var myMean = new google.maps.LatLng(22.321074,87.307710); var map = new google.maps.Map(document.getElementById('map'), { zoom: 15, center: myMean, mapTypeId: google.maps.MapTypeId.ROADMAP })

我通过点击地图在谷歌地图上添加标记。现在,我想通过点击谷歌地图上的一个标记来删除它,但是没有机会尝试它

var myMean = new google.maps.LatLng(22.321074,87.307710);

var map = new google.maps.Map(document.getElementById('map'), {
  zoom: 15,
  center: myMean,
  mapTypeId: google.maps.MapTypeId.ROADMAP
});

var icon = new    google.maps.MarkerImage("http://maps.google.com/mapfiles/ms/micons/blue.png", new google.maps.Size(32, 32), new google.maps.Point(0, 0), new google.maps.Point(16, 32));


var points=[];
var markers=[];


function setAllMap(map) 
{
    for (var i = 0; i < markers.length; i++) 
    {
        markers[i].setMap(map);
    }
}



function addMarker(point)
{
    var marker=new google.maps.Marker(
    {
        position: point,
        icon: icon,
        map: map 
    });
    markers.push(marker);

    google.maps.event.addListener(marker, "click", function()
    {
        var i;
        for(i=0;i<points.length;i++)
        {
            if(points[i].equals(point))
            {
                points.splice(i,1);
                markers.splice(i,1);
            }
        }
        setAllMap(null);
        setAllMap(map);
        alert(points);
    });
}

google.maps.event.addListener(map, 'click', function(event) {
    points.push(event.latLng);
    alert(points[points.length-1]);
    addMarker(points[points.length-1]);
});
var myMean=new google.maps.LatLng(22.321074,87.307710);
var map=new google.maps.map(document.getElementById('map'){
缩放:15,
中心:我的意思是,
mapTypeId:google.maps.mapTypeId.ROADMAP
});
var icon=new google.maps.MarkerImage(“http://maps.google.com/mapfiles/ms/micons/blue.png,新的google.maps.Size(32,32),新的google.maps.Point(0,0),新的google.maps.Point(16,32));
var点=[];
var标记=[];
函数setAllMap(映射)
{
对于(var i=0;i对于(i=0;i您在错误的位置将所有标记的映射设置为
null
。在删除当前已单击的标记之前,应先设置映射中的所有标记

因此,如果您像这样更改
addMarker
逻辑,它应该可以工作:

函数setAllMap(映射){ 对于(var i=0;i
函数addMarker(点){
var marker=new google.maps.marker({
位置:点,,
地图:地图
});
标记器。推(标记器);
google.maps.event.addListener(标记“单击”,函数(){
setAllMap(空);
var i;
对于(i=0;i

工作示例

谢谢您的回答。
function addMarker(point) {
    var marker = new google.maps.Marker({
        position: point,
        map: map
    });
    markers.push(marker);
    google.maps.event.addListener(marker, "click", function () {
        setAllMap(null);
        var i;
        for (i = 0; i < points.length; i++) {
            if (points[i].equals(marker.getPosition())) {
                points.splice(i, 1);
                markers.splice(i, 1);
            }
        }

        setAllMap(map);
        //alert(points);
    });
}