谷歌地图KM边界框重新应用于地图缩放

时间:2010-05-19 09:00:09

标签: google-maps overlay bounding-box

我有一张地图,其中我使用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

中有一个工作示例

1 个答案:

答案 0 :(得分:0)

通过在KmOverlay上使用setMap()方法并将null作为参数传递来解决此问题。

例如:

function addMarker(location) {

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