R 地图在哪里

R 地图在哪里,r,maps,R,Maps,为什么地图没有。在哪里找到这个GPS坐标的正确县 > maps::map.where('county', y = 47.9078 , x = -122.2803) [1] NA 它适用于华盛顿的其他地方 > maps::map.where('county', y = 46.0900, x = -121.7600) [1] "washington,skamania" 如果您仔细观察,您将看到该点实际上正好位于所有多边形之外: > maps::map('county',xl

为什么地图没有。在哪里找到这个GPS坐标的正确县

> maps::map.where('county', y =  47.9078 , x = -122.2803)
[1] NA
它适用于华盛顿的其他地方

> maps::map.where('county',  y = 46.0900, x = -121.7600)
[1] "washington,skamania"

如果您仔细观察,您将看到该点实际上正好位于所有多边形之外:

> maps::map('county',xlim=c(-123,-122),ylim=c(47,48),fill=TRUE)
> points( y =  47.9078 , x = -122.2803,col=2)
因此,NA结果在这方面是正常的。这当然可能是错误的,因为县地图的分辨率有限。很明显,这一点非常接近或在海岸上,也许一张质量更好的地图会给出不同的结果。使用
rnaturalearth
可以绘制一个类似的图,清楚地显示不同之处:

library(rnaturalearth)
cc=ne_states(iso_a2="US")
maps::map(cc,xlim=c(-123,-122),ylim=c(47,48),fill=TRUE)
points( y =  47.9078 , x = -122.2803,col=2)
maps::map('county',xlim=c(-123,-122),ylim=c(47,48),add=TRUE,col=3)

这是一个很好的答案。我想知道,这个问题是否曾向软件包作者提出过?我可以想象很多情况下,由于这个问题,沿海坐标没有映射到一个国家。事实上,我是地图包的维护者(尽管不是原始作者)。是的,我知道。我增加了使用其他更高分辨率地图的可能性。但这并不能被认为是代码中的一个bug。当然,找到最近的多边形可能是一种选择,但决不应该是默认行为。请注意,同样的问题可能会出现在靠近内部边界的点上。在那里,如果地图分辨率不够,你可能会得到一个错误的国家。我已经为此添加了一个明确的警告。谢谢你,亚历克斯。实际上,
map.where
函数工作得非常好,我并没有暗示这个问题是一个bug。更高分辨率的贴图修复是一个很好的选择,只要知道这可能发生在边界,分析员就会知道这一点。再次感谢。