用于在地图上识别和传播重叠点的SQL

时间:2016-09-04 10:09:07

标签: leaflet cartodb

我正在一张地图上与所有诺贝尔奖获得者的出生地一起工作。因为我只在城市一级有出生地,所以我试图找到一种传播方式,有很多重叠点。

http://s3.mapfact.com/society/all-nobel-prize-laureates/nobel.html

我的数据在Carto中。我想做一些SQL来: 1.在the_geom列中标识具有相同lat / lng的行 2.在每场比赛中 - 在值上添加几个点,使得标记不是100%重叠。

我找到了这个并且我喜欢结果,但它对我来说太先进http://bl.ocks.org/andrewxhill/raw/8695515/#

有什么想法可以更简单的方法吗?例如涉及Carto db-interface中的几个步骤的东西?

2 个答案:

答案 0 :(得分:1)

虽然这可能不是您问题的正确答案,但它可能是您问题的解决方案。对于我遇到的类似情况,我使用了leaflet markercluster plugin。如果你在同一个[lat,lng]上有多个标记,当你点击它时它会移动所有它们并且你不会得到重叠。见下图:

使用群集: enter image description here

用户点击群集后: enter image description here

答案 1 :(得分:0)

您可以尝试this blog post中解释的技巧。你会在这里看到一个有效的例子:

https://team.carto.com/u/jsanz/builder/4ddc4fd8-fcb5-11e5-914a-0ef7f98ade21/embed

这里定义图层的SQL:

https://gist.github.com/jsanz/13e635b55a0bbee5a4acb27b4a3e7c48

不要被SQL吓到,你只需要将你的字段名称放在最后,当然还有表名(我的例子中为team),你就可以拥有它。然后,您可以根据需要添加类别符号,infowindows或工具提示。

唯一的限制是,这只适用于几个缩放,但您可以在地图上禁用它,因为通常这些地图只在低缩放级别有意义。