У меня есть карта, на которой я применяю пользовательское наложение с использованием наложения 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);
});
}
У меня есть рабочий пример по следующей ссылке здесь