geometryEngineAsync

AMD: require(["geoscene/geometry/geometryEngineAsync"], (geometryEngineAsync) => { /* code goes here */ });
ESM: import * as geometryEngineAsync from "@geoscene/core/geometry/geometryEngineAsync";
对象: geoscene/geometry/geometryEngineAsync
起始版本:GeoScene API for JavaScript 4.0

异步客户端几何图形引擎,用于测试、测量和分析两个或多个 2D 几何图形之间的空间关系。如果以下任何方法需要多个几何,则所有几何都必须具有相同的空间参考,这些方法才能按预期工作。

阅读以下博客系列,了解有关几何引擎的更多信息:

方法概述

名称 返回类型 描述 对象
Promise<(Polygon|Polygon[])>更多信息

在输入几何图形周围的指定距离处创建平面(或欧氏)缓冲区面。

更多信息geometryEngineAsync
Promise<Geometry>更多信息

按包络计算目标几何图形的裁剪几何图形。

更多信息geometryEngineAsync
Promise<Boolean>更多信息

指示一个几何图形是否包含另一个几何图形。

更多信息geometryEngineAsync
Promise<(Geometry|Geometry[])>更多信息

计算一个或多个几何形状的凸面船体。

更多信息geometryEngineAsync
Promise<Boolean>更多信息

指示一个几何图形是否与另一个几何图形相交。

更多信息geometryEngineAsync
Promise<Geometry[]>更多信息

将输入折线或多边形与切割折线相交的位置拆分输入折线或多边形。

更多信息geometryEngineAsync
Promise<Geometry>更多信息

通过在现有顶点之间绘制点来致密化几何图形。

更多信息geometryEngineAsync
Promise<Geometry>更多信息

创建两个几何图形的差异。

更多信息geometryEngineAsync
Promise<Boolean>更多信息

指示一个几何图形是否与另一个几何图形不相交(不以任何方式相交)。

更多信息geometryEngineAsync
Promise<Number>更多信息

计算两个几何图形之间的最短平面距离。

更多信息geometryEngineAsync
Promise<Boolean>更多信息

指示两个几何图形是否相等。

更多信息geometryEngineAsync
Promise<SpatialReferenceInfo>更多信息

返回一个对象,其中包含有关输入空间参考的其他信息。

更多信息geometryEngineAsync
Promise<Geometry>更多信息

在水平轴上翻转几何图形。

更多信息geometryEngineAsync
Promise<Geometry>更多信息

在垂直轴上翻转几何图形。

更多信息geometryEngineAsync
Promise<Geometry>更多信息

对游标中的几何图形执行概化操作。

更多信息geometryEngineAsync
Promise<Number>更多信息

计算输入几何图形的面积。

更多信息geometryEngineAsync
Promise<(Polygon|Polygon[])>更多信息

在输入几何图形周围的指定距离处创建流地缓冲区面。

更多信息geometryEngineAsync
Promise<Geometry>更多信息

返回输入几何图形的测地线致密化版本。

更多信息geometryEngineAsync
Promise<Number>更多信息

计算输入几何图形的长度。

更多信息geometryEngineAsync
Promise<Geometry>更多信息

从两个几何之间的交点创建新几何。

更多信息geometryEngineAsync
Promise<Boolean>更多信息

指示一个几何图形是否与另一个几何图形相交。

更多信息geometryEngineAsync
Promise<Boolean>更多信息

指示给定的几何图形在拓扑上是否简单。

更多信息geometryEngineAsync
Promise<NearestPointResult>更多信息

查找最接近指定点的几何图形的坐标。

更多信息geometryEngineAsync
Promise<NearestPointResult>更多信息

在距离指定点最近的几何图形上查找顶点。

更多信息geometryEngineAsync
Promise<NearestPointResult>更多信息

查找距指定点的给定距离内的所有顶点,从最近点到最远点排序,并将它们作为对象数组返回。

更多信息geometryEngineAsync
Promise<(Geometry|Geometry[])>更多信息

偏移操作创建的几何图形是距输入折线或面的恒定平面距离。

更多信息geometryEngineAsync
Promise<Boolean>更多信息

指示一个几何图形是否与另一个几何图形重叠。

更多信息geometryEngineAsync
Promise<Number>更多信息

计算输入几何图形的面积。

更多信息geometryEngineAsync
Promise<Number>更多信息

计算输入几何图形的长度。

更多信息geometryEngineAsync
Promise<Boolean>更多信息

指示给定的 DE-9IM 关系是否适用于两个几何。

更多信息geometryEngineAsync
Promise<Geometry>更多信息

将几何图形逆时针旋转指定的度数。

更多信息geometryEngineAsync
Promise<Geometry>更多信息

对几何执行简化操作,这将更改给定的几何图形,使其定义相对于其几何类型在拓扑上合法。

更多信息geometryEngineAsync
Promise<(Geometry|Geometry[])>更多信息

创建两个几何图形的对称差。

更多信息geometryEngineAsync
Promise<Boolean>更多信息

指示一个几何图形是否与另一个几何图形接触。

更多信息geometryEngineAsync
Promise<Geometry>更多信息

所有输入必须具有相同类型的几何,并且共享一个空间参考。

更多信息geometryEngineAsync
Promise<Boolean>更多信息

指示一个几何图形是否在另一个几何图形中。

更多信息geometryEngineAsync

方法详情

buffer(geometry, distance, unit, unionResults){Promise<(Polygon|Polygon[])>}

在输入几何图形周围的指定距离处创建平面(或欧氏)缓冲区面。

GeometryEngine 有两种用于缓冲客户端几何图形的方法:buffer 和 geodesicBuffer。谨慎决定使用哪种方法。作为一般规则,使用测地线缓冲区的前提是几何空间参考为 WGS84(wkid:4326) 或 Web 墨卡托。仅在尝试使用除 Web 墨卡托以外的投影坐标系缓冲几何时才使用缓冲区(此方法)。如果您需要使用 WGS84 以外的地理坐标系(wkid: 4326),使用 geometryService.buffer()

参数:

缓冲区输入几何。geometrydistance 参数必须指定为两个数组或两个非数组。切勿将一个指定为数组,另一个指定为非数组。

distance Number|Number[]

用于缓冲的指定距离。geometrydistance 参数必须指定为两个数组或两个非数组。切勿将一个指定为数组,另一个指定为非数组。当使用几何数组作为输入时,几何数组的长度不必等于 distance 数组的长度。例如,如果您传递一个包含四个几何的数组:[g1, g2, g3, g4] 和一个距离为:[d1] 的数组,则所有四个几何图形都将由单个距离值缓冲。如果改为使用包含三个距离的数组:[d1, d2, d3], g1 会被 d1 缓冲, g2 会被 d2 缓存,g3g4 都会被 d3 缓冲。几何数组的值将与距离数组中的值一一匹配,直到达到距离数组的最终值,在这种情况下,该值将应用于剩余的几何。

可选

距离的测量单位。默认为输入几何图形的单位。

unionResults Boolean
可选
默认值:false

确定输出几何图形是否应并集为单个多边形。

返回:
类型 说明
Promise<(Polygon|Polygon[])> 解析后,响应是生成的缓冲区。如果将几何图形数组用作输入,则结果将为数组。如果将单个几何图形输入到函数中,则该多边形将是单个面。
另请参阅:
示例:
const pointBuffer = await geometryEngineAsync.buffer(point, 1000, "feet");
clip(geometry, envelope){Promise<Geometry>}

按包络计算目标几何图形的裁剪几何图形。

参数:
geometry Geometry

要修剪的几何图形。

envelope Extent

用于剪辑的信封。

返回:
类型 说明
Promise<Geometry> 解析后,响应是剪裁的几何图形。
另请参阅:
示例:
// returns a new geometry of a polygon clipped by the views extent
const clippedGeometry = await geometryEngineAsync.clip(boundaryPolygon, view.extent);
contains(containerGeometry, insideGeometry){Promise<Boolean>}

指示一个几何图形是否包含另一个几何图形。

参数:
containerGeometry Geometry

测试几何与其他几何的“包含”关系。将此几何体视为 insideGeometry 的潜在“容器”。

insideGeometry Geometry

测试与 containerGeometry 的“内部”关系的几何。

返回:
类型 说明
Promise<Boolean> 如果 containerGeometry 包含 insideGeometry,则响应为 true
另请参阅:
示例:
// returns true or false for one geometry containing another
const isContained = await geometryEngineAsync.contains(extent, boundaryPolygon);
convexHull(geometry, merge){Promise<(Geometry|Geometry[])>}

计算一个或多个几何形状的凸面船体。凸面船体是包围一组几何体或顶点的最小凸面。输入可以是单个几何图形(如折线)或任何几何图形类型的数组。船体通常是多边形,但在退化情况下也可以是折线或点。

参数:

用于计算凸面船体的输入几何图形。如果指定了数组,则输入数组可以包含各种几何类型。提供数组时,输出也将是数组。

merge Boolean
可选
默认值:false

指示是否将输出合并到单个几何图形(通常是多边形)中。

返回:
类型 说明
Promise<(Geometry|Geometry[])> 解析为输入几何的凸包。这通常是一个多边形,但也可以是一条折线(如果输入是一组点或多段线形成一条直线)或一个点(在退化的情况下)。
另请参阅:
示例:
// returns the convex hull of a multipoint as a single polygon
const hull = await geometryEngineAsync.convexHull(multipoint);
// returns the convex hull of an array of points as a single polygon
const [ hull ] = await geometryEngineAsync.convexHull([ pointA, pointB, pointC ], true);
// returns the convex hull for each input line geometry as three polygons
const hulls = await geometryEngineAsync.convexHull([ lineA, lineB, lineC ]);
// returns the convex hull for all input line geometries as a single polygon
const [ hull ] = await geometryEngineAsync.convexHull([ lineA, lineB, lineC ], true);
// returns the convex hull for all input geometries as a single polygon
const [ hull ] = await geometryEngineAsync.convexHull([ point, line, polygon ], true);
crosses(geometry1, geometry2){Promise<Boolean>}

指示一个几何图形是否与另一个几何图形相交。

参数:
geometry1 Geometry

要交叉的几何图形。

geometry2 Geometry

正在交叉的几何图形。

返回:
类型 说明
Promise<Boolean> 如果geometry1 与geometry2 交叉,则返回 true
另请参阅:
示例:
// returns true or false if a line crosses a polygon
const isCrossed = await geometryEngineAsync.crosses(boundaryPolygon, polyline);
cut(geometry, cutter){Promise<Geometry[]>}

将输入折线或多边形与切割折线相交的位置拆分输入折线或多边形。对于折线,所有左侧切割都在第一个几何图形中组合在一起。右切割和重合切割在第二个几何图形中分组,每个未定义的切割以及任何未切割的部分都作为单独的多段线输出。对于多边形,所有左侧切割都在第一个多边形中,所有右侧切割都在第二个多边形中,并且每个未定义的切割以及切割后的任何剩余部分都作为单独的多边形输出。如果没有返回切割,则数组将为空。只有在产生了左切或右切并且在切割后有剩余部分,或者切割被限定在刀具的左右两侧时,才会产生未定义的切割。

参数:
geometry Geometry

要切割的几何图形。

cutter Polyline

用于切割几何图形的折线。

返回:
类型 说明
Promise<Geometry[]> 解析后,响应是通过使用刀具切割输入几何创建的几何数组。
另请参阅:
示例:
// returns array of cut geometries
const geometries = await geometryEngineAsync.cut(boundaryPolygon, polyline);
densify(geometry, maxSegmentLength, maxSegmentLengthUnit){Promise<Geometry>}

通过在现有顶点之间绘制点来致密化几何图形。

参数:
geometry Geometry

要致密化的几何图形。

maxSegmentLength Number

允许的最大段长度。必须是正值。

maxSegmentLengthUnit LinearUnits
可选

maxSegmentLength 的度量单位。默认为输入几何的单位。

返回:
类型 说明
Promise<Geometry> 解析后,响应是致密化的几何图形。
另请参阅:
示例:
// Returns a densified geometry
const geometry = await geometryEngineAsync.densify(boundaryPolygon, 25);
difference(inputGeometry, subtractor){Promise<Geometry>}

创建两个几何图形的差异。结果几何是 inputGeometry 不在减法器中的部分。减法器的维度必须等于或大于 inputGeometry 的维度。

参数:
inputGeometry Geometry|Geometry[]

要从中减去的输入几何。

subtractor Geometry

从 inputGeometry 中减去的几何图形。

返回:
类型 说明
Promise<Geometry> 解析后,响应是 inputGeometry 的几何减去减法器几何。
另请参阅:
示例:
// Creates a new geometry based on the
// difference of the two
const geometry = await geometryEngineAsync.difference(boundaryPolygon, buffers);
disjoint(geometry1, geometry2){Promise<Boolean>}

指示一个几何图形是否与另一个几何图形不相交(不以任何方式相交)。

参数:
geometry1 Geometry

测试与其他几何的“不相交”关系的基础几何。

geometry2 Geometry

测试与其他几何的“不相交”关系的比较几何。

返回:
类型 说明
Promise<Boolean> 如果 geometry1geometry2 不相交(不以任何方式相交),则响应为 true
另请参阅:
示例:
// returns true if a geometry is not contained in another.
// operates the opposite of contains
const isDisjointed = await geometryEngineAsync.disjoint(polygon, boundaryPolygon);
distance(geometry1, geometry2, distanceUnit){Promise<Number>}

计算两个几何图形之间的最短平面距离。距离以 distanceUnit 指定的线性单位报告,如果 distanceUnit 为空,则以输入几何的 spatialReference 单位报告。

要计算两点之间的测地线距离,首先使用两个兴趣点作为单条路径的起点和终点构造一条折线 。然后使用折线作为 geodesicLength() 方法的输入。

参数:
geometry1 Geometry

第一个输入几何。

geometry2 Geometry

第二个输入几何。

distanceUnit LinearUnits
可选

返回值的计量单位。默认为输入几何图形的单位。

返回:
类型 说明
Promise<Number> 解析时,响应是两个输入几何之间的距离。
另请参阅:
示例:
// returns numeric distance between two points
const totalDistance = await geometryEngineAsync.distance(point1, point2, "feet");
equals(geometry1, geometry2){Promise<Boolean>}

指示两个几何图形是否相等。

参数:
geometry1 Geometry

第一个输入几何。

geometry2 Geometry

第二个输入几何。

返回:
类型 说明
Promise<Boolean> 解析后,如果两个输入几何图形相等,则返回 true
另请参阅:
示例:
// returns true if two given geometries are equal
const isEqual = await geometryEngineAsync.equals(line1, line2);
extendedSpatialReferenceInfo(spatialReference){Promise<SpatialReferenceInfo>}

返回一个对象,其中包含有关输入空间参考的其他信息。

参数:
spatialReference SpatialReference

输入空间参考。

返回:
类型 说明
Promise<SpatialReferenceInfo> 解析为 SpatialReferenceInfo 对象。
另请参阅:
flipHorizontal(geometry, flipOrigin){Promise<Geometry>}

在水平轴上翻转几何图形。可以选择围绕一个点翻转。

参数:
geometry Geometry

要翻转的输入几何。

flipOrigin Point
可选

指向翻转几何图形。默认为几何体的质心。

返回:
类型 说明
Promise<Geometry> 解析后,响应是翻转的几何图形。
另请参阅:
示例:
// Returns a geometry flipped horizontally
const geometry = await geometryEngineAsync.flipHorizontal(boundaryPolygon);
flipVertical(geometry, flipOrigin){Promise<Geometry>}

在垂直轴上翻转几何图形。可以选择围绕一个点翻转。

参数:
geometry Geometry

要翻转的输入几何。

flipOrigin Point
可选

指向翻转几何图形。默认为几何体的质心。

返回:
类型 说明
Promise<Geometry> 解析后,响应是翻转的几何图形。
另请参阅:
示例:
// Returns a geometry flipped vertically
const geometry = await geometryEngineAsync.flipVertical(boundaryPolygon);
generalize(geometry, maxDeviation, removeDegenerateParts, maxDeviationUnit){Promise<Geometry>}

对游标中的几何图形执行概化操作。点和多点几何保持不变。包络线转换为多边形,然后进行概化。

参数:
geometry Geometry

要概化的输入几何图形。

maxDeviation Number

从广义几何到原始几何允许的最大偏差。

removeDegenerateParts Boolean
可选

当为 true 时,几何的退化部分将从输出中删除(可能不适合绘制)。

maxDeviationUnit LinearUnits
可选

最大偏差的测量单位。默认为输入几何的单位。

返回:
类型 说明
Promise<Geometry> 解析后,响应是广义几何。
另请参阅:
示例:
// Returns a generalized geometry
const geometry = await geometryEngineAsync.generalize(boundaryPolygon, 2.5, true, "miles");
geodesicArea(geometry, unit){Promise<Number>}

计算输入几何图形的面积。与 planarArea() 不同,geodesicArea 在执行此计算时会考虑地球的曲率。因此,当使用空间参考为 WGS84(wkid:4326) 或 Web 墨卡托,最佳实践是使用 geodesicArea() 计算面积。如果输入几何具有 Web 墨卡托以外的投影坐标系,请改用 planarArea()

此方法仅适用于 WGS84 (wkid: 4326) 和 Web 墨卡托 空间参考。

参数:
geometry Polygon

输入多边形。

可选

返回值的计量单位。默认为输入几何图形的单位。

返回:
类型 说明
Promise<Number> 解析后,响应是输入几何的区域。
另请参阅:
示例:
// Returns the numeric geodesic area of the given polygon
const area = await geometryEngineAsync.geodesicArea(boundaryPolygon, "square-miles");
geodesicBuffer(geometry, distance, unit, unionResults){Promise<(Polygon|Polygon[])>}

在输入几何图形周围的指定距离处创建流地缓冲区面。在计算距离时,此方法会考虑地球的曲率,从而在处理非常大的几何图形和/或在全球范围内空间变化的几何图形时提供高度准确的结果,其中一个投影坐标系无法准确绘制坐标和测量距离 对于所有几何形状。

此方法仅适用于 WGS84 (wkid: 4326) 和 Web 墨卡托 空间参考。通常,如果您的输入几何图形被分配了这两个空间参考之一,您应该始终使用 geodesicBuffer() 来获得这些几何图形的最准确结果。如果需要缓冲分配了Web Mercator 以外的投影坐标系,请改用 buffer()。如果输入几何具有 WGS84 以外的地理坐标系(wkid:4326),使用 geometryService.buffer()

参数:

缓冲区输入几何。geometrydistance 参数必须指定为两个数组或两个非数组。切勿将一个指定为数组,另一个指定为非数组。

distance Number|Number[]

用于缓冲的指定距离。geometrydistance 参数必须指定为两个数组或两个非数组。切勿将一个指定为数组,另一个指定为非数组。当使用几何数组作为输入时,几何数组的长度不必等于 distance 数组的长度。例如,如果您传递一个包含四个几何的数组:[g1, g2, g3, g4] 和一个距离为:[d1] 的数组,则所有四个几何图形都将由单个距离值缓冲。如果改为使用包含三个距离的数组:[d1, d2, d3], g1 会被 d1 缓冲, g2 会被 d2 缓存,g3g4 都会被 d3 缓冲。几何数组的值将与距离数组中的值一一匹配,直到达到距离数组的最终值,在这种情况下,该值将应用于剩余的几何。

可选

距离的测量单位。默认为输入几何图形的单位。

unionResults Boolean
可选
默认值:false

确定输出几何是否应合并为单个多边形。

返回:
类型 说明
Promise<(Polygon|Polygon[])> 解析后,响应是生成的缓冲区。如果将几何图形数组用作输入,则结果将为数组。如果将单个几何图形输入到函数中,则该多边形将是单个面。
另请参阅:
示例:
const pointButter = await geometryEngineAsync.geodesicBuffer(point, 1000, "kilometers");
geodesicDensify(geometry, maxSegmentLength, maxSegmentLengthUnit){Promise<Geometry>}

返回输入几何图形的测地线致密化版本。使用此函数沿大圆绘制几何线条。

参数:
geometry Polyline|Polygon

要致密化的折线或多边形。

maxSegmentLength Number

允许的最大分段长度(如果未提供 maxSegmentLengthUnit,则以米为单位)。这必须是正值。

maxSegmentLengthUnit LinearUnits
可选

maxSegmentLength 的度量单位。如果未提供,单位将默认为 meters

返回:
类型 说明
Promise<Geometry> 解析为致密几何。
另请参阅:
示例:
// lineGeom is a line geometry
const densifiedGeom = await geometryEngineAsync.geodesicDensify(lineGeom, 10000);
geodesicLength(geometry, unit){Promise<Number>}

计算输入几何图形的长度。与 planarLength() 相反,测地线长度()在执行此计算时会考虑地球的曲率。因此,当使用空间参考为 WGS84(wkid:4326) 或 Web 墨卡托,最佳实践是使用 geodesicLength() 计算长度。如果输入几何具有 Web 墨卡托以外的投影坐标系,请改用 planarLength()

此方法仅适用于 WGS84 (wkid: 4326) 和 Web 墨卡托 空间参考。

参数:
geometry Geometry

输入几何。

可选

返回值的计量单位。默认为输入几何的单位。

返回:
类型 说明
Promise<Number> 解析后,响应是输入几何的长度。
另请参阅:
示例:
// Returns the numeric geodesic length of the given line
const length = await geometryEngineAsync.geodesicLength(riverGeometry, "miles");
intersect(geometry1, geometry2){Promise<Geometry>}

从两个几何之间的交点创建新几何。如果输入几何具有不同的维度(即点 = 0;折线 = 1;多边形 = 2),则结果的维度将等于输入的最低维度下表描述了几何类型的各种组合的预期输出。请注意,geometry1geometry2 在此操作中可以互换,并且如果翻转将返回相同的结果。

几何 1 类型 几何 2 类型 结果几何类型
Polygon Polygon Polygon
Polygon Polyline Polyline
Polygon Point Point
Polyline Polyline Polyline
Polyline Point Point
Point Point Point

请注意,两条相交的折线不会返回“点”几何图形。相反,此函数将返回两个几何图形之间相等的折线路径。

参数:

输入几何或几何数组。

geometry2 Geometry

要与几何相交的几何图形1。

返回:
类型 说明
Promise<Geometry> 解析后,响应是输入几何的交点。
另请参阅:
示例:
// Creates a new geometry from the intersection of the two geometries
const intersecting = await geometryEngineAsync.intersect(boundaryPolygon, buffers);
intersects(geometry1, geometry2){Promise<Boolean>}

指示一个几何图形是否与另一个几何图形相交。

参数:
geometry1 Geometry

针对相交关系测试的几何图形与其他几何图形的关系。

geometry2 Geometry

相交的几何图形。

返回:
类型 说明
Promise<Boolean> 如果输入几何图形彼此相交,则响应为 true
另请参阅:
示例:
// returns true if two given geometries intersect each other
const isIntersecting = await geometryEngineAsync.intersects(boundaryPolygon, cityPolygon);
isSimple(geometry){Promise<Boolean>}

指示给定的几何图形在拓扑上是否简单。在简化的几何中,不会出现多边形环或折线路径重叠,也不会发生自相交。

参数:
geometry Geometry

输入几何。

返回:
类型 说明
Promise<Boolean> 解析后,如果几何是拓扑简单,则响应为 true
另请参阅:
示例:
// returns true if given geometry is simple
const simple = await geometryEngineAsync.isSimple(polyline);
nearestCoordinate(geometry, inputPoint){Promise<NearestPointResult>}

查找最接近指定点的几何图形的坐标。

参数:
geometry Geometry

要考虑的几何图形。

inputPoint Point

用于在几何中搜索最近坐标的点。

返回:
类型 说明
Promise<NearestPointResult> 解析为 NearestPointResult 的一个实例,其中包含与 inputPoint 最近的坐标。
另请参阅:
nearestVertex(geometry, inputPoint){Promise<NearestPointResult>}

在距离指定点最近的几何图形上查找顶点。

参数:
geometry Geometry

要考虑的几何图形。

inputPoint Point

用于在几何中搜索最近折点的点。

返回:
类型 说明
Promise<NearestPointResult> 解析为 NearestPointResult 的一个实例,其中包含离 inputPoint 最近的顶点。
另请参阅:
示例:
// Finds the nearest vertex of the polygon to the input point
const {
 coordinate,
 distance
} = await geometryEngineAsync.nearestVertex(boundaryPolygon, point);
nearestVertices(geometry, inputPoint, searchRadius, maxVertexCountToReturn){Promise<NearestPointResult>}

查找距指定点的给定距离内的所有顶点,从最近点到最远点排序,并将它们作为对象数组返回。

参数:
geometry Geometry

要考虑的几何图形。

inputPoint Point

要从中测量的点。

searchRadius Number

从输入点开始搜索的距离(以视图空间参考的单位计算)。

maxVertexCountToReturn Number

要返回的最大顶点数。

返回:
类型 说明
Promise<NearestPointResult> 解析为 NearestPointResult 的数组,其中包含距 inputPoint 最近的顶点。
另请参阅:
示例:
// Returns an array of the nearest vertices
const nearest = await geometryEngineAsync.nearestVertices(boundaryPolygon, point, 500, 2);
offset(geometry, offsetDistance, offsetUnit, joinType, bevelRatio, flattenError){Promise<(Geometry|Geometry[])>}

偏移操作创建的几何图形是距输入折线或面的恒定平面距离。它类似于缓冲,但会产生片面结果。

参数:

要偏移的几何图形。

offsetDistance Number

要从输入几何图形偏移的平面距离。如果 offsetDistance > 0,则偏移几何体构造到定向输入几何的右侧,如果 offsetDistance = 0,则几何图形中没有变化,否则它将构造到左侧。对于简单多边形,外环的方向是顺时针的,对于内环,它是逆时针的。因此,简单多边形的“右侧”始终是其内部。

offsetUnit LinearUnits
可选

偏移距离的测量单位。默认为输入几何图形的单位。

joinType String
可选

联接类型。

可能值:"round"|"bevel"|"miter"|"square"

bevelRatio Number
可选

joinType = 'miter' 时适用; bevelRatio 乘以偏移距离,结果确定斜接偏移交叉点在斜切之前可以定位多远。

flattenError Number
可选

joinType = 'round' 时适用; flattenError 确定结果段与真实圆弧相比的最大距离。该算法不会为每个轮连接生成超过大约 180 个顶点。

返回:
类型 说明
Promise<(Geometry|Geometry[])> 解析时,响应是偏移几何或几何。如果将几何图形数组用作输入,则结果将为数组。如果将单个几何输入到函数中,它将是单个几何。
另请参阅:
示例:
// Creates a new geometry offset from the provided geometry
const offset = await geometryEngineAsync.offset(boundaryPolygon, 500, "meters", "round");
overlaps(geometry1, geometry2){Promise<Boolean>}

指示一个几何图形是否与另一个几何图形重叠。

参数:
geometry1 Geometry

测试与其他几何的“重叠”关系的基础几何。

geometry2 Geometry

测试几何与其他几何的“重叠”关系的比较几何。

返回:
类型 说明
Promise<Boolean> 解析后,如果两个几何图形重叠,则响应为 true
另请参阅:
示例:
// returns true if one geometry overlaps another,
// but is not contained or disjointed
const isOverlapping = await geometryEngineAsync.overlaps(polygon, boundaryPolygon);
planarArea(geometry, unit){Promise<Number>}

计算输入几何图形的面积。与 geodesicArea() 不同,planeArea() 使用投影坐标执行此计算,并且不考虑地球的曲率。当使用空间参考为 WGS84(wkid:4326) 或 Web 墨卡托,最佳实践是使用 geodesicArea() 计算面积。如果输入几何具有 Web Mercator 以外的投影坐标系,请改用 planeArea()。

参数:
geometry Polygon

输入多边形。

可选

返回值的计量单位。默认为输入几何图形的单位。

返回:
类型 说明
Promise<Number> 解析后,响应是输入几何的区域。
另请参阅:
示例:
// Returns the numeric area of the given polygon
const area = await geometryEngineAsync.planarArea(boundaryPolygon, "square-miles");
planarLength(geometry, unit){Promise<Number>}

计算输入几何图形的长度。与 geodesicLength() 不同,planeLength() 使用投影坐标,并且在执行此计算时不考虑地球的曲率。当使用空间参考为 WGS84(wkid:4326) 或 Web 墨卡托,最佳实践是使用 geodesicLength() 计算长度。如果输入几何具有 Web Mercator 以外的投影坐标系,请改用 planeLength()。

参数:
geometry Geometry

输入几何。

可选

返回值的计量单位。默认为输入几何图形的单位。

返回:
类型 说明
Promise<Number> 解析后,响应是输入几何的长度。
另请参阅:
示例:
// Returns the numeric length of the given line
const length = await geometryEngineAsync.planarLength(riverGeometry, "miles");
relate(geometry1, geometry2, relation){Promise<Boolean>}

指示给定的 DE-9IM 关系是否适用于两个几何。

参数:
geometry1 Geometry

关系的第一个几何。

geometry2 Geometry

关系的第二个几何。

relation String

Dimensionally Extended 9 Intersection Model (DE-9IM) 矩阵关系(编码为字符串),用于测试两个几何的关系。该字符串包含 DE-9IM 矩阵中表示的每个交叉点的测试结果。每个结果都是字符串的一个字符,可以表示为数字(返回的最大维度:012),布尔值 (TF),或掩码字符(用于忽略结果:“*”)。例如,以下每个 DE-9IM 字符串代码都可用于测试多边形几何是否完全包含线几何:TTTFFTFFT(布尔值)、“T******FF*”(忽略不相关的交叉点)或“102FF*FF*”(维度形式)。 每个返回相同的结果。有关 DE-9IM 模型以及如何构造字符串代码的详细信息,请参阅本文

返回:
类型 说明
Promise<Boolean> 解析后,如果输入几何的关系成立,则响应为 true
另请参阅:
示例:
// returns true if the polygon geometry completely
// contains the polyline based on the DE-9IM string
const isRelated = await geometryEngineAsync.relate(polygon, polyline, "TTTFFTFFT");
rotate(geometry, angle, rotationOrigin){Promise<Geometry>}

将几何图形逆时针旋转指定的度数。旋转围绕质心或给定的旋转点。

参数:
geometry Geometry

要旋转的几何图形。

angle Number

以度为单位的旋转角度。

rotationOrigin Point
可选

指向旋转几何图形。默认为几何体的质心。

返回:
类型 说明
Promise<Geometry> 解析后,响应是旋转的几何图形。
另请参阅:
示例:
// Returns a geometry rotated by 45 degrees
const geometry = await geometryEngineAsync.rotate(boundaryPolygon, 45);
simplify(geometry){Promise<Geometry>}

对几何执行简化操作,这将更改给定的几何图形,使其定义相对于其几何类型在拓扑上合法。在简化操作结束时,多边形环或折线路径不会重叠,也不会发生自相交。

参数:
geometry Geometry

要简化的几何图形。

返回:
类型 说明
Promise<Geometry> 解析后,响应是简化的几何图形。
另请参阅:
示例:
// Topologically simplifies a geometry
const simplified = await geometryEngineAsync.simplify(polyline);
console.log(geometryEngine.isSimple(simplified)); // true
symmetricDifference(leftGeometry, rightGeometry){Promise<(Geometry|Geometry[])>}

创建两个几何图形的对称差。对称差异包括在任一集合中的部分,但不包括在两个集合中。

参数:
leftGeometry Geometry|Geometry[]

XOR 操作中的 Geometry 实例之一。

rightGeometry Geometry

XOR 操作中的 Geometry 实例之一。

返回:
类型 说明
Promise<(Geometry|Geometry[])> 解析后,响应是两个几何形状的对称差异。
另请参阅:
示例:
// Creates a new geometry based on the
// symmetric difference of the two
const geometry = await geometryEngineAsync.symmetricDifference(boundaryPolygon, buffers);
touches(geometry1, geometry2){Promise<Boolean>}

指示一个几何图形是否与另一个几何图形接触。

参数:
geometry1 Geometry

用于测试与其他几何的“接触”关系的几何。

geometry2 Geometry

要触摸的几何图形。

返回:
类型 说明
Promise<Boolean> 解析后,如果 geometry1 接触 geometry2,则响应为 true
另请参阅:
示例:
// returns true if the line vertex touches the edge of the polygon
const isTouching = await geometryEngineAsync.touches(polygon, line);
union(geometries){Promise<Geometry>}

所有输入必须具有相同类型的几何,并且共享一个空间参考。

参数:
geometries Geometry[]

要联合的几何数组。

返回:
类型 说明
Promise<Geometry> 解决后,响应是几何图形的并集。
另请参阅:
示例:
// pt1 and pt2 are point objects to union together
const response = await geometryEngine.union([pt1, pt2]);
within(innerGeometry, outerGeometry){Promise<Boolean>}

指示一个几何图形是否在另一个几何图形中。

参数:
innerGeometry Geometry

测试与其他几何的“内部”关系的基础几何。

outerGeometry Geometry

为“包含”与其他几何的关系而测试的比较几何。

返回:
类型 说明
Promise<Boolean> 解析后,如果 innerGeometryouterGeometry 内,则响应为 true
另请参阅:
示例:
// returns true if a geometry is completely within another
const isWithin = await geometryEngineAsync.within(polygon, boundaryPolygon);

类型定义

SpatialReferenceInfo

extendedSpatialReferenceInfo() 方法的返回对象。

属性:
tolerance Number

空间参考的 XY 容差。

unitBaseFactor Number

基础系数。

unitID Number

单位 ID。

unitSquareDerivative Number

平方导数。

unitType Number

单位类型。

另请参阅:

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.