【问题标题】:.R identifying dots outside a circle (maps / gps).R 识别圆圈外的点(地图/全球定位系统)
【发布时间】:2018-10-15 01:32:34
【问题描述】:

我是这个平台的新手,我的问题:

我有一个包含 500 个点的阿姆斯特丹数据集(gps 坐标 - 经度、纬度)。

我想找出阿姆斯特丹市中心以外的点。 阿姆斯特丹中心的gps坐标是纬度:52.37 经度:4.88。 我想要3公里的半径。

Target picture

【问题讨论】:

  • see here 发布包含代码和数据的问题,这里的人们可以用来帮助您

标签: r plot maps radius identify


【解决方案1】:

有很多方法可以做到,这里有一个。

amst <- matrix(c(52.37, 4.88), ncol=2)
points <- data.frame(longitude=..., latitude=..., anything=..., else=..., here=...)
some_limit <- 3000 # defaults to meters
inside <- geosphere::distHaversine(amst, points[c("longitude","latitude")]) < some_limit
points[inside,,drop=FALSE] # all points inside

但最终,当您提供示例数据时,这个不完整的答案会更好。通过显示您尝试过的任何代码,您可以最好地了解您以前的努力以及某些上下文;有时缺少代码会提示“请免费为我编写代码”,尽管当您不知道时,这通常会草率下结论。

这是完整的 MWE,使用阿姆斯特丹周围 30 公里的半径。

library(maps)
library(mapdata)
library(ggplot2)
library(geosphere)

neth <- map_data('worldHires', 'Netherlands')
amst <- data.frame(long=4.88, lat=52.37)

n <- 500
set.seed(2)
points <- data.frame(
  long = amst$long + runif(n, min=-1, max=+1),
  lat = amst$lat + runif(n, min=-1, max=+1)
)
some_limit <- 30000 # meters
points$inside <- distHaversine(amst, points) < some_limit

ggplot() +
  geom_polygon(data=neth, aes(x=long, y=lat, group=group)) +
  coord_fixed(1.3) +
  geom_point(data=amst, aes(x=long, y=lat), color='green', size=5) +
  geom_point(data=points, aes(x=long, y=lat, color=inside))

【讨论】:

  • Cashmaker777,这能回答你的问题吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多