2016-12-06 50 views
-2

我有一个分类网站。我需要允许用户在谷歌地图上标记他们的位置。我刚刚发现这个并且很好地工作。允许用户在谷歌地图上添加位置

function initMap() { 
    var map = new google.maps.Map(document.getElementById('map'), { 
    zoom: 4, 
    center: {lat: -25.363882, lng: 131.044922 } 
    }); 

    map.addListener('click', function(e) { 
    placeMarkerAndPanTo(e.latLng, map); 
    }); 
} 

function placeMarkerAndPanTo(latLng, map) { 
    var marker = new google.maps.Marker({ 
    position: latLng, 
    map: map 
    }); 
    map.panTo(latLng); 
} 

Fiddle

问题是这样允许添加任意数量的标记。但我只需要一个标记。任何解决方案

+2

当然,添加其他标记时,请删除其他标记。简单。 –

+0

调用事件只有一次看[这里](https://stackoverflow.com/questions/3393686/only-fire-an-event-once),但我认为凯文从用户体验的角度来看是正确的,你应该覆盖它老标记 –

回答

0
This is an exemple of function : 

function placeMarker(location) { 
    if (marker) { 
     //if marker already was created change positon 
     marker.setPosition(location); 
    } else { 
     //create a marker 
     marker = new google.maps.Marker({   
      position: location, 
      map: map, 
      draggable: true 
     }); 
    } 
} 

call : 

    google.maps.event.addListener(map, 'click', function (evt) { 
     placeMarker(evt.latLng); 
    });