摘要
Multipoint 对象是点的有序集合。
说明
在许多地理处理工作流中,您可能需要使用坐标和几何信息运行特定操作,但不一定想经历创建新(临时)要素类、使用光标填充要素类、使用要素类,然后删除临时要素类的过程。可以使用几何对象替代输入和输出,从而使地理处理变得更简单。使用 Geometry、Multipoint、PointGeometry、Polygon 或 Polyline 类可以从头开始创建几何对象。
在创建几何对象的过程中,将执行一个简化过程,以使几何根据其几何类型在拓扑上保持一致。 例如,将校正可能自相交的面,或包含错误环方向的面。 坐标可能会在几何空间参考的分辨率范围内移动。
可以使用以下运算符代替几何方法:
Python 运算符 | 几何方法 |
---|---|
+ | intersect |
| | union |
- | difference |
^ | symmetricDifference |
== | equals |
!= | not equals |
例如,要联合两个几何对象,g3 = g1 | g2 等效于 g3 = g1.union(g2)。
+ 运算符将使用第一个几何的几何类型 (dimension) 来确定输出的几何类型。
语法
Multipoint (inputs, {spatial_reference}, {has_z}, {has_m}, {has_id})
参数 | 说明 | 数据类型 |
inputs | The coordinate information used to create the object. The data type can be Point or Array objects. | Object |
spatial_reference | The spatial reference of the new geometry. (默认值为 None) | SpatialReference |
has_z | Specifies whether the geometry will be z-enabled. (默认值为 False) | Boolean |
has_m | Specifies whether the geometry will be m-enabled. (默认值为 False) | Boolean |
has_id | Specifies whether the geometry will support point IDs. (默认值为 False) | Boolean |
属性
属性 | 说明 | 数据类型 |
JSON (只读) | 采用字符串形式的几何的 Esri JSON 制图表达。 提示:通过 json 模块的 loads 函数,返回的字符串可转换至字典。 | String |
WKB (只读) | OGC 几何的熟知二进制 (WKB) 表示。 该属性以连续字节流的形式提供几何值的可移植表示。 | Bytearray |
WKT (只读) | OGC 几何的熟知文本 (WKT) 表示。 该属性以文本字符串的形式提供几何值的可移植表示。 几何中的所有真曲线都将在 WKT 字符串的近似曲线中进行增密。 | String |
area (只读) | 面要素的面积。 对于其他所有要素类型,面积为零。 | Double |
centroid (只读) | 如果质心位于要素之内或要素之上则为真;否则为标注点。 | Point |
extent (可读写) | 几何范围。 | Extent |
firstPoint (只读) | 几何的第一个坐标点。 | Point |
hasCurves (只读) | 指定几何是否具有曲线。 | Boolean |
hullRectangle (只读) | 凸包矩形坐标对的空格分隔字符串。 | String |
isMultipart (只读) | 指定几何的部分数是否大于 1。 | Boolean |
labelPoint (只读) | 标注位置所在的点。 该点始终位于要素之内或之上。 | Point |
lastPoint (只读) | 要素最后一个坐标。 | Point |
length (只读) | 线状要素的长度。 该计算将使用 2D 笛卡尔算法。 对于点和多点几何,长度为零。 对于面几何,长度将是边界的 2D 长度。 | Double |
length3D (只读) | 线状要素的 3D 长度。 该计算将使用 3D 笛卡尔算法。 对于点和多点几何,长度为零。 对于面几何,长度将是边界的 3D 长度。 警告:该操作不执行水平和垂直坐标系之间的单位转换。 假设 x、y 和 z 坐标在同一线性单位中。 警告:此属性仅适用于投影数据。 | Double |
partCount (只读) | 要素的几何部分数。 | Integer |
pointCount (只读) | 要素的总点数。 | Integer |
spatialReference (只读) | 几何的空间参考。 | SpatialReference |
trueCentroid (只读) | 要素的重心。 | Point |
type (只读) | 几何类型:polygon、polyline、point 或 multipoint。 | String |
方法概述
方法 | 说明 |
boundary () | 构造几何边界。 |
buffer (distance) | 在距几何的指定距离处构造一个面。 |
clip (envelope) | 构造几何体与指定范围的交集。 |
contains (second_geometry, {relation}) | 指明基础几何中是否包含比较几何。 contains 与 within 相反。 本图仅显示 True 关系。 |
convexHull () | 构造具有最小边界多边形的几何,以便所有外角均为凸角。 |
crosses (second_geometry) | 指明两个几何是否相交于较小形状类型的几何。 如果两条折线仅共用公共点(至少有一个点不是端点),则这两条折线交叉。如果折线和面在面(不等于整条折线)的内部共享一条折线或一个公共点(对于垂线),那么该折线与面交叉。 本图仅显示 True 关系。 |
cut (cutter) | 将该几何分割到剪切折线的左右两侧。 剪切折线或面时,会从其与剪切折线的相交处将其分割。每一段被分类为剪切线的左侧或右侧。该分类基于剪切线的方向。目标折线中不与剪切折线相交的部分将作为该输入折线结果的右侧部分返回。如果未对几何进行剪切,则左侧几何将为空 (None)。 |
difference (other) | 构造一个几何体,该几何体仅由基础几何所特有、而其他几何所没有的区域组成。下图显示当红色多边形为源几何时的结果。 |
disjoint (second_geometry) | 指明基础几何和比较几何是否未共用任何点。 如果 disjoint 返回 False,则两个几何相交。 本图仅显示 True 关系。 |
distanceTo (other) | 返回两个几何之间的最小距离。距离将采用几何空间参考的单位。如果两个几何相交,则最小距离为 0。 两个几何必须具有相同的投影。 |
equals (second_geometry) | 指示原几何和参照几何的 shape 类型是否相同并在平面中定义相同点集。这仅是 2D 的比较;已忽略 M 值和 Z 值。 本图仅显示 True 关系。 |
getPart ({index}) | 如果指定了索引,则将返回几何特定部分的 Point 对象的 Array 对象。 如果未指定索引,则返回的 Array 对象将包含每个几何部分的 Point 对象的 Array。 getPart 方法等同于建立对象索引;即 obj.getPart(0) 等同于 obj[0]。 |
intersect (other, dimension) | 构造作为两个输入几何交集的几何体。不同的维数可用于创建不同的 shape 类型。 对于同一 shape 类型的两个几何体,其交集为仅包含原始几何重叠区域的几何。 为了更快地获取结果,请在调用 intersect 类之前先测试两个几何体是否 disjoint。 |
move ({dx}, {dy}, {dz}) | 沿 x、y 和 z 轴将几何移动指定的距离以创建新几何。 |
overlaps (second_geometry) | 指示两个几何的交集是否具有与其中一个输入几何相同的形状类型,并且不等于任一输入几何。 本图仅显示 True 关系。 |
projectAs (spatial_reference, {transformation_name}) | 投影几何,并应用相应的地理变换。 要投影几何,几何必须具有空间参考,并且没有未知的坐标系。 传递给该方法的新空间参考系统定义了输出坐标系。 如果空间参考均未知,则坐标将不会更改。 projectAs 方法不会更改 z 值和 m 值。 |
scale ({origin}, {sx}, {sy}, {sz}) | 从指定的原点沿 x、y 和 z 轴按指定的因子缩放几何以创建新几何。 已变换点(或顶点)的位置由以下提供:
相对于原点应用变换,以使原点保持静止,而几何围绕其扩展或收缩。 所生成几何的扩展或收缩位置和方向受到原点的显著影响。 以下将介绍原点及其对输出的影响的一些可能的选择:
|
symmetricDifference (other) | 构造一个几何体,该几何体由两个几何的并集减去其交集所形成。 两个输入几何必须为同一 shape 类型。 |
touches (second_geometry) | 指示几何的边界是否相交。 当两个几何的交集不为空,但它们内部的交集为空时,说明两个几何接触。例如,仅当点与折线的一个终点重合时,才表示点与折线接触。 本图仅显示 True 关系。 |
union (other) | 构造一个几何体,该几何体是输入几何的并集。 要合并的两个几何必须为同一 shape 类型。 |
within (second_geometry, {relation}) | 指明基础几何是否位于比较几何之内。 within 与运算符 contains 相反。 本图仅显示 True 关系。 如果基础几何是这些几何的交集且其内部交集不为空,则基础几何位于比较几何之内。within 是 Clementini 运算符,空的基础几何除外。 |
方法
boundary ()
数据类型 | 说明 |
Object | 面的边界为折线。折线的边界为多点,与线的端点相对应。点或多点的边界为空点或多点。 |
buffer (distance)
参数 | 说明 | 数据类型 |
distance | 缓冲距离。 缓冲几何时,缓冲距离采用相同的单位。 仅可以为面几何指定负距离。 | Double |
数据类型 | 说明 |
Polygon | 缓冲的面几何。 |
clip (envelope)
参数 | 说明 | 数据类型 |
envelope | An Extent object used to define the clip extent. | Extent |
数据类型 | 说明 |
Object | 将输出几何体按指定范围进行裁剪。 |
contains (second_geometry, {relation})
参数 | 说明 | 数据类型 |
second_geometry | 第二个几何。 | Object |
relation | 空间关系类型。
(默认值为 None) | String |
数据类型 | 说明 |
Boolean | 返回的布尔值 True 表示该几何包含第二个几何。 |
convexHull ()
数据类型 | 说明 |
Object | 生成的几何。单个点的凸包为该点本身。 |
crosses (second_geometry)
参数 | 说明 | 数据类型 |
second_geometry | 第二个几何。 | Object |
数据类型 | 说明 |
Boolean | 返回布尔值为 True 指明两个几何相交于较小形状类型的几何。 |
cut (cutter)
参数 | 说明 | 数据类型 |
cutter | 剪切折线几何。 | PolyLine |
数据类型 | 说明 |
Geometry | 包含两个几何的列表。 |
difference (other)
参数 | 说明 | 数据类型 |
other | 第二个几何。 | Object |
数据类型 | 说明 |
Object | 生成的几何。 |
disjoint (second_geometry)
参数 | 说明 | 数据类型 |
second_geometry | 第二个几何。 | Object |
数据类型 | 说明 |
Boolean | 返回布尔值 True 表示两个几何未共用任何点。 |
distanceTo (other)
参数 | 说明 | 数据类型 |
other | 第二个几何。 | Object |
数据类型 | 说明 |
Double | 两个几何之间的距离。 |
equals (second_geometry)
参数 | 说明 | 数据类型 |
second_geometry | 第二个几何。 | Object |
数据类型 | 说明 |
Boolean | 返回布尔值为 True 表示两个几何的 shape 类型相同并在平面中定义了相同点集。 |
getPart ({index})
参数 | 说明 | 数据类型 |
index | The index position of the geometry. | Integer |
数据类型 | 说明 |
Array | 生成的 Array 对象。 |
intersect (other, dimension)
参数 | 说明 | 数据类型 |
other | 第二个几何。 | Object |
dimension | 生成几何的拓扑维度(形状类型)。
| Integer |
数据类型 | 说明 |
Object | 作为两个输入几何体的交集的新几何体(点、多点、折线或面)。 |
move ({dx}, {dy}, {dz})
参数 | 说明 | 数据类型 |
dx | The distance the geometry will be moved along the x-axis. (默认值为 0.0) | Double |
dy | The distance the geometry will be moved along the y-axis. (默认值为 0.0) | Double |
dz | The distance the geometry will be moved along the z-axis. The geometry must be z-aware and have z-values. (默认值为 0.0) | Double |
数据类型 | 说明 |
Geometry | 沿 x、y 和 z 轴按指定距离移动的输出几何。 |
overlaps (second_geometry)
参数 | 说明 | 数据类型 |
second_geometry | 第二个几何。 | Object |
数据类型 | 说明 |
Boolean | 返回布尔值为 True 表示两个几何的交集具有与其中一个输入几何相同的尺寸。 |
projectAs (spatial_reference, {transformation_name})
参数 | 说明 | 数据类型 |
spatial_reference | The spatial reference of the projected geometry. This can be a SpatialReference object or the coordinate system name. | SpatialReference |
transformation_name | The geotransformation name. With ArcGIS Pro, if you do not specify a transformation, none will be applied. With ArcGIS Server, if you do not specify a transformation, a fallback transformation will be applied. | String |
数据类型 | 说明 |
Object | 经投影的几何。 |
scale ({origin}, {sx}, {sy}, {sz})
参数 | 说明 | 数据类型 |
origin | The origin of the transformation. The argument can be either an arcpy.Point object or an arcpy.PointGeometry object. The default origin, arcpy.Point(0.0, 0.0, 0.0), will usually be located outside the target geometry. (默认值为 arcpy.Point(0.0, 0.0, 0.0)) | Point |
sx | The factor that will be used to scale the geometry along the x-axis. (默认值为 1.0) | Double |
sy | The factor that will be used to scale the geometry along the y-axis. (默认值为 1.0) | Double |
sz | The factor that will be used to scale the geometry along the z-axis. The geometry must be z-aware and have z-values. (默认值为 1.0) | Double |
数据类型 | 说明 |
Geometry | 从指定原点沿 x、y 和 z 轴按指定因子缩放的输出几何。 |
symmetricDifference (other)
参数 | 说明 | 数据类型 |
other | 第二个几何。 | Object |
数据类型 | 说明 |
Object | 生成的几何。 |
touches (second_geometry)
参数 | 说明 | 数据类型 |
second_geometry | 第二个几何。 | Object |
数据类型 | 说明 |
Boolean | 返回布尔值为 True,表示几何的边界相交。 |
union (other)
参数 | 说明 | 数据类型 |
other | 第二个几何。 | Object |
数据类型 | 说明 |
Object | 生成的几何。 |
within (second_geometry, {relation})
参数 | 说明 | 数据类型 |
second_geometry | 第二个几何。 | Object |
relation | 空间关系类型。
(默认值为 None) | String |
数据类型 | 说明 |
Boolean | 返回布尔值 True 表示该几何被包含在另一个几何之内。 |
代码示例
从头开始创建折线要素类。
import arcpy
# A list of features and coordinate pairs
feature_info = [[[1, 2], [2, 4], [3, 7]],
[[6, 8], [5, 7], [7, 2], [9, 5]]]
# A list that will hold each of the Multipoint objects
features = []
for feature in feature_info:
# Create a Multipoint object based on the array of points
# Append to the list of Multipoint objects
features.append(
arcpy.Multipoint(
arcpy.Array([arcpy.Point(*coords) for coords in feature])))
# Persist a copy of the Polyline objects using CopyFeatures
arcpy.CopyFeatures_management(features, "c:/geometry/multipoints.shp")