我执行上的标记的服务器端的一些边界基于聚类的显示在我的谷歌地图。 我在做什么是我有一个被称为每次地图是移动或平移或缩放功能,这需要绑定的地图,并使得这反过来服务器端脚本运行一个简单的SQL查询来检索一个Ajax调用标记和集群他们。 到目前为止,德集群部分工作很好但是有时候的getBounds似乎并没有被发送正确的边界,我觉得。
就像我可以平移地图上曾经有过的标记,现在突然没有标记的侧面和地区位和地图是空白。 我检查了SQL查询,从查询本身就说明比预期悍然不同的边界。
看看下面的区域:
第一个显示所有标记。
一但以下刚搬到有点顶部和左侧,但一半的区域是一样的,在前面的画面却没有任何标志都没有。 我已经分离出的问题要与地图的getBounds功能。
这是我的JavaScript代码,得到边界和进行呼叫:
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
}
});
在我的服务器端代码,这是用来获取基于坐标的项目的PHP:
$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)';
我怀疑其在JavaScript中的getBounds功能,但需要尽快将其修复。 任何想法,请:(