2017-06-12 5 views
0

Warum ist map.where nicht die richtige Grafschaft für diese GPS-Koordinate?map.where returning NA

> maps::map.where('county', y = 47.9078 , x = -122.2803) 
[1] NA 

Es funktioniert für andere Punkte in Washington.

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

Antwort

1

ich Ihnen im Detail betrachten, werden Sie den Punkt in der Tat sehen gerade außerhalb aller Polygone fällt:

> 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 So ist die NA Ergebnis ist in dieser Hinsicht normal. Es kann natürlich wegen der begrenzten Auflösung der Landkreiskarte falsch sein. Offensichtlich ist der Punkt sehr nah an oder an der Küste, und vielleicht kann eine Karte mit höherer Qualität ein anderes Ergebnis ergeben. Mit rnaturalearth können Sie einen ähnlichen Plot machen, die deutlich den Unterschied zeigt:

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