在二维坐标系统中,常见转换坐标:平移、缩放、旋转。在ArcGIS中可以通过工具实现移动 、旋转 和缩放,具体操作如下:
(1)移动要素:可通过指针或指定值以交互方式操作所选要素。移动要素:要移动要素,请使用指针选择并对其进行拖动。选择多个要素后,您可以单击鼠标右键并对齐或分配要素。
(2)旋转要素:要使用指针旋转要素,请对其进行选择并拖动。主选择锚点可指定旋转中心。辅助锚点可将旋转角度捕捉到其他要素。
(3)旋转要素:要使用指针旋转要素,请对其进行选择并拖动。主选择锚点可指定旋转中心。辅助锚点可将旋转角度捕捉到其他要素。
对于实际工作中,会遇到各种复杂的数据,基于不同基点(原点),平移、缩放、旋转的量都不同,要根据具体情况具体分析。本文想实现坐标转换的通用方法,基于基点信息,对图层所有要素进行平移、缩放、旋转。
实现主体函数执行流程如下:
for (int i = 0; i < BasePoints.Rows.Count; i++)
{
TransformCoordinate MoveCoor = new TransformCoordinate();
DataRow BaseBow = BasePoints.Rows[i];
//1.获取基点信息
MoveCoor.getBaseInfo(BaseBow);
string shpName = MoveCoor.shpFileName;
string output = outputPath + @"\" + shpName;
if (inputTargetNameList.Exists(t => t.Equals(shpName)))//判断List是否含某个属性
{
//2.将所有同名(shpName)文件,从源路径复制至输出路径下,不区分文件后缀名
FileCopy.CopyOneShpFile(inputTargetFile, outputPath, shpName,true);//复制文件
//3.判断图层中有无图形元素,同时初始化图层即给in_FeatureClass赋值
if (MoveCoor.isExistFeatures(output) == false)
{
remind2 += shpName + " ";//图层缺少要素
}
//4.转换坐标
MoveCoor.ExecutePan();//平移
MoveCoor.ExecuteRotate();//旋转
MoveCoor.ExecuteTelescopic();//缩放
MoveCoor.updateExtend();//更新图层extent
}
else
{