R实现经纬度转换米

浏览: 1928

      根据地球上任意两点的经纬度计算两点间的距离,地球是一个近乎标准的椭球体,它的赤道半径为6378.140千米,极半径为 6356.755千米,平均半径6371.004千米。通过极坐标转换把经纬度转换为容易理解和计算的米。

一、the function of distince

getDistancev <- function(arryv) {#点之间距离生成(m)
  # arryv=eucv
  len=length(arryv)
  tempar= matrix(0,nrow(arryv),nrow(arryv))
  for(i in 1:nrow(arryv))
    for(j in 1:nrow(arryv))
      tempar[i,j]=getDistance(arryv[i,1],arryv[i,2],arryv[j,1],arryv[j,2])
  #mark  
  
  return(tempar)
}
二、the transform of coordinates
getDistance <- function(lat1,lng1,lat2,lng2) {#经纬度->米
  
  EARTH_RADIUS <- 6378.137
  radLat1 <- rad(lat1)
  radLat2 <- rad(lat2)
  a <- radLat1 - radLat2
  b <- rad(lng1) - rad(lng2)
  s <- 2 * asin(sqrt((sin(a/2))^2) + cos(radLat1)*cos(radLat2)*(sin(b/2))^2);
  s = s * EARTH_RADIUS
  s = round(s * 10000) / 10
  return (s)
}
三、the transform of polar coordinates
rad <- function(d){
  return (d*pi / 180.0)
}
四、直接使用

getDistance(121.41479,28.70854,121.41472,28.70878)

over

推荐 3
本文由 华青莲 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册