gpt4 book ai didi

javascript - setMap 不起作用

转载 作者:行者123 更新时间:2023-12-03 06:22:45 26 4
gpt4 key购买 nike

感觉理解了很多,但又卡在了新项目上..
我正在尝试从使用 Google Map API 创建的 map 中删除标记。
我在信息窗口中有一个删除标记按钮。

enter image description here

下面是我的代码:

function DeleteMarker(index) {

console.log(JSON.stringify(markers[index]));
markers[index].setMap(null); // problem is here
// - setMap is not a function
markers[index] = null;
}


GMaps.on('click',
map.map,
function(event) {

markers.push(new Point(map.markers.length, event.latLng.lat(), event.latLng.lng()));

var index = map.markers.length;
var lat = event.latLng.lat();
var lng = event.latLng.lng();
map.addMarker({
lat: lat,
lng: lng,
title: 'marker' + index,
infoWindow: {
content: '<p>Details:'
+ '<p>Latitude:' + event.latLng.lat() + '</p>'
+ '<p>Longitude:' + event.latLng.lng() + '</p>'+
'<button id ="btnDeleteMarker" onclick=DeleteMarker(\'' + index + '\')>Delete this stop</button>'
}
});
console.log(JSON.stringify(markers));
map.markers[index].infoWindow.open(map.map, map.markers[index]);
});

出了什么问题?我应该知道什么才能正确使用它?

最佳答案

根据我在 Google Map API documentation 上读到的内容,您也必须从 markers array 中删除标记。

我会尝试的是:

  • 清除 map 上的所有标记
  • 删除该标记索引
  • 然后从数组中剩余的内容中重新绘制标记。

它看起来像这样:

function DeleteMarker(index) {

console.log( JSON.stringify(markers[index]) );

setMapOnAll(null); // Clear all markers from the map

var tempArray = markers; // Create a temporary array
unset( tempArray[index] ); // Unset the marker to remove
markers = array_values(tempArray); // refresh the markers array

setMapOnAll(map); // Show all markers on the map

}

我没有测试这个...我必须为它创建一个 map 。
但如果上面的代码失败我会的。
;)

关于javascript - setMap 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38793019/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com