我想创建一个Web应用程序,其中用户输入一组标识符,并在地图上显示与这些标识符相关的一组点。
麻烦的是,这些数据的数量可能达到数十至数十万甚至可能达到数百万。鉴于这种可能性,我想采取轻松的措施。以下是我理想的聚合行为。
在低缩放级别,我想将这些点聚合成按状态计数(适当的符号体系大小/颜色表示更高的强度,点以状态质心为中心)。在略高的缩放级别,这些将通过较小的多边形分成计数。在更高的变焦,更小的多边形。如果没有聚合,地图上的点数将小于~500,那么只需绘制点。
这些多边形已经确定,每个点在其数据中都包含它所在的每个多边形的多边形ID。
由于点是在各个多边形内随机绘制的,因此多边形内点的实际分布无关紧要。或者更确切地说,任何忽略绘制点的多边形的聚合都将消除信息。出于这个原因,我不能使用markercluster(至少不能使用我看到的选项。如果有一种简单的方法可以按照我正在寻找的方式进行聚合,请告诉我)
由于各种原因(我不是javascript程序员,我是R程序员)我在R内的传单包的范围内工作。有没有办法可以根据缩放更改聚合级别以这种方式?
我已经整理了一个玩具数据集,其中包含一个相对较小的子集(1个实体,3个状态,~10k观测值)以及这些状态的人口普查区和县的质心。
http://s000.tinyupload.com/index.php?file_id=00048836337627834343
答案 0 :(得分:1)
这不是一个答案,但它几乎不适合评论。
您希望显示每个预定义地理区域的汇总数据(点/标记的数量?),这些区域以较低的缩放级别合并(让我们说它可能是每个城市,然后是县,州等) )。
即使在JavaScript中,我也不知道这个用例的任何开箱即用的解决方案。有一些可能的解决方法,但我不确定它们是否可以在R中轻松完成。
通常的解决方法是摆脱任何自动聚类,并使用适当的数据聚合算法在每个缩放级别生成自己的标记(由于您可以依赖父多边形ID,因此不是很难)。然后只需在缩放更改时添加/删除标记。
不幸的是,这意味着您无法从MarkerCluster获得动画和覆盖范围。
您可能也对GitHub上Leaflet.markercluster问题页面中的这个帖子[Question] Build clusters depending on some geographical entity #521感兴趣。用例在某种程度上是相似的,你可以看到一些实现的例子,但不幸的是它没有在任何通用和可靠的解决方案中输出。