使用fme进行椭球长度计算
计算纬度/经度数据的距离
在FME中测量距离非常简单。但是,许多数据都使用纬度和经度坐标进行存储,这使得测量距离变得复杂。距离很少需要以十进制度来测量,而是以英尺或米等单位来测量。
有两个相关转换器:ReprojectLengthCalculator和GeographicLengthCalculator。
ReprojectLengthCalculator
ReprojectLengthCalculator 转换器接受一个坐标系中的线长度,并计算该长度在第二个坐标系中的长度:
转换器不测量传入要素的几何,而是根据传入值/属性计算结果。
注意:它的精确度仅在 0.2% 左右,具体取决于所选坐标系和线的长度。对于较小的线条,这可能很好,但对于较大的长度,这可能会更加不准确。
GeographicLengthCalculator
GeographicLenthCalculator 计算线要素的长度(或面要素的周长),并使用以下所选单位之一将结果作为属性返回:
转换器确实测量了传入要素的几何。无论传入坐标系如何,返回的单位都可以是英尺、千米、米或英里。
它必须从FME hub下载。
操作步骤
-
添加度模块读取数据:
-
使用快速添加,在读模块和写模块要素类型之间添加GeographicLengthCalculator转换器:
-
打开地理长度计算器转换器的参数对话框。确保距离单位设置为米,并且长度属性参数设置为写入称为NeighborhoodPerimeter属性:
-
打开写模块要素类型的参数对话框。单击用户属性选项卡,然后将属性定义类型更改为自动:
这将确保读取或创建的所有属性都将写入输出中。
5. 保存并运行工作区。请注意,即使源数据集和目标数据集使用纬度和经度坐标,NeighborhoodPerimeter属性也以米为单位进行测量:
和arcgis对比,精度还可以
注意:这个测试数据是84坐标系,2000坐标系没测试过,有时间试试。