map.where返回NA

时间:2017-06-12 14:14:24

标签: r maps

为什么map.where找不到这个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"

1 个答案:

答案 0 :(得分:2)

我仔细看,你会发现这一点实际上落在了所有多边形之外:

> maps::map('county',xlim=c(-123,-122),ylim=c(47,48),fill=TRUE)
> points( y =  47.9078 , x = -122.2803,col=2)

enter image description here 因此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)

enter image description here