2010-05-19 91 views
0

我有一张地图,我在其中使用KMbox覆盖图应用自定义覆盖图,以表示我认为用户的一般兴趣点在哪里。我想要的是将这张地图显示给用户,并允许他们点击地图来给我一个他们POI的精确位置匹配。谷歌地图KM边界框在地图上重新应用本地缩放

除了当用户点击地图并更改地图缩放时,这一切都可以正常工作。

这里是我的代码添加到地图的标记。

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

通过使用关于KmOverlay的setMap()方法和传递null作为参数固定此工作示例。

如:

function addMarker(location) { 

    if(KmOverlay) 
    { 
     KmOverlay.setMap(null); 
    }