【发布时间】:2021-03-18 09:50:34
【问题描述】:
在 R 中,我正在尝试创建一个等值线图。我已经建立了一个企业数据库,有些是连锁店的一部分(例如麦当劳),有些是独立的。我想计算地图上每个点 30 公里范围内有多少商家,但将连锁店的不同位置视为一个商家。
例如,如果你的一个点是:
- 距离麦当劳 5 公里,
- 距塔可钟 10 公里
- 距离 Chick-Fil-A 15 公里
- 离肯德基20公里
- 距离麦当劳 25 公里
- 距离五个人 35 公里
颜色表示30公里内有4家快餐店。
我很乐意使用任何 R 包,但我最熟悉 tmaps 和 ggplot2 地图。
在这个阶段,我能想到的最好方法是为每个链创建多边形并将它们堆叠为相同颜色的透明层。我认为这不会非常有效,也不会创建一个非常漂亮的等值线。
我能找到的其他答案是计数点(例如 https://gis.stackexchange.com/questions/229066/counting-how-many-times-a-point-is-inside-a-set-of-intersecting-polygons-in-r)或 GIS 软件。
编辑: 我设法从每条链的每个位置创建了一个 30 公里的半径(使用 rgeos gIntersection)。我现在有一系列多边形。
为了解决我的问题,我需要做的额外事情是为 where 创建多边形:
- 只有一个多边形覆盖该区域,
- 两个多边形覆盖该区域,
- 等
为了尝试视觉化,我使用了https://gis.stackexchange.com/questions/229066/counting-how-many-times-a-point-is-inside-a-set-of-intersecting-polygons-in-r的答案
在链接的问题中,他们试图计算有多少多边形覆盖了编号点(右图)。我要做的是在左侧创建图像,其中有不重叠的多边形(1),两个重叠的多边形(2)等等。
【问题讨论】:
-
只是一个技术问题 - 您要在周围绘制多边形的点是否与商家的位置不同?
-
嗨贾斯汀,我基本上想要一张新西兰地图,根据每个点 30 公里内有多少快餐店进行着色。我认为实际上这意味着在每个链中围绕每个业务建立半径(我可以做到)。然后每次有不同的链重叠时改变颜色 - 这个我还没想通。我认为可能有更简洁的方法。
-
从评论中听起来您想创建一个网格并将每个单元格中的远食餐厅制成表格。光栅方法在这里会更合适。
-
嗨,Brian,你能告诉我在哪里可以找到有关如何使用 Raster 方法的教程或示例吗?
-
Robin Lovelace 在 R 中的地理计算是一个很好的参考 geocompr.robinlovelace.net/spatial-class.html#raster-data
标签: r ggplot2 choropleth tmap