【问题标题】:Google maps KM bounds box reapplying itself on map zoom谷歌地图 KM 边界框在地图缩放中重新应用
【发布时间】:2011-02-21 06:53:51
【问题描述】:

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

【问题讨论】:

    标签: google-maps overlay bounding-box


    【解决方案1】:

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

    例如:

    function addMarker(location) {
    
        if(KmOverlay)
        {
            KmOverlay.setMap(null);
        }
    

    【讨论】:

      猜你喜欢
      • 2013-02-27
      • 2011-05-15
      • 1970-01-01
      • 1970-01-01
      • 2018-09-08
      • 1970-01-01
      • 2010-11-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多