else
geometry.Project(dstSR);
也可通过IGeoTransformation的TransformPointsFF函数来进行datum之间的转换,不过要注意的是,这个函数不支持投影,也就是只能在经纬度之间转换,如果在数据参考系时输入的是投影坐标系,函数只会取出其地理坐标系(我试验的结果,不知是否正确)。
geoTrans.PutSpatialReferences(srcSR, dstSR);
double[] inPoints = new double[2];
inPoints[0] = 100; inPoints[1] = 100;
double[] utPoints = new double[2];
geoTrans.TransformPointsFF(esriTransformDirection.esriTransformForward, 1, ref inPoints[0], ref outPoints[0]);
ArcToolBox中可以定义自定义的GeoTransformation,保存成*.gtf文件,置于目录...\\\\Documents and Settings\\
GeoTransformation的函数。但该文件还是比较容易解析的,可以自己写一个。如果转换模型确定,则可完全可自定义一个简单的文件来存储转换参数。
在使用IGeometry.Project时,有一个特别的类可以关注,
IGeoTransformationOperationSet。这个类适用于要批量转换的Geometries中的SpatialReference不一样。在利用IGeometry.Project进行坐标转换时,如果两个坐标系之间的datum不一样,系统会搜索GeoTranformationOperationSet,找一个匹配的geotransformation,如果找不到,则GeoTranformation会不成功。
IGeoTransformationOperationSet就是缓存了系统环境中的GeoTranformation。通常spatialReferenceFactory.GeoTransformationDefaults中的
IGeoTransformationOperationSet个数为0,每往里Set一次,则添加一个。可参考其例子。
3用ArcGIS维护坐标系转换思路 1)矢量数据
如果创建Feature Dataset,设置其坐标系为WGS84经纬度,导入矢量数据,ArcGIS会自动将所有数据转换为WGS84经纬度。
对于没有导入Feature Dataset,而是直接导入Geodatabase中的数据,可利用在导入时,设置Environment中的“输出坐标系”和“转换参数(如果有准确的参数,则设置,否则缺省为0)”来实现边导入边进行坐标转换。
2)栅格数据
不论时将Raster Dataset至于Geodatabase还是RasterCatalog中,都可在导入时,设置Environment中的“输出坐标系”和“转换参数(如果有准确的参数,则设置,否则缺省为0)”来实现边导入边进行坐标转换。
3)转换
对于导入到系统中的数据,如果要转换坐标系,可通过ArcToolBox进行坐标转换功能实现,这必须要先自定义Transformation。
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库ArcGIS坐标系定义和转换(2)在线全文阅读。
相关推荐: