从坐标数据转换为R中的经度和纬度?
问题描述:
我一直在使用以下代码来读取人口普查道数据并为每个人口普查道产生质心数据。我想通过需要经度和纬度的Foursqaure API来抽取一些样本的纬度和经度。我注意到这段代码让我回到了与经度不同的坐标系。任何想法如何我可以提取纬度经度是否转换坐标或通过不同的功能?从坐标数据转换为R中的经度和纬度?
#load libraries-----------------------------
library(rgdal)
library(sp)
library(GISTools)
library(ggplot2)
#load census tact file------------------------
tracts = readOGR("nycb2010.shp", layer="nycb2010")
#extract centroids
centroids = as.data.frame(getSpPPolygonsLabptSlots(tracts))
#map new data
ggplot() + geom_polygon(data=tracts, aes(x=long, y=lat, group=group), fill="black", colour="grey90", alpha = 1)+
geom_point(data=centroids, aes(x=V1, y=V2, group = 1, color = 'red'), size = .1)
答
您可以使用函数spTransform
改变你的空间数据的坐标系统,就像这样:
library(sp)
library(rgdal)
lat_long = CRS("+init=epsg:4326")
tracts_lat_long <- spTransform(tracts, lat_long)
proj4string(tracts_lat_long)
[1] "+init=epsg:3035 +proj=laea +lat_0=52 +lon_0=10 +x_0=00 +y_0=3210000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"
没关系我知道我没怎么傻使用新的变量。谢谢! – LoF10