google-maps - Google map v3 fitBounds() 对于单个标记缩放太近

标签 google-maps fitbounds

有没有办法为 fitBounds() 设置最大缩放级别?

我的问题是,本地图仅提供一个位置时,它会尽可能地放大,这确实使 map 脱离了上下文并使其变得毫无用处。也许我采取了错误的方法?

最佳答案

我喜欢 mrt 的解决方案(特别是当您不知道要映射或调整多少个点时),除了它会丢弃标记,使其不再位于 map 的中心。我只是将其扩展了一个额外的点,同时从纬度和经度中减去 0.01,因此它使标记保持在中心。效果很好,谢谢 mrt!

// Pan & Zoom map to show all markers
function fitToMarkers(markers) {

    var bounds = new google.maps.LatLngBounds();

    // Create bounds from markers
    for( var index in markers ) {
        var latlng = markers[index].getPosition();
        bounds.extend(latlng);
    }

    // Don't zoom in too far on only one marker
    if (bounds.getNorthEast().equals(bounds.getSouthWest())) {
       var extendPoint1 = new google.maps.LatLng(bounds.getNorthEast().lat() + 0.01, bounds.getNorthEast().lng() + 0.01);
       var extendPoint2 = new google.maps.LatLng(bounds.getNorthEast().lat() - 0.01, bounds.getNorthEast().lng() - 0.01);
       bounds.extend(extendPoint1);
       bounds.extend(extendPoint2);
    }

    map.fitBounds(bounds);

    // Adjusting zoom here doesn't work :/

}

关于google-maps - Google map v3 fitBounds() 对于单个标记缩放太近,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3334729/

相关文章:

google-maps - 如何在 angular-google-maps 指令中组合 RichMarker

javascript - 谷歌地图 fitBounds 无法正常工作

leaflet - 缩放以适合 leaflet.js 标记

ios6 - GMSCoordinateBounds 包括坐标在 Google Maps SDK for iOS 中无法正常工作

google-maps-api-3 - 谷歌地图边界

javascript - 使用纬度、经度获取距离我的位置最近的五个地理位置名称

javascript - 在 Angular 分量中向谷歌地图添加标记

android - 如何在谷歌地图中获取当前位置

javascript - 如何在谷歌地图上平移?

javascript - 谷歌地图 API v3 : Can I setZoom after fitBounds?