地理信息系统中的量算

阅读: 评论:0

地理信息系统中的量算

地理信息系统中的量算

转载来源:

 

地理信息系统中牵涉到各种各样的量算,例如距离、方位、面积等等。这些量算的方法或者计算繁复,或者较难找到资料,从今天开始逐渐贴出自己整理的计算方法,也作为自己的资料积累。

距离量算:

距离量算可以通过不同的方式进行:

1、将经纬度坐标通过投影方式投影到二维坐标,然后通过二维坐标的取值计算两点之间的距离。这种方法计算量较大,同时投影通常都会引起误差。在需要进行快速计算时不推荐使用;

2、大圆航线距离计算。按照定义,大圆线是球面上半径等于球体半径的圆弧。大圆线是连接球面上两点最短的路径所在的曲线。大圆距离的公式是:

d=acos(sin(lat1)*sin(lat2)+cos(lat1)*cos(lat2)*cos(lon1-lon2))
其中,lat1和lon1分别为第一点纬度和经度,而lat2和lon2分别为第二点的纬度和经度。而最后的结果d的单位是度或者弧度,而根据定义,60海里为一度,1海里等于1852米。
另一个对于短距离计算误差较小的大圆长度公式是:
d=2*asin(sqrt((sin((lat1-lat2)/2))^2 + cos(lat1)*cos(lat2)*(sin((lon1-lon2)/2))^2))
 
3、恒向线距离。恒向线的定义是:即沿两点间固定方位角航行的航线。这不是航程最短的航线,而是操纵方便的沿单一航向航行的航线。恒向线的距离要大于两点之间的大圆线距离。
 
恒向线距离d的公式是:
 
         if (abs(lat2-lat1) < sqrt(TOL))
	  {q=cos(lat1)}
         else 
	  {q= (lat2-lat1)/log(tan(lat2/2+pi/4)/tan(lat1/2+pi/4))}d=sqrt((lat2-lat1)^2+ q^2*(lon2-lon1)^2)
 
其中,TOL是一个很小的数,例如1E-15。pi是圆周率。当恒向线穿过东经180度线时,这个公式会有问题。改进的公式是这样的:
 
  dlon_W=mod(lon2-lon1,2*pi)dlon_E=mod(lon1-lon2,2*pi)dphi=log(tan(lat2/2+pi/4)/tan(lat1/2+pi/4))if (abs(lat2-lat1) < sqrt(TOL))
  {q=cos(lat1)} 
  else 
 {q= (lat2-lat1)/dphi}if (dlon_W < dlon_E)
  {// Westerly rhumb line is the shortesttc=mod(atan2(-dlon_W,dphi),2*pi)d= sqrt(q^2*dlon_W^2 + (lat2-lat1)^2)} 
  else
  {tc=mod(atan2(dlon_E,dphi),2*pi)d= sqrt(q^2*dlon_E^2 + (lat2-lat1)^2)}
其中tc是方位角,mod的定义是:
 
    mod=y - x * int(y/x)if ( mod < 0) mod = mod + x

 

本文发布于:2024-02-01 07:08:23,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170674250534780.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23