geometryService

AMD: require(["geoscene/rest/geometryService"], (geometryService) => { /* 代码 */ });
ESM: import * as geometryService from "@geoscene/core/rest/geometryService";
Object: geoscene/rest/geometryService
起始版本: GeoScene API for JavaScript 4.22

在使用 TypeScript 开发时,导入 geometryService 类很方便。但不要像这样一次导入一个内容元素:

import { buffer } from "geoscene/rest/geometryService/buffer";
import { cut } from "geoscene/rest/geometryService/cut";
import { project } from "geoscene/rest/geometryService/project";

您可以使用单行导入此模块的内容:

import { buffer, cut, project } from "geoscene/rest/geometryService";

表示 GeoScene REST API 公开的几何服务资源。它用于对几何图形执行各种操作,例如投影、简化、缓冲和关系。

建议您在应用程序中使用几何服务功能。有关详细信息,请查看服务器资源中心中的关于几何服务帮助主题。

GeometryService 中的许多功能都可以在客户端使用 GeometryEngine有关详细信息,请参阅 GeometryEngine

示例:

方法列表

属性 返回值类型 描述 Object
Promise<Object>更多信息

计算输入多边形的面积和长度。

更多信息geometryService
Promise<Polygon>更多信息

自动完成面操作将在几何服务资源上执行

更多信息geometryService
Promise<Polygon[]>更多信息

在给定几何图形周围的指定距离处创建缓冲区多边形。

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

凸包操作是在几何服务资源上执行的。

更多信息geometryService
Promise<Object>更多信息

切割操作在几何服务资源上执行。

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

增密操作在几何服务资源上执行。

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

差分操作在几何服务资源上执行。

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

测量几何之间的平面或测地线距离。

更多信息geometryService
Promise更多信息

根据用户提供的转换类型和空间参考,将已知字符串数组转换为 xy 坐标。

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

使用 Douglas-Peucker 算法概化输入几何。

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

相交操作在几何服务资源上执行。

更多信息geometryService
Promise<Point>更多信息

为每个指定的多边形计算一个内部点。

更多信息geometryService
Promise<Object>更多信息

当几何类型为折线时,获取几何的长度

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

基于平面距离构造输入几何的偏移。

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

将一组几何体投影到新的空间参考。

更多信息geometryService
Promise<Polygon[]>更多信息

从属于指定关系的输入几何数组计算几何对的集合。

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

重塑操作在几何服务资源上执行。

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

更改给定的几何图形以使其定义相对于其几何类型在拓扑上合法。

更多信息geometryService
Promise<String[]>更多信息

根据用户提供的转换类型和空间参考,将 XY 坐标数组转换为字符串。

更多信息geometryService
Promise<Polyline[]>更多信息

使用用户指定的引导折线修剪或扩展输入的折线。

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

联合操作在几何服务资源上执行。

更多信息geometryService

方法详细说明

areasAndLengths(url, areasAndLengthsParameters, requestOptions){Promise<Object>}

计算输入多边形的面积和长度。

参数:
url String

GeometryService 的 GeoScene Server REST 服务 URL。

areasAndLengthsParameters AreasAndLengthsParameters

指定输入多边形以及可选的线性和面积单位。

requestOptions Object
optional

用于数据请求的附加选项(将覆盖构造期间定义的 requestOptions)。

返回值:
类型 描述
Promise<Object> 解析后,返回具有以下规范的对象:
{
  areas: <Number[]>,
  lengths: <Number[]>
}
示例代码:
simplify(url, { polygons: [polygon] }).then(function(simplifiedGeometries){
  const areasAndLengthParams = new AreasAndLengthsParameters({
    areaUnit: "square-kilometers",
    lengthUnit: "kilometers",
    polygons: simplifiedGeometries
  });
  areasAndLengths(url, areasAndLengthParams).then(function(results){
    console.log("area: ", results.areas[0]);
    console.log("length: ", results.lengths[0]);
  });
});
autoComplete(url, polygons, polylines, requestOptions){Promise<Polygon>}

自动完成面操作在几何服务资源上执行。 自动完成面操作简化了构建与其他多边形相邻的新多边形的过程,构造了填充现有多边形和一组折线之间间隙的多边形。

参数:
url String

GeometryService 的 GeoScene Server REST 服务 URL。

polygons Polygon[]

为新多边形提供边界的多边形数组。

polylines Polyline[]

为新多边形提供剩余边界的折线数组。

requestOptions Object
optional

用于数据请求的附加选项(将覆盖构造期间定义的 requestOptions)。

返回值:
类型 描述
Promise<Polygon> 解析后,返回一个几何数组,其中包含由一组折线填充的间隙的面。
buffer(url, bufferParameters, requestOptions){Promise<Polygon[]>}

在给定几何图形周围的指定距离处创建缓冲区多边形。

参数:
url String

GeometryService 的 GeoScene Server REST 服务 URL。

bufferParameters BufferParameters

指定输入几何、缓冲距离和其他选项。

requestOptions Object
optional

用于数据请求的附加选项(将覆盖构造期间定义的 requestOptions)。

返回值:
类型 描述
Promise<Polygon[]> 返回表示输入缓冲区域的几何数组。
示例:
示例代码:
const webMerPoint = webMercatorUtils.geographicToWebMercator(point);
const params = new BufferParameters({
  distances: [560],
  unit: "kilometers",
  geodesic: true,
  bufferSpatialReference: new SpatialReference({wkid: 3857}),
  outSpatialReference: view.spatialReference,
  geometries: [webMerPoint]
});

buffer(url, params).then(function(results){
  bufferLayer.add(new Graphic({
     geometry: results[0]
  }));
});
convexHull(url, geometries, requestOptions){Promise<Geometry>}

凸包操作是在几何服务资源上执行的。它返回输入几何的凸包。输入几何可以是点、多点、折线或多边形。外边界通常是多边形,但在某些的情况下也可以是折线或点。

参数:
url String

GeometryService 的 GeoScene Server REST 服务 URL。

geometries Geometry[]

要创建其凸包的几何图形。

requestOptions Object
optional

用于数据请求的附加选项(将覆盖构造期间定义的 requestOptions)。

返回值:
类型 描述
Promise<Geometry> 解析后,返回表示输入凸包的几何
示例:
示例代码:
const geoms = pointLayer.graphics.map(function(item, i){
  return webMercatorUtils.geographicToWebMercator(item.geometry);
});
convexHull(url, { geometries: geoms.toArray() }).then(function(result){
  convexLayer.add(new Graphic({
    geometry: result
  }));
},function(error){
   console.log("error occured", error)
});
cut(url, geometries, cutter, requestOptions){Promise<Object>}

切割操作在几何服务资源上执行。此操作在输入折线或多边形与切割折线相交处拆分。

参数:
url String

GeometryService 的 GeoScene Server REST 服务 URL。

geometries Geometry[]

要切割的折线或多边形。

cutter Polyline

折线将用于将目标分割成与目标相交的部分。

requestOptions Object
optional

用于数据请求的附加选项(将覆盖构造期间定义的 requestOptions)。

返回值:
类型 描述
Promise<Object> 解析后,返回具有以下规范的对象:
{
  cutIndexes: <Number[]>,
  geometries: <Geometry[]>
}
示例:
densify(url, densifyParameters, requestOptions){Promise<Geometry[]>}

增密操作在几何服务资源上执行。此操作通过在现有顶点之间绘制点来增密几何。

参数:
url String

GeometryService 的 GeoScene Server REST 服务 URL。

densifyParameters DensifyParameters

DensifyParameters 对象包含 geometriesgeodesiclengthUnitmaxSegmentLength 属性。

requestOptions Object
optional

用于数据请求的附加选项(将覆盖构造期间定义的 requestOptions)。

返回值:
类型 描述
Promise<Geometry[]> 解析后,返回定义增密输入要素的几何数组。
示例:
示例代码:
const params = new DensifyParameters({
  geodesic: true,
  lengthUnit: "meters",
  maxSegmentLength: 30,
  geometries: [polygon]
});

densify(url, params).then(function(results){
  layer.add(new Graphic({
    geometry: results[0]
  }));
}.catch(function(error){
   console.log("error occured", error)
});
difference(url, geometries, geometry, requestOptions){Promise<Geometry>}

差分操作是在几何服务资源上执行的。该操作构建了一组几何和另一个几何之间的差集。

参数:
url String

GeometryService 的 GeoScene Server REST 服务 URL。

geometries Geometry[]

点、多点、折线或面的数组。

geometry Geometry

任何类型的单个几何,其尺寸等于或大于几何中的项。

requestOptions Object
optional

用于数据请求的附加选项(将覆盖构造期间定义的 requestOptions)。

返回值:
类型 描述
Promise<Geometry> 解析后,返回定义输入要素差异的几何数组。
示例:
distance(url, distanceParameters, requestOptions){Promise<Number>}

测量几何之间的平面或测地线距离。

参数:
url String

GeometryService 的 GeoScene Server REST 服务 URL。

distanceParameters DistanceParameters

设置需要测量的输入几何、距离单位和其他参数。

requestOptions Object
optional

用于数据请求的附加选项(将覆盖构造期间定义的 requestOptions)。

返回值:
类型 描述
Promise<Number>

解析后,返回一个数字,表示输入几何之间的距离。

示例:
fromGeoCoordinateString(url, params, requestOptions){Promise}

根据用户提供的转换类型和空间参考,将已知字符串数组转换为 xy 坐标。

参数:
url String

GeometryService 的 GeoScene Server REST 服务 URL。

params Object

 params 对象的结构,请参阅下面的对象规格表

规范:
strings String[]

conversionType指定的格式化字符串数组 。例子: ["01N AA 66021 00000" , "11S NT 00000 62155" , "31U BT 94071 65288"]

要将输入字符串坐标转换为的空间参考或已知 ID。

conversionType String
optional
默认值: mrgs

输入字符串的转换类型。

可选值:"mrgs"|"usng"|"utm"|"geo-ref"|"gars"|"dms"|"ddm"|"dd"

conversionMode String
optional

mrgs、utm 和 gars 转换类型的转换选项。 有关可能的值及其描述,请参阅 GeoScene REST API 文档

requestOptions Object
optional

用于数据请求的附加选项(将覆盖构造期间定义的 requestOptions)。

返回值:
类型 描述
Promise 解析后,返回一个 XY 坐标对数组。
示例代码:
params = {
  conversionType: "geo-ref",
  sr: "4326",
  strings: ["ZGQA5999999900000000","EJCE3864000012728040","NKBH1196052000273924" ]
};

fromGeoCoordinateString(url, params).then(function(results){
  console.log("results", results);
}, function(error){
    console.log(error);
});
generalize(url, generalizeParameters, requestOptions){Promise<Geometry[]>}

使用 Douglas-Peucker 算法概化输入几何。

参数:
url String

GeometryService 的 GeoScene Server REST 服务 URL。

generalizeParameters GeneralizeParameters

要概化的几何数组和最大偏差。可选择设置偏差单位。

requestOptions Object
optional

用于数据请求的附加选项(将覆盖构造期间定义的 requestOptions)。

返回值:
类型 描述
Promise<Geometry[]> 解析后,返回定义输入的广义几何的几何数组。
示例:
intersect(url, geometries, intersector, requestOptions){Promise<Geometry[]>}

相交操作在几何服务资源上执行。 此操作在几何数组和另一个几何之间构建交集。

参数:
url String

GeometryService 的 GeoScene Server REST 服务 URL。

geometries Geometry[]

点、多点、折线或多边形的数组。

intersector Geometry

任何类型的单个几何,其尺寸等于或大于 geometries 中的项目。

requestOptions Object
optional

用于数据请求的附加选项(将覆盖构造期间定义的 requestOptions)。

返回值:
类型 描述
Promise<Geometry[]> 解析后,返回定义输入要素交集的几何数组。
示例:
labelPoints(url, polygons, requestOptions){Promise<Point>}

为每个指定的面计算一个内部点。客户端可以使用这些内部点来标记面。

参数:
url String

GeometryService 的 GeoScene Server REST 服务 URL。

polygons Polygon[]

要处理的多边形图形。

requestOptions Object
optional

用于数据请求的附加选项(将覆盖构造期间定义的 requestOptions)。

返回值:
类型 描述
Promise<Point> 解析后,返回定义可用于标记的输入多边形内部点的几何数组。
示例代码:
if (geometries[0].rings.length > 0) {
 labelPoints(url, { geometries: geometries }).then(function(labelPoints) {
  const graphics = labelPoints.map(function(labelPoint, i){
      const textSymbol = {
        type: "text",  // 转换成 new TextSymbol()
        color: "white",
        haloColor: "black",
        haloSize: "1px",
        text: "X: " + number.format(labelPoint.x) + ", Y: " + number.format(labelPoint.y),
        xoffset: 3,
        yoffset: 3,
        font: {  // autocast as new Font()
          size: 12,
          family: "sans-serif",
          weight: "bolder"
        }
      };
    const labelPointGraphic = new Graphic({
      geometry: labelPoint,
      symbol: textSymbol
    });
    return labelPointGraphic;
  });

  // add the labels to the map
  view.graphics.addMany(graphics);
 });
}
lengths(url, lengthsParameters, requestOptions){Promise<Object>}

当几何类型为折线时,获取几何的长度。

参数:
url String

GeometryService 的 GeoScene Server REST 服务 URL。

lengthsParameters LengthsParameters

指定折线以及可选的长度单位和测地线长度选项。

requestOptions Object
optional

用于数据请求的附加选项(将覆盖构造期间定义的 requestOptions)。

返回值:
类型 描述
Promise<Object> 解析后,返回一个包含 lengths 属性的对象,该属性是一个数字数组,每个数字代表输入行的长度。请参阅下面的对象规范:
{
  lengths: 
}
offset(url, offsetParameters, requestOptions){Promise<Geometry[]>}

基于平面距离构造输入几何的偏移。如果偏移距离为正,则构造的偏移量将位于几何图形的右侧。左侧偏移量是用负值构造的。

参数:
url String

GeometryService 的 GeoScene Server REST 服务 URL。

offsetParameters OffsetParameters

将几何图形设置为偏移、距离和单位。

requestOptions Object
optional

用于数据请求的附加选项(将覆盖构造期间定义的 requestOptions)。

返回值:
类型 描述
Promise<Geometry[]> 解析后,返回距离输入指定距离处偏移的几何数组。
示例:
project(url, projectParameters, requestOptions){Promise<Geometry[]>}

将一组几何体投影到新的空间参考。

参数:
url String

GeometryService 的 GeoScene Server REST 服务 URL。

projectParameters ProjectParameters

输入投影参数。

requestOptions Object
optional

用于数据请求的附加选项(将覆盖构造期间定义的 requestOptions)。

返回值:
类型 描述
Promise<Geometry[]> 解析后,返回投影几何的数组。
示例代码:
const geomSer = new GeometryService( ... );
const params = new ProjectParameters({
  geometries: [point],
  outSpatialReference: outSpatialReference,
  transformation: transformation
});

project(url, params).then( ... );
relation(url, relationParameters, requestOptions){Promise<Polygon[]>}

从属于指定关系的输入几何图形数组计算几何图形对集。假设两个数组位于同一个空间参考中。这些关系在 2D 中进行评估。不使用 Z 坐标,且不能在数组中混合几何类型。

参数:
url String

GeometryService 的 GeoScene Server REST 服务 URL。

relationParameters RelationParameters

执行比较所需的参数集。

requestOptions Object
optional

用于数据请求的附加选项(将覆盖构造期间定义的 requestOptions)。

返回值:
类型 描述
Promise<Polygon[]> 解析后,返回满足关系 的几何数组。
示例:
示例代码:
const geometryService = new GeometryService( ... );

const relationParams = new RelationParameters({
  geometries1: geometries[0],
  geometries2: geometries[1],
  relation: "within"
});

relation(url, relationParams).then( ... );
reshape(url, geometry, reshaper, requestOptions){Promise<Geometry>}

重塑操作在几何服务资源上执行。它使用重塑线重塑折线的一部分

参数:
url String

GeometryService 的 GeoScene Server REST 服务 URL。

geometry Geometry

要重塑的折线或多边形。

reshaper Polyline

执行重塑的单部分多段线。

requestOptions Object
optional

用于数据请求的附加选项(将覆盖构造期间定义的 requestOptions)。

返回值:
类型 描述
Promise<Geometry> 解析后,返回定义重塑输入特征的几何。
simplify(geometries, requestOptions){Promise<Geometry[]>}

更改给定的几何图形以使其定义相对于其几何类型在拓扑上合法。

参数:
geometries Geometry[]

要简化的几何形状。

requestOptions Object
optional

用于数据请求的附加选项(将覆盖构造期间定义的 requestOptions)。

返回值:
类型 描述
Promise<Geometry[]> 解析后,返回简化几何的数组。
示例:
示例代码:
geometryService.simplify([polygonGraphic.geometry]).then( ... );
toGeoCoordinateString(url, params, requestOptions){Promise<String[]>}

根据用户提供的转换类型和空间参考,将 XY 坐标数组转换为众所周知的字符串。

参数:
url String

GeometryService 的 GeoScene Server REST 服务 URL。

params Object

有关 params 对象的结构,请参阅下面的对象规格表。

规范:

要转换的 XY 坐标的空间参考(或空间参考的 WKID)。

coordinates Number[][]

要转换的 XY 坐标数组(JSON 格式)。

conversionType String

输入字符串的转换类型。

可选值:"mgrs"|"usng"|"utm"|"geo-ref"|"gars"|"dms"|"ddm"|"dd"

conversionMode String
optional

mgrs 和 utm 转换类型的转换选项。 有关有效的转换模式及其描述,请参阅 GeoScene REST API 文档

numOfDigits Number
optional

为字符串中的每个数字部分输出的位数。默认值取决于 conversionType。有关默认值,请参阅 GeoScene REST API 文档

rounding Boolean
optional
默认值: true

如果true,则字符串的数字部分将四舍五入到 numOfDigits 指定的最接近的整数幅度。否则,字符串的数字部分将被截断。舍入参数仅适用于转换类型 mgrsusnggeo-ref

addSpaces Boolean
optional

如果true,则在字符串的组件之间添加空格。 addSpaces 参数仅适用于转换类型 mgrs, usngutm。 mgrs 默认值为 false ,  usng 和 utm 的默认值为 true

requestOptions Object
optional

用于数据请求的附加选项(将覆盖构造期间定义的 requestOptions)。

返回值:
类型 描述
Promise<String[]> 解析后,返回一个字符串数组。
示例代码:
const geomSer = new GeometryService( ... );
const params = {
  sr: "4326",
  coordinates: [ [180,0] , [-117,34] , [0,52] ],
  conversionType: "mgrs",
  conversionMode: "mgrsNewWith180InZone01",
  numOfDigits: 8
};

toGeoCoordinateString(url, params).then(function(response){
  // When resolved, these strings are stored in response object
  // response.strings[0] = "01N AA 66021443 00000000"
  // response.strings[1] = "11S NT 00000000 62155978"
  // response.strings[2] = "31U BT 94071081 65288255"
});
trimExtend(url, trimExtendParameters, requestOptions){Promise<Polyline[]>}

使用用户指定的引导折线修剪或扩展输入折线。修剪要素时,切割线左侧的部分将保留在输出中,其余部分将被丢弃。如果输入折线未切割或延伸,则将空折线添加到输出数组。

参数:
url String

GeometryService 的 GeoScene Server REST 服务 URL。

trimExtendParameters TrimExtendParameters

trimExtend 操作的输入参数。

requestOptions Object
optional

用于数据请求的附加选项(将覆盖构造期间定义的 requestOptions)。

返回值:
类型 描述
Promise<Polyline[]> 解析后,返回修剪或扩展几何的数组。
union(url, geometries, requestOptions){Promise<Geometry>}

联合操作在几何服务资源上执行。此操作构造输入数组中几何的并集。所有输入必须是同一类型。

参数:
url String

GeometryService 的 GeoScene Server REST 服务 URL。

geometries Geometry[]

要联合的几何图形的数组。

requestOptions Object
optional

用于数据请求的附加选项(将覆盖构造期间定义的 requestOptions)。

返回值:
类型 描述
Promise<Geometry> 解析后,返回一个几何图形,表示输入要素的联合。
示例:

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