我有点困在如何从谷歌地图上删除旧的标记
问题是,使用setMap函数,它删除了标记,但我希望它只删除旧的,而不是新的。
function dataMarkerMapForm(){
var latitud = parseFloat($("#latitud").val());
var longitud = parseFloat($("#longitud").val());
var coordinates = { lat : latitud, lng : longitud };
createMapModal(coordinates);
}
function createMapModal(coordinates){
var map = new google.maps.Map(document.getElementById('modalBodyMap'), {zoom: 16, center: coordinates});
var marker = new google.maps.Marker({position: coordinates, map: map});
const infowindow = new google.maps.InfoWindow();
const geocoder = new google.maps.Geocoder();
map.addListener("click", (mapsMouseEvent) => {
marker.setMap(null);
var coordinates = { lat :mapsMouseEvent.latLng.lat(), lng : mapsMouseEvent.latLng.lng() };
var markergeo = new google.maps.Marker({position: coordinates, map: map});
geocoder.geocode({ location: mapsMouseEvent.latLng }, (results, status) => {
if (status === "OK") {
if (results[0]) {
infowindow.setContent(results[0].formatted_address);
formDatos(results[0]);
// markergeo.setMap(null);
infowindow.open(map, markergeo);
} else {
window.alert("No results found");
}
} else {
window.alert("Geocoder failed due to: " + status);
}
});
});
$("#modalMap").modal("open")
// $("#modalBodyMap").css("position","fixed !important");
}
我有两种类型的标记一种是在开始地图时显示它另一种是用户点击地图上的某个位置
我想删除当用户点击地图的某一部分时,旧的地图被删除,新的地图被保留。
我希望你让我明白,我分享照片只是以防万一。
尝试使用地理标记,但它清除了所有标记,我想保留新的标记ejemplo1ejemplo2
您应该添加一个全局变量来表示标记的值。然后当你调用createMapModal函数时你应该检查这个全局变量是否有值并且没有定义,然后你应该像这样调用setMap(null)
if (marker) {
marker.setMap(null);
}
setMap在指定的地图或全景图上呈现标记。如果映射被设置为null,标记将被移除。
之后,你可以添加一个新的标记并将其赋值给全局变量就像这样
marker = new google.maps.Marker({
position,
map:map,
draggable: true,
clickable: true,
// icon: 'assets/images/favicon.png',
});
marker.setVisible(true);