我正在django和谷歌地图中创建一个mashup,我想知道是否有一种使用django / python在服务器端聚类标记的方法。
答案 0 :(得分:1)
我在我的房地产/租赁网站上实现了Django中的服务器端群集;我解释一下here。
答案 1 :(得分:0)
我想出了下面的代码,以确定一个标记是否足够接近另一个用于聚类 - 如果两个聚类图标开始重叠则关闭。适用于所有缩放级别的整个世界地图。
问题在于地图投影是非线性的,您不能只设置一些delta_lang
delta_lat
容差 - 两者都取决于线性。对于本地地图,这不是问题。
如果要在服务器端执行所有操作,则必须根据AJAX调用计算每个zoomlelvel的聚簇标记,或者一次打印所有这些标记。
function isCloseTo($other,$z){//$z is zoomlevel
$delta_lat = abs($this->lattitude - $other->lattitude);
$delta_lng = abs($this->longitude - $other->longitude);
$l = abs($this->lattitude);
$l2 = $l*$l;
$l3 = $l2*$l;
$l4 = $l3*$l;
$factor = 1
+0.0000312*$l
+0.0003604*$l2
-0.000009858*$l3
+0.0000001506*$l4;
$tol_lat = (45.42*exp(-0.6894339*$z)/3)/$factor;
$tol_lng = 21.845*exp(-0.67686*$z)/2;
if ($delta_lat < $tol_lat and $delta_lng < $tol_lng){
return true;
}
else{
return false;
}
}