Pregunta

Estoy teniendo algunos problemas con el El API de Google Maps.Tengo un array que contiene un ojbect que he creado para la tienda de puntos.

Mi matriz y de la clase:

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

tPoint contiene una matriz de GLatLng puntos.Quiero escribir una función para devolver un GLatLngBounds objeto que se extiende de los actuales límites de mapa para mostrar todos los HeadPoints.

Heres lo que tengo hasta ahora..

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;
}

Que devuelve estos valores para la alerta.(Generalmente por encima de los US)

"19.64258,NaN"
"52.69636,NaN"
"yo=0"
"19.64258,NaN"
"52.69636,-117.20701"
"i=1"

No sé por qué me estoy haciendo NaN espalda.Cuando yo uso los límites para obtener un nivel de zoom creo que el valor NaN está causando el mapa.getBoundsZoomLevel(límites) para devolver 0 lo cual es incorrecto.Estoy utilizando GLatLngBounds incorrectamente?

¿Fue útil?

Solución

El google maps muestra es el uso de este código...

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

...el cual es poner el Suroeste/Noreste límites en una variable antes de intentar conseguir que la persona gnl/lat coordenadas.Tal vez hay algo que con el "anidada" evaluaciones causando problemas.Han probado el enfoque detallado para ver si los datos que usted necesita?

Otros consejos

Me encontré con que ejemplo a través de mis búsquedas de Google y también lo hizo jugar con él.Ese no era el problema.

Encontré mi error.Nadie habría sido capaz de resolver el problema.Resulta que justo antes de que me prueba mis límites me había centrado mi mapa con datos erróneos.Yo hice algo como el lngSpan = northEast.lng() - southWest.lng(); sin embargo JavaScript interpretado mi var como una cadena.Así (maxLng-minLng)/2 + minLng devuelve algo como "20.456-116.1178" como el lng.He centrado mi mapa en var centerPoint = new GLatLng(setLat, setLng); y después de que la API de google maps se hace un poco extraño ;)

Gracias por la ayuda, aunque.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top