我试图在谷歌地图上点击标记以及填充lat和lng的输入框。在放置新标记并更新lat和lng之前,我需要先清除所有现有标记。除了当我添加代码尝试清除所有标记时,所有东西都可以工作。谷歌地图在放置新标记之前清除所有标记
以下代码可以很好地工作,但在放置新标记之前不会清除旧标记。
谢谢。
工作的代码,但不清除现有的标记......
<div id="map"></div>
<script>
var map;
function initMap() {
var latlng = new google.maps.LatLng(-29, 25);
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 6,
center: latlng,
});
google.maps.event.addListener(map, 'click', function(event){
var marker_position = event.latLng;
marker = new google.maps.Marker({
map: map,
draggable: false
});
marker.setPosition(marker_position);
document.getElementById("latFld").value = event.latLng.lat();
document.getElementById("lngFld").value = event.latLng.lng();
})
}
</script>
不工作代码清除标记添加一个新的前...
<div id="map"></div>
<script>
var map;
var markersArray = [];
function initMap() {
var latlng = new google.maps.LatLng(-29, 25);
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 6,
center: latlng,
});
markersArray.push(marker);
google.maps.event.addListener(marker,"click",function(event){});
google.maps.event.addListener(map, 'click', function(event){
var marker_position = event.latLng;
marker = new google.maps.Marker({
map: map,
draggable: false
});
clearOverlays();
marker.setPosition(marker_position);
document.getElementById("latFld").value = event.latLng.lat();
document.getElementById("lngFld").value = event.latLng.lng();
})
}
function clearOverlays() {
for (var i = 0; i < markersArray.length; i++) {
markersArray[i].setMap(null);
}
}
谢谢。
看来,这可能是足以只是把'如果(标记)marker.setMap(空)''的标志之前=新的google.maps.Marker({'在你的代码的第一个版本中的行,即删除标记,如果它已经存在,然后继续创建新的标记... – ewcz
谢谢你ewcz。 – user1432290