形状操作
形状操作函数可以应用于 映射 工作簿中 表达式 列的 几何 行。 该函数用于定义将数据从源加载到目标时如何转换几何。 此转换可包括几何类型之间的转换。
以下部分描述了可用的形状操作函数。
面转点
面转点函数使用面的质心将面转换为点。 当源是面且目标是点时,会在 映射 工作簿中自动选择该函数。
插图

语法
polygon_to_point(shape)
|
名称 |
说明 |
数据类型 |
|---|---|---|
|
|
包含形状几何的字段。 |
几何 |
示例
polygon_to_point(!Shape!)
面转多点
面转多点函数将面转换为多点,源面的每个顶点都有一个点。 当源是面且目标是多点时,会在 映射 工作簿中自动选择该函数。
插图

语法
polygon_to_multipoint(shape)
|
名称 |
说明 |
数据类型 |
|---|---|---|
|
|
包含形状几何的字段。 |
几何 |
示例
polygon_to_multipoint(!Shape!)
面转直径折线
面转直径折线函数将面转换为单段折线,该单段折线连接沿其边界相距最远的面的两个顶点。 该函数不会在 映射 工作簿中自动选择,必须在 表达式 列中手动输入。
插图

语法
polygon_to_diameter_polyline(shape)
|
名称 |
说明 |
数据类型 |
|---|---|---|
|
|
包含形状几何的字段。 |
几何 |
示例
polygon_to_diameter_polyline(!Shape!)
面转折线
面转折线函数使用面的边界将面转换为折线。 当源是面且目标是折线时,会在 映射 工作簿中自动选择该函数。
插图

语法
polygon_to_polyline(shape)
|
名称 |
说明 |
数据类型 |
|---|---|---|
|
|
包含形状几何的字段。 |
几何 |
示例
polygon_to_polyline(!Shape!)
折线转面
折线转面函数使用指定的缓冲距离将折线转换为面。 当源是面且目标是面时,会在 映射 工作簿中自动选择该函数。
插图

语法
polyline_to_polygon(shape, distance)
|
名称 |
说明 |
数据类型 |
|---|---|---|
|
|
包含形状几何的字段。 |
几何 |
|
|
与要缓冲的输入要素之间的距离。 |
双精度 |
示例
polyline_to_polygon(!Shape!, 20)
折线转点
折线转点函数使用线长度的比率将折线转换为点。 当源是折线且目标是点时,会在 映射 工作簿中自动选择该函数。
插图

语法
polyline_to_point(shape, {ratio})
|
名称 |
说明 |
数据类型 |
|---|---|---|
|
|
包含形状几何的字段。 |
几何 |
|
|
沿线放置点的距离,以 0 到 1 的比率表示。 默认值为 0.5。 |
双精度 |
示例
polyline_to_point(!Shape!, 0.5)
折线转多点
折线转多点函数将折线转换为多点,在源折线的每个顶点创建一个点。 当源是折线且目标是多点时,会在 映射 工作簿中自动选择该函数。
插图

语法
polyline_to_multipoint(shape)
|
名称 |
说明 |
数据类型 |
|---|---|---|
|
|
包含形状几何的字段。 |
几何 |
示例
polyline_to_multipoint(!Shape!)
点转面
点转面函数使用指定的缓冲距离将点转换为面。 当源是点且目标是面时,会在 映射 工作簿中自动选择该函数。
插图

语法
point_to_polygon(shape, distance)
|
名称 |
说明 |
数据类型 |
|---|---|---|
|
|
包含形状几何的字段。 |
几何 |
|
|
与要缓冲的输入要素之间的距离。 |
双精度 |
示例
point_to_polygon(!Shape!, 50)
点转折线
点转折线函数使用指定的距离和角度将点转换为折线。 当源是点且目标是折线时,会在 映射 工作簿中自动选择该函数。
注:
生成的线的起始顶点将与源点位于同一位置。
插图

语法
point_to_polyline(shape, angle, distance)
|
名称 |
说明 |
数据类型 |
|---|---|---|
|
|
包含形状几何的字段。 |
几何 |
|
|
生成折线的角度。 角度必须位于 0 和 360 之间。 |
双精度 |
|
|
与要缓冲的输入要素之间的距离。 |
双精度 |
示例
point_to_polyline(!Shape!, 30, 100)
点转多点
点转多点函数将点转换为多点,其中包含以源点为中心的随机生成的点的集合。 当源是点且目标是多点时,会在 映射 工作簿中自动选择该函数。
插图

语法
point_to_multipoint(shape, num_points, radius)
|
名称 |
说明 |
数据类型 |
|---|---|---|
|
|
包含形状几何的字段。 |
几何 |
|
|
要随机生成的点的数量。 |
短整型 |
|
|
随机生成的点将分散在其中的半径。 |
双精度 |
示例
point_to_multipoint(!Shape!, 30, 200)
多点转面
多点转面函数使用源多点的凸包将多点转换为面。 当源是多点且目标是面时,会在 映射 工作簿中自动选择该函数。
注:
如果多点要素只有一个或两个点,则将以默认缓冲区大小生成面缓冲区。 如果多点要素大于两点,则将使用凸包方法生成面。
插图

语法
multipoint_to_polygon(shape)
|
名称 |
说明 |
数据类型 |
|---|---|---|
|
|
包含形状几何的字段。 |
几何 |
示例
multipoint_to_polygon(!Shape!)
多点转折线
多点转折线函数使用源多点的凸包将多点转换为折线。 当源是多点且目标是折线时,会在 映射 工作簿中自动选择该函数。
注:
如果多点要素是单点,则将以默认方向和长度生成折线。 如果多点要素是两个点或更多,则将使用凸包方法生成折线。
插图

语法
multipoint_to_polyline(shape)
|
名称 |
说明 |
数据类型 |
|---|---|---|
|
|
包含形状几何的字段。 |
几何 |
示例
multipoint_to_polyline(!Shape!)
多点转点
多点转点函数使用源多点的质心将多点转换为点。 当源是多点且目标是点时,会在 映射 工作簿中自动选择该函数。
插图

语法
multipoint_to_point(shape)
|
名称 |
说明 |
数据类型 |
|---|---|---|
|
|
包含形状几何的字段。 |
几何 |
示例
multipoint_to_point(!Shape!)
创建点
创建点函数从表中的 x 坐标和 y 坐标创建点。 您还可以包含 z、m 和空间参考信息。 当源是表且目标是点时,会在 映射 工作簿中自动选择该函数。
语法
create_point(x, y, {z}, {m}, {spatial_reference})
|
名称 |
说明 |
数据类型 |
|---|---|---|
|
|
x 值或包含 x 值的字段。 |
双精度 |
|
|
y 值或包含 y 值的字段。 |
双精度 |
|
|
z 值或包含 z 值的字段。 |
双精度 |
|
|
m 值或包含 m 值的字段。 |
双精度 |
|
|
定义空间参考的水平坐标系。 可以使用投影文件、名称或工厂代码来设置坐标系。 |
SpatialReference |
示例
create_point(!x!, !y!, !z!, !m!, 8745)
移动要素
移动要素函数可将任何几何类型的 x、y 和 z 坐标移动一个值。 该函数不会在 映射 工作簿中自动选择,必须在 表达式 列中手动输入。
语法
move(shape, {x}, {y}, {z})
|
名称 |
说明 |
数据类型 |
|---|---|---|
|
|
包含形状几何的字段。 |
几何 |
|
|
x 值的平移量。 |
双精度 |
|
|
y 值的平移量。 |
双精度 |
|
|
z 值的平移量。 |
双精度 |
示例
move(!Shape!, 50, 50, 50)