Engine代码测量面积的值与在ArcGlobe软件中测量出来的值不一样?

通过Engine代码测量面积的值与在ArcGlobe软件中测量出来的值有差别,这是为什么?
已邀请:

刘峥 - ArcGIS多面手

赞同来自:

【解决办法】:
arcglobe和globecontrol使用的是Cube投影(http://resources.arcgis.com/zh ... 00000),自带的measure工具没有说明。经测试测试使用弧面面积并指定测量基准为GreatElliptic的结果与自带measure工具最为接近:


IAreaGeodetic areaGeod = polygon as IAreaGeodetic;
Type factoryType = Type.GetTypeFromProgID(esriGeometry.SpatialReferenceEnvironment);
System.Object obj = Activator.CreateInstance(factoryType);
ISpatialReferenceFactory3 spatialReferenceFactory = obj as ISpatialReferenceFactory3;
ILinearUnit unit = spatialReferenceFactory.CreateUnit((int) esriSRUnitType.esriSRUnit_Kilometer) as ILinearUnit;
double geodArea = areaGeod.get_AreaGeodetic(esriGeodeticType.esriGeodeticTypeNormalSection, unit);


但是具体情况需要根据业务需求来判断,绝大多数情况下都是使用平面投影计算出来的面积是最准确的。如有特殊的需求需要计算弧面面积可以使用以上的方式。

要回复问题请先登录注册