用途:在 ArcGIS Maps SDK for JavaScript 中创建几何对象并执行空间运算,适用于空间计算、几何创建、缓冲、量测与投影等场景。
主要能力:几何类包括 Point、Polyline、Polygon、Multipoint、Extent、Circle、Mesh,可用普通对象自动转换或直接实例化。几何运算符按需单独导入以支持 tree-shaking,覆盖空间关系(contains、within、intersects、crosses、overlaps、touches、disjoint、equals 等,返回布尔值)、集合运算(union、intersection、difference、symmetricDifference、clip)、缓冲(bufferOperator、geodesicBufferOperator)、量测(面积、长度、距离及其大地测量版本)、几何变换(simplify、generalize、densify、offset、convexHull、centroid、labelPoint)、投影(projectOperator)以及 Mesh 三维几何创建。
使用方式:支持 ESM 直接导入,如 import Point from "@arcgis/core/geometry/Point.js"; 也支持 CDN 动态导入 $arcgis.import。部分运算符需先 await operator.load() 再调用 execute。投影示例:projectOperator.execute(geometry, { wkid: 4326 })。Web Mercator 转换可用 webMercatorUtils,JSON 互转可用 jsonUtils。
限制与注意:v5.0 起 geometryEngine 与 geometryEngineAsync 已移除(自 4.29 弃用),必须使用独立运算符。运算前需确保几何对象空间参考一致,否则先用 projectOperator 投影;地理坐标(WGS84/4326)应使用大地测量运算符,投影坐标系使用平面运算符;外环需顺时针、内环逆时针;用户绘制的自相交多边形应先 simplifyOperator 处理;部分运算符需先 load。
适用场景:点是否在多边形内、按距离缓冲后查询要素、合并多边形计算总面积、投影转换、三维网格创建等。坐标系统与投影细节、服务端几何运算、空间分析对象可参考相关技能。