我们都知道空间坐标分地理和投影两种, 后者可用于计算长度, 面积. 但是, 在一些软件中, 我们的数据源是地理坐标也可进行长度和面积的计算. 下面看一下两点在不同软件在坐标系统的长度.
(1)ArcGIS 中 WGS1984 地理坐标:
(2)google earth 中 WGS1984 地理坐标:
(3)ArcGIS 中 WGS1984 Mercator 坐标:
(4)ArcGIS 中 WGS1984 web Mercator 坐标:
从上面图比较可以看出: 地理坐标下, 也可以计算距离和长度 (只是与投影), 那它是怎么来算的呢? 在 ArcObject 中, 有 IUnitConverter 这一接口, 它可以将不同单位度量值进行转换, 操作如 下:
- IUnitConverter convert = new UnitConverterClass();
- double degree = convert.ConvertUnits(100, esriUnits.esriKilometers, esriUnits.esriDecimalDegrees);
其实这样的转换是不精确的: http://zhihu.esrichina.com.cn/question/14117
之所以在地理坐标下能进行转换, 它是一个约算值, 计算时取的地球半径为 6378137, 这样并不精确, 精确计算必须先进行合适地投影!
来源: http://www.bubuko.com/infodetail-3046477.html