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 删除Google地图覆盖时,this.remove不是一个函数_Javascript_Google Maps - Fatal编程技术网

Javascript 删除Google地图覆盖时,this.remove不是一个函数

Javascript 删除Google地图覆盖时,this.remove不是一个函数,javascript,google-maps,Javascript,Google Maps,我在谷歌地图上放置了一个覆盖图: function CustomerMarker(map) { this.Map = map; this.setMap(map); } GoogleMap = new google.maps.Map(document.getElementById("map"), { zoom: 16, canZoom: false, center: { lat: lat, lng: lng },

我在谷歌地图上放置了一个覆盖图:

function CustomerMarker(map) {
    this.Map = map;
    this.setMap(map);

}

    GoogleMap = new google.maps.Map(document.getElementById("map"), {
        zoom: 16,
        canZoom: false,
        center: { lat: lat, lng: lng },
        mapTypeControl: false,
        streetViewControl: false,
        scaleControl: false,
        clickableIcons: false
    });

    CustomMarker.prototype = new google.maps.OverlayView();
    CustomMarker.prototype.onAdd = function () {
        //Some code
    };
    CustomMarker.prototype.draw = function () {
        //Some code
    };

    CustomMarker = new CustomMarker(GoogleMap);
这很好,覆盖显示出来,但当我试图删除它时,问题出现了

CustomMarker.setMap(null)
我得到一个错误,标记仍然存在

Error: this.remove is not a function
pz@https://maps.googleapis.com/maps-api-v3/api/js/30/1/overlay.js:1:251
rk@https://maps.googleapis.com/maps-api-v3/api/js/30/1/overlay.js:2:476
_.pg.prototype.map_changed/<@https://maps.googleapis.com/maps/api
/js?key=AIzaSyBCiIPv6fgrRVn3veTJeP6ihfhrw8AXwbY:125:662
_.G@https://maps.googleapis.com/maps/api/js?key=AIzaSyBCiIPv6fgrRVn3veTJeP6ihfhrw8AXwbY:51:447
_.pg.prototype.map_changed@https://maps.googleapis.com/maps/api/js?key=AIzaSyBCiIPv6fgrRVn3veTJeP6ihfhrw8AXwbY:125:636
Db@https://maps.googleapis.com/maps/api/js?key=AIzaSyBCiIPv6fgrRVn3veTJeP6ihfhrw8AXwbY:37:103
_.k.set@https://maps.googleapis.com/maps/api/js?key=AIzaSyBCiIPv6fgrRVn3veTJeP6ihfhrw8AXwbY:101:728
_.jd/<@https://maps.googleapis.com/maps/api/js?key=AIzaSyBCiIPv6fgrRVn3veTJeP6ihfhrw8AXwbY:55:317
错误:this.remove不是一个函数
pz@https://maps.googleapis.com/maps-api-v3/api/js/30/1/overlay.js:1:251
rk@https://maps.googleapis.com/maps-api-v3/api/js/30/1/overlay.js:2:476
_.pg.prototype.map_已更改/状态:

必须实现三个方法:onAdd()、draw()和onRemove()


我没有看到onRemove的实现

也可以尝试CustomerMarker=null;在setMap之后。我没有意识到setMap(null)不会自动删除我添加到覆盖DOM中的div。这很有效,谢谢