Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 通过向起始坐标添加距离来计算新的横向/纵向坐标?_R_Gis_R Leaflet - Fatal编程技术网

R 通过向起始坐标添加距离来计算新的横向/纵向坐标?

R 通过向起始坐标添加距离来计算新的横向/纵向坐标?,r,gis,r-leaflet,R,Gis,R Leaflet,我有一个以100米为单位的ascii高程数据网格。我有一个lat/long作为起点,我需要将这100米的增量相加,得到新的lat/long坐标,以绘制一个彩色框 我用R和传单在一系列标记下用高程数据绘制地图。我想要一个漂亮的彩色编码层在传单地图上显示海拔高度 coords <- function(cells_east, cells_north) { cells_east =1000 cells_north=1000 start_lat <- 48.922582 start_lng &

我有一个以100米为单位的ascii高程数据网格。我有一个lat/long作为起点,我需要将这100米的增量相加,得到新的lat/long坐标,以绘制一个彩色框

我用R和传单在一系列标记下用高程数据绘制地图。我想要一个漂亮的彩色编码层在传单地图上显示海拔高度

coords <- function(cells_east, cells_north) {
cells_east =1000
cells_north=1000
start_lat <- 48.922582
start_lng <- -101.497821
kmeast<-cells_east/10 #each cell 100 m
kmnorth<-cells_north/10 
#Latitude: 1 deg = 110.574 km
#Longitude: 1 deg = 111.320*cos(latitude) km
lat_east <- kmeast /110.574
lng_north <- kmnorth / (111.32 * cos(start_lat))
elevation <- dem$data[cells_east,cells_north] #elevation from ascii grid
ret <- c(lat_east+start_lat,lng_north+start_lng,elevation) #lat,lng,elev
}

coords它到底有多不准确?你需要什么样的宽容?您当前的近似值只有10米的精度(因为小数点后有3位),而且还会有额外的误差,因为您假设地球是一个球体,而地球不是。从很多方面来说,这很好,但听起来似乎不适合你。是的,我同意@Calum关于不确定性来源的观点。只要地图的空间范围不超过100公里,即使是100公里的测试,现在的精确度似乎足以绘制彩色框的可视化效果。我知道地球有点挤,但我希望它足够近,或者可能有一个方便的R库为我做这件事,但找不到一个预先准备好的解决方案。这是为马尼托巴省准备的,恐怕是一个相当大的区域。刚刚注意到,我认为您的函数可能无法按预期工作,因为
cos()
要求输入弧度,而不是度。在计算余弦之前,你应该将你的纬度乘以π/180,你应该得到一个更好的结果。特别是在讨论坐标、球体地球模型等时。。。我更喜欢使用经过验证的库进行lat/lon数学。为此,我将使用
。(从另一个角度来看:我已经尝试手动执行了好几次,犯了很多小错误,因此在
geosphere
上添加包依赖项是非常值得的投资。“好吧,不要犯那些错误”不是一个合理的回答:-)