R坐标数字保存到数据框

R coordinates digits save to dataframe

假设我们有一个点(由纬度和经度描述)(WGS84) 并且我们形成了一个 SpatialPointDataFrame (gData.init)。我想更改投影(变换),然后使用平面坐标使用简单的线点方法来估计距离和交点。我使用以下代码来执行转换。

library(rgeos)
library(sp)

longitude = 22.954638
latitude  = 40.617048
gData.init = data.frame(longitude,latitude) 
gData.init$id <- as.numeric(rownames(gData.init))
coordinates(gData.init) <- gData.init[c("longitude", "latitude")]
proj4string(gData.init) <- "+proj=longlat +datum=WGS84"
gDataIn2100 <- spTransform( gData.init, CRS("+init=epsg:2100") ) 

现在我想将坐标保存在任何数据类型对象中;当我使用以下代码执行此操作时

gDataIn2100@coords

我最多得到一位小数:

     longitude latitude
[1,]  411425.8  4496486

但是当我打印坐标时(我喜欢让我的坐标更精确)

print(coordinates(gDataIn2100), digits = 12)

那么得到的坐标就有些不同了:

         longitude      latitude
[1,] 411425.810118 4496486.37561

我认为这会导致在使用 gDistance 和使用 LinkPointMinDistance

估计距离的情况下对线和我的点之间的最小距离的不同估计

我做错了什么?

DataIn2100@coords 等同于 print(DataIn2100@coords, digits = getOption("digits"))

只有在呈现到屏幕上时才会丢弃小数点。它们存储为数字并具有浮点精度。

请注意,coordinates(DataIn2100) 是获取坐标的推荐方式。