Google地图API V3 fitBounds()不起作用

我想在谷歌地图上调用fitBounds() ,以便用户可以看到他们自己相对于选定标记/位置的位置。

这是我处理这个问题的函数:

var fitMapToShowResult = function(index){
    var hereLatLng = new google.maps.LatLng (lat,lng); //location of the user defined outside this func
    var firstResultLatLng = new google.maps.LatLng(
                                $scope.searchResults[index].geometry.location.k,
                                $scope.searchResults[0].geometry.location.B
    );
    var latlngList = new Array( hereLatLng, firstResultLatLng ); // latlng: an array of instances of GLatLng
    var latlngbounds = new google.maps.LatLngBounds();
    for (var i=0;i<latlngList.length;i++){
       latlngbounds.extend(latlngList[i]);
       console.log('latlngbounds',latlngbounds);
    }
    //$scope.map.setCenter(latlngbounds.getCenter());
    $scope.map.fitBounds(latlngbounds); 

};

它大约80%的时间完美运行。 但大约1/5的标记完全不在视野范围内,变焦太高而无法同时看到两个点。 我究竟做错了什么?

我的地图使用自定义标记可能是相关的。

为了协助调试,我添加了这个代码来绘制地图上的边界...

    rect = new google.maps.Rectangle( {bounds: latlngbounds, map: $scope.map} );

它总是看起来非常适合第一对夫妇的结果: 在这里输入图像描述

但往往这是不正确的: 在这里输入图像描述在这里输入图像描述 请注意,在每个不正确的情况下,看起来矩形的其中一个尺寸(高度/宽度)是正确的,但另一个不是。 我的直觉告诉我这是相关的。

综述类似的问题

我知道这是一个很受欢迎的问题,但我已经审查了其他所有问题,而我的问题似乎并不是它们中的任何一个的重复。 希望这个储备对未来的问题解决者有用,但是这些都不能解决我的问题。

谷歌地图V3 fitBounds不准确无用的问题,没有代码,没有答案

Google Maps API v3 - fitBounds只居中一个标记用户在没有意识到的情况下重新定义循环内部。

在Google Maps API V3和Google Maps API V3中使用fitBounds()后,使用setZoom()fitbounds()会缩小但不会放在&Google地图中,fitBounds不会放大fitBounds()异步发生,所以下游动作需要包装在eventListener中。

谷歌地图→fitBounds手动用户传递不正确的类型参数LatLngBounds (应该是两个google.maps.LatLng s)

谷歌地图fitBounds()被打破或..? &Google maps API V3方法fitBounds()构建带有.extend()坐标的google.maps.LatLngBounds (而不是将其保留为空并使用.extend()

试图让谷歌地图fitbounds工作超级noob没有意识到javascript方法是区分大小写的

谷歌地图V3自定义标记图像和fitBounds() fitBounds()按预期工作,但用户需要为bug自定义标记fitBounds()更多空间

适用于可见标记的Google Maps V3 fitBounds关于如何使用fitBounds() ... rtfm的简单问题

Google Maps API V3 - fitBounds随机播放,但偶尔会忽略海洋中的边界和负载在编写时没有答案。 听起来像无效的拉特/ lng对。


不要使用这些值作为geometry.location.**k** ,它取决于最小化的文件(使用MinifyJS之类的工具),那么当谷歌发布一个新版本时它会改变。


Upsidown先生是对的。 我的边界框是错误的,因为我直接引用....geometry.location.k而不是LatLng对象。 重构代码相应地纠正了这个问题。

链接地址: http://www.djcxy.com/p/81539.html

上一篇: Google maps API V3 fitBounds() not working

下一篇: Google Maps API fitBounds doesn't set zoom correctly