我们都知道空间坐标分地理和投影两种,后者可用于计算长度、面积。但是,在一些软件中,我们的数据源是地理坐标也可进行长度和面积的计算。下面看一下两点在不同软件在坐标系统的长度。
(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,这样并不精确,精确计算必须先进行合适地投影!