Google Maps API - 类GLatLngBounds的问题

javascript google-maps

4384 观看

3回复

9847 作者的声誉

我在使用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对象,该对象从当前地图边界扩展到显示所有HeadPoints。

继承人到目前为止我所拥有的......

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,NaN”
“52.69636,NaN”
“i = 0”
“19.64258,NaN”
“52.69636,-117.20701”
“i = 1”

我不知道为什么我要回NaN。当我使用边界来获得缩放级别时,我认为NaN值导致map.getBoundsZoomLevel(bounds)返回0,这是不正确的。我是否错误地使用了GLatLngBounds

作者: Bernie Perez 的来源 发布者: 2008 年 8 月 19 日

回应 (3)


1

23259 作者的声誉

决定

谷歌地图样本正在使用此代码...

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坐标之前将SouthWest / NorthEast边界放入变量。也许有一些“嵌套”评估会导致问题。尝试过粒度方法,看看你是否得到了所需的数据?

作者: Dillie-O 发布者: 19.08.2008 06:46

1

9847 作者的声誉

我通过我的谷歌搜索找到了这个例子并且确实玩了它。那不是问题。

我发现了我的错误。没有人能够解决问题。事实证明,在我测试我的界限之前,我已经将我的地图集中在坏数据上。我做了类似于lngSpan = northEast.lng() - southWest.lng();JavaScript的解释我的var作为字符串。所以(maxLng-minLng)/2 + minLng返回类似"20.456-116.1178"lng。我把我的地图集中var centerPoint = new GLatLng(setLat, setLng);在那之后,地图API变得有点奇怪;)

谢谢你的帮助。

作者: Bernie Perez 发布者: 19.08.2008 09:29

1

21 作者的声誉

谷歌地图样本正在使用此代码...

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坐标之前将SouthWest / NorthEast边界放入变量。也许有一些“嵌套”评估会导致问题。尝试过粒度方法,看看你是否得到了所需的数据?

你可以尝试这个!

作者: hardik virani 发布者: 17.11.2018 04:29
32x32