服务器端Google Markers集群Python/Djang

2024-05-19 13:33:31 发布

您现在位置:Python中文网/ 问答频道 /正文

在尝试了客户端方法来聚集大量的Google标记之后,我决定这对于我的项目(拥有28000多个用户的社交网络)是不可能的。在

有没有在服务器端聚集坐标的例子-最好用Python/Django?在

我希望这样做的方式是根据标记的接近度(半径)和缩放级别逐步索引标记。在

换言之,当一个新用户注册时,他/她会被自动分配给一组彼此接近的标记,从而增加“组的”计数器。发送到服务器的只是少量的“组”。只有当地图的缩放比例为1:1时,实际用户才会显示在地图上。在

这样,客户端将只需处理每个请求/缩放级别10-50个标记。在


Tags: 项目django方法用户标记网络客户端google
3条回答

您可能想看看wikipedia上的DBSCAN和{a2}页面,这些页面看起来非常适合在地图上对地点进行聚类。还有一个关于Cluster Analysis的页面,显示了您可以使用的所有可能的算法,使用您选择的语言来实现大多数算法都很简单。在

使用2K+点,您可能希望跳过Django,直接跳到C/C++中,当然不会期望这会响应Web请求实时计算。在

一种方法是使用基于缩放级别的单位大小定义栅格。所以你把一个格子里的所有项目都收集起来,用lat,lon精确到小数点后一位。例如42.2x73.4。所以42.2003x73.4021点落在网格单元中。该单元格的边界为42.2x73.3和42.2x73.5。在

如果格线单元中有一个或多个点,则在该格线的中心放置一个标记。在

然后连接zoomend事件并相应地更改网格大小,并重新绘制标记。在

http://code.google.com/apis/maps/documentation/reference.html#GMap2.zoomend

This是一种使用服务器端群集的付费服务,但我不确定它是如何工作的。我猜他们只是用你的数据来生成在每个缩放级别显示的标记。在

更新:This tutorial演示了一个基本的服务器端集群功能。它是用PHP为静态映射API编写的,但是您可以将它作为起点。在

相关问题 更多 >