Google Maps: panorámica y zoom en áreas: los marcadores no aparecen cuando me acerco o me desplazo: ¡AYUDA!

Estoy implementando algunos clústeres basados ​​en límites en el extremo del servidor de marcadores para mostrar en mis mapas de Google. Lo que estoy haciendo es que tengo una función que se llama cada vez que el mapa se mueve, se desplaza o se amplía, lo que toma el límite del mapa y hace una llamada ajax que, a su vez, el script del lado del servidor ejecuta una consulta SQL simple para recuperar el Marcadores y agrupamientos. Hasta ahora, la parte del agrupamiento está funcionando bien, sin embargo, a veces, los getBounds no parecen estar enviando los límites correctos que siento.

Al igual que puedo desplazar un mapa un poco en el lado y las regiones que solían tener marcadores ahora, de repente, no tienen marcadores y el mapa está en blanco. Revisé la consulta de SQL y desde la misma consulta muestra unos límites escandalosamente diferentes de lo que se esperaría.

Echa un vistazo a las regiones a continuación:Marcadores originales de peso http://i31.tinypic.com/xds4t0.jpg No hay marcadores http://i31.tinypic.com/2r22ez4.jpg

El primero muestra todos los marcadores.

El siguiente, sin embargo, se ha movido un poco hacia la parte superior e izquierda, pero la mitad de la región es la misma que en la imagen anterior, sin embargo, no hay marcadores en absoluto. He aislado el problema para estar con la función getBounds de los mapas.

Este es mi código javascript que obtiene los límites y hace la llamada:

var bounds = map.getBounds();
var southWest = bounds.getSouthWest();

var northEast = bounds.getNorthEast();
var data = {ne:northEast.toUrlValue(), sw:southWest.toUrlValue(), zoom:map.getZoom()};
//something getting messed up in the code above this point

$.ajax({
    type: "POST",
    url: 'maps/get-markers',
    data: {object:$.toJSON(data)},
    dataType: 'json',

    success: function(response) {
        //code to add markers
    }
});

En el código del lado de mi servidor, este es el php utilizado para obtener los elementos en función de las coordenadas:

$data =  Zend_Json::decode(stripslashes($this->_request->getParam('object')));

//retrieve the variables from the GET vars
list($nelat, $nelng) = explode(',', $data['ne']);
list($swlat, $swlng) = explode(',',$data['sw']);

//clean the data
$nelng  =   (float)$nelng;
$swlng  =   (float)$swlng;
$nelat  =   (float)$nelat;
$swlat  =   (float)$swlat;

$ubound = $swlng > $nelng ? $swlng : $nelng;
$lbound = $swlng > $nelng ? $nelng : $swlng;

$sql = 'SELECT `a`.* FROM `locations` AS `a` WHERE (a.`longitude` > $lbound) AND (a.`longitude` < $ubound) AND';

$ubound = $swlat > $nelat ? $swlat : $nelat;
$lbound = $swlat > $nelat ? $nelat : $swlat;


$sql .= ' (a.`latitude` >= $lbound) AND (a.`latitude` <= $ubound)';

Sospecho que es la función getbounds en el javascript pero necesito arreglarlo lo antes posible. Cualquier idea por favor :(

Respuestas a la pregunta(2)

Su respuesta a la pregunta