Google Maps API - проблемы с классом GLatLngBounds

голоса
2

У меня возникли некоторые проблемы с помощью 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
= 0
19,64258, NaN
52,69636, -117,20701
= 1

Я не знаю , почему я получаю NaN обратно. Когда я использую границы , чтобы получить уровень масштабирования Я думаю , что значение NaN является причиной map.getBoundsZoomLevel (границы) возвращает 0 , который является неправильным. Могу ли я с помощью GLatLngBounds неправильно?

Задан 19/08/2008 в 19:04
источник пользователем
На других языках...                            


2 ответов

голоса
1

Я нашел этот пример через мой Google ищет тоже и не играть с ним. Это не проблема.

Я нашел ошибку. Никто не смог бы решить эту проблему. Оказывается, что прямо перед тем, как проверить свои границы я сосредоточился моя карта с плохими данными. Я сделал что - то вроде lngSpan = northEast.lng() - southWest.lng();однако JavaScript интерпретировать мой вар как строку. Так что (maxLng-minLng)/2 + minLngвозвращает что - то вроде "20.456-116.1178"как lng. Я центрируюсь своей картой на var centerPoint = new GLatLng(setLat, setLng);и после того, что карты API становится немного странно;)

Спасибо за помощь, хотя.

Ответил 19/08/2008 в 22:29
источник пользователем

голоса
1

Образец Google Maps использует этот код ...

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

... который ставит границы SouthWest / северо-восток в переменную, прежде чем пытаться получить индивидуальный LNG / лат координаты. Может быть, есть что-то с «вложенными» оценок, вызывающих проблемы. Пытались гранулированный подход, чтобы увидеть, если вы получаете необходимые вам данные?

Ответил 19/08/2008 в 19:46
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more