我是 R 中的 GIS 新手,我正在尝试将 lat/long 或 UTM 坐标添加到 shapefile。我从这里下载了芝加哥市的边界 (City_Boundaries.shp):http ://www.cityofchicago.org/city/en/depts/doit/supp_info/gis_data.html
我加载了 maptools 和 rgeos 库:
library(maptools)
library(rgeos)
library(rgdal)
我将数据带入 R 并尝试为 16T 区添加 UTM 代码:
city<- readShapeSpatial("C:/Users/Luke.Gerdes/Documents/GIS Files/Chicago/City_Boundary.shp")
proj4string(city) <- CRS("+proj=utm +north +zone=16T + datum=WGS84")
但是,结果数据对我来说没有意义。当我查看“city”中的“coords”槽时,坐标值是,例如,X=1092925 和 Y=1944820。我使用了一个外部工具(http://home.hiwaay.net/~taylorc/toolbox/geography/geoutm.html)来查找 GPS 坐标。结果是:lat=17.511,long=-81.42。这是牙买加和洪都拉斯海岸之间的某个地方。在我看来,shapefile 坐标存在于它们自己的宇宙中;正如 shapefile 的名称所暗示的那样,坐标提供了对城市形状的准确描述,但这些坐标不会自动映射到地球上。
我的最终目标是确定是否在芝加哥发生了一些地理标记事件。我很乐意将按纬度/经度列出的这些点转换为 UTM,如下所示:
SP <- SpatialPoints(cbind(-87.63044, 41.79625), proj4string=CRS("+proj=longlat +datum=WGS84"))
SP <- spTransform(SP, CRS("+proj=utm +north +zone=16T +datum=WGS84"))
如果这更有意义,我也愿意尝试以原始格式处理事件数据。最终,我需要帮助将芝加哥城市边界变成一个多边形,我可以对照我的事件数据进行检查。像这样的东西:
gContains(city, SP)
如何将我的 shapefile 和事件数据放入一个通用(且准确)的参考框架中,以便我可以检查点是否在城市中?您可以提供的任何帮助将不胜感激。