我有一张地图,其中我使用KMbox叠加层应用自定义叠加层,以表示我认为用户的一般兴趣点在哪里。我想要的是向用户显示此地图,并允许他们点击地图,以便为我的POI提供准确的位置匹配。
除了当用户点击地图并更改地图的缩放时,一切正常。
这是我将代码添加到地图的代码。
function addMarker(location) {
if(KmOverlay)
{
KmOverlay.remove();
}
if(last_marker)
{
last_marker.setMap(null);
}
marker = new google.maps.Marker({
position: location,
map: map
});
// Keep track for future unsetting...
last_marker = marker;
}
为了显示地图我有这个功能。
function show_map(lt, ln, zoom, controls, marker)
{
var ltln = new google.maps.LatLng(lt, ln);
var vars = {
zoom: zoom,
center: ltln,
mapTypeId: google.maps.MapTypeId.ROADMAP,
navigationControl: controls,
navigationControlOptions: {style: google.maps.NavigationControlStyle.ZOOM_PAN} ,
mapTypeControl: false,
scaleControl: false,
scrollwheel: false
};
map = new google.maps.Map(document.getElementById("map_canvas"), vars);
KmOverlay = new KmBox(map, new google.maps.LatLng(lat, lon), KmOpts);
var totalBounds = new google.maps.LatLngBounds();
totalBounds.union(KmOverlay.getBounds());
google.maps.event.addListener(map, 'click', function(event) {
addMarker(event.latLng);
});
}
我在以下链接here
中有一个工作示例答案 0 :(得分:0)
通过在KmOverlay上使用setMap()方法并将null作为参数传递来解决此问题。
例如:
function addMarker(location) {
if(KmOverlay)
{
KmOverlay.setMap(null);
}