我正在构建一个 REST API,所以答案不能包括谷歌地图或 javascript 的东西。在我们的应用程序中,我们有一个包含帖子的表格,如下所示:
ID | latitude | longitude | other_sutff
1 | 50.4371243 | 5.9681102 | ...
2 | 50.3305477 | 6.9420498 | ...
3 | -33.4510148 | 149.5519662 | ...
Run Code Online (Sandbox Code Playgroud)
我们有一个带有地图的视图,其中显示了世界各地的所有帖子。希望我们会有很多帖子,在地图上显示成千上万的标记是荒谬的。所以我们想按距离对它们进行分组,这样我们就可以按大陆有 2-3 个标记。
要清楚,我们需要这个:
图片来自https://github.com/googlemaps/js-marker-clusterer
我做了一些研究,发现 k-means 似乎是解决方案的一部分。因为我的数学真的很差,所以我尝试了几个像这样的 php 库:https : //github.com/bdelespierre/php-kmeans,这似乎做得不错。但是,有一个缺点:每次加载地图时我都必须解析所有表。在性能方面,这很糟糕。
所以我想知道是否有人已经解决了这个问题,或者是否有更好的解决方案。