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)
是获取坐标的推荐方式。
假设我们有一个点(由纬度和经度描述)(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)
是获取坐标的推荐方式。