Google maps 谷歌地图API-删除标记
我在这里和GoogleMapsAPI文档中查看了大量的代码块,但仍然无法找出如何隐藏标记 这是我正在使用的当前代码,它在一个实例中工作。一旦我在带有标记的函数中添加了“for”循环。setMap(null)Firefox将显示以下错误: 错误:TypeError:markers.setMap不是函数Google maps 谷歌地图API-删除标记,google-maps,google-maps-api-3,Google Maps,Google Maps Api 3,我在这里和GoogleMapsAPI文档中查看了大量的代码块,但仍然无法找出如何隐藏标记 这是我正在使用的当前代码,它在一个实例中工作。一旦我在带有标记的函数中添加了“for”循环。setMap(null)Firefox将显示以下错误: 错误:TypeError:markers.setMap不是函数 function removeMarkers(){ var markers; alert(markers); alert(locations.length); for
function removeMarkers(){
var markers;
alert(markers);
alert(locations.length);
for (i = 0; i<locations.length; i++){
markers = locations[i];
alert(markers.title);
markers.setMap(null);
}
}
函数removeMarkers(){
var标记;
警报(标记);
警报(位置、长度);
对于(i=0;i你可以试试这个
markers[markers.length-1].setMap(null);
希望它能起作用。您需要保留一个google.maps.Marker
对象数组来隐藏(或删除或运行其他操作)
在全球范围内:
var gmarkers = [];
然后,在创建标记时在该阵列上推送标记:
var marker = new google.maps.Marker({
position: new google.maps.LatLng(locations[i].latitude, locations[i].longitude),
title: locations[i].title,
icon: icon,
map:map
});
// Push your newly created marker into the array:
gmarkers.push(marker);
然后,要删除它们:
function removeMarkers(){
for(i=0; i<gmarkers.length; i++){
gmarkers[i].setMap(null);
}
}
根据谷歌文档,他们说这是最好的方法。
首先创建此函数以了解有多少个标记/
function setMapOnAll(map1) {
for (var i = 0; i < markers.length; i++) {
markers[i].setMap(map1);
}
}
然后创建最后一个函数,以便在调用该函数时删除所有标记
function delateMarkers(){
clearMarker()
markers = []
//console.log(markers) This is just if you want to
}
希望有助于好运如果有人正在使用React,并且具有不同的Marker组件,并且希望从地图中删除Marker,那么下面的代码可能会很有用
export default function useGoogleMapMarker(props) {
const [marker, setMarker] = useState();
useEffect(() => {
// ...code
const marker = new maps.Marker({ position, map, title, icon });
// ...code
setMarker(marker);
return () => marker.setMap(null); // to remove markers when unmounts
}, []);
return marker;
}
可能重复I did为了防止地图上的标记闪烁,请在使用.setMap(map)之前使用.getMap()检查现有地图。
export default function useGoogleMapMarker(props) {
const [marker, setMarker] = useState();
useEffect(() => {
// ...code
const marker = new maps.Marker({ position, map, title, icon });
// ...code
setMarker(marker);
return () => marker.setMap(null); // to remove markers when unmounts
}, []);
return marker;
}