代码之家  ›  专栏  ›  技术社区  ›  Bernie Perez

谷歌地图API-类glatlngbounds的问题

  •  2
  • Bernie Perez  · 技术社区  · 16 年前

    我有点麻烦 Google Maps API . 我有一个数组,它保存我创建的OjBect来存储点。

    我的数组和类:

    var tPoints = [];    
    function tPoint(name) {
            var id = name;
            var points = [];
            var pointsCount = 0;
            ...
            this.getHeadPoint = function() { return points[pointsCount-1]; }
        }
    

    tpoint拥有一个数组 GLatLng 点。我想写一个函数来返回 GLatLngBounds 对象,该对象从当前地图边界扩展以显示所有标题点。

    这是我到目前为止所拥有的……

    function getBounds() {
        var mBound = map.getBounds();
        for (var i = 0; i < tPoints.length; i++) {
            alert(mBound.getSouthWest().lat() + "," + mBound.getSouthWest().lng());
            alert(mBound.getNorthEast().lat() + "," + mBound.getNorthEast().lng());
                currPoint = trackMarkers[i].getHeadPoint();        
                if (!mBound.containsLatLng(currPoint)) {
                    mBound.extend(currPoint);
                }
            }
        return mBound;
    }
    

    返回警报的这些值。(一般在美国)

    “19.64258,楠”
    “52.69636,楠”
    “i=0”
    “19.64258,楠”
    “52.69636,-117.20701”
    “i=1”

    我不知道我为什么要让楠回来。 当我使用边界获取缩放级别时,我认为NaN值导致map.getBoundsZoomLevel(边界)返回0,这是不正确的。我在用吗? 格兰特边界 不正确?

    2 回复  |  直到 6 年前
        1
  •  1
  •   Dillie-O    16 年前

    谷歌地图示例正在使用此代码…

    var bounds = map.getBounds();
    var southWest = bounds.getSouthWest();
    var northEast = bounds.getNorthEast();
    var lngSpan = northEast.lng() - southWest.lng();
    var latSpan = northEast.lat() - southWest.lat();
    

    …这将西南/东北边界变为一个变量,然后再尝试获得单独的LNG/LAT坐标。可能是“嵌套”的评估导致了一些问题。是否尝试过使用粒度方法来查看您是否获得了所需的数据?

        2
  •  1
  •   Pure.Krome    14 年前

    我也通过我的谷歌搜索找到了这个例子,并用它来玩。这不是问题所在。

    我发现了我的虫子。没人能解决这个问题。事实证明,在我测试边界之前,我已经用坏数据将地图居中。我做了类似的事 lngSpan = northEast.lng() - southWest.lng(); 然而,javascript将我的var解释为一个字符串。所以 (maxLng-minLng)/2 + minLng 返回类似 "20.456-116.1178" 作为 lng . 我把地图放在中间 var centerPoint = new GLatLng(setLat, setLng); 之后,地图API变得有点奇怪;)

    不过,谢谢你的帮助。