geometryService

AMD: require(["geoscene/rest/geometryService"], (geometryService) => { /* code goes here */ });
ESM: import * as geometryService from "@geoscene/core/rest/geometryService";
类: geoscene/rest/geometryService
起始版本:GeoScene Maps SDK for JavaScript 4.19

使用 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 公开的几何服务资源。它用于对几何执行各种操作,如投影、简化、缓冲区和关系。

建议您在应用程序中使用几何服务函数。有关详细信息,请查看服务器资源中心中的关于几何服务帮助主题。sampleserver6.arcgisonline.com 上托管有一个几何服务,以支持在资源中心发布的示例。但是,我们不能保证该服务全天候可用。

GeometryService 中的许多函数都可通过 GeometryEngine 在客户端使用。有关更多详情,请参阅 GeometryEngine

另请参阅

方法概述

名称 返回值类值 描述 对象
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。sampleserver6.geosceneonline.cn 上具有一个托管的几何服务,用于开发和测试目的。

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>}

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

参数
url String

GeometryService 的 GeoScene Server REST 服务 URL。sampleserver6.geosceneonline.cn 上具有一个托管的几何服务,用于开发和测试目的。

polygons Polygon[]

多边形数组,用于为新多边形提供边界。

polylines Polyline[]

折线数组,用于为新多边形提供一些边界。

requestOptions Object
optional

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

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

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

参数
url String

GeometryService 的 GeoScene Server REST 服务 URL。sampleserver6.geosceneonline.cn 上具有一个托管的几何服务,用于开发和测试目的。

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。sampleserver6.geosceneonline.cn 上具有一个托管的几何服务,用于开发和测试目的。

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。sampleserver6.geosceneonline.cn 上具有一个托管的几何服务,用于开发和测试目的。

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。sampleserver6.geosceneonline.cn 上具有一个托管的几何服务,用于开发和测试目的。

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。sampleserver6.geosceneonline.cn 上具有一个托管的几何服务,用于开发和测试目的。

geometries Geometry[]

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

geometry Geometry

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

requestOptions Object
optional

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

返回
类型 描述
Promise<Geometry> 解析后,返回定义输入要素差异的几何数组。
另请参阅
distance(url, distanceParameters, requestOptions){Promise<number>}

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

参数
url String

GeometryService 的 GeoScene Server REST 服务 URL。sampleserver6.geosceneonline.cn 上具有一个托管的几何服务,用于开发和测试目的。

distanceParameters DistanceParameters

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

requestOptions Object
optional

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

返回
类型 描述
Promise<number> 解析后,返回一个数字,表示输入几何之间的距离。
另请参阅
fromGeoCoordinateString(url, params, requestOptions){Promise}

根据用户提供的转换类型和空间参考,将一组熟知字符串转换为 xy 坐标。仅适用于 GeoScene Server 1.3 或更高版本。

参数
url String

GeometryService 的 GeoScene Server REST 服务 URL。sampleserver6.geosceneonline.cn 上具有一个托管的几何服务,用于开发和测试目的。

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。sampleserver6.geosceneonline.cn 上具有一个托管的几何服务,用于开发和测试目的。

generalizeParameters GeneralizeParameters

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

requestOptions Object
optional

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

返回
类型 描述
Promise<Geometry[]> 解析后,返回定义输入的概化几何的几何数组。
另请参阅
intersect(url, geometries, intersector, requestOptions){Promise<Geometry[]>}

相交操作是在几何服务资源上执行的。此操作构造了一组几何和另一几何之间的集论交集。

参数
url String

GeometryService 的 GeoScene Server REST 服务 URL。sampleserver6.geosceneonline.cn 上具有一个托管的几何服务,用于开发和测试目的。

geometries Geometry[]

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

intersector Geometry

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

requestOptions Object
optional

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

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

为每个指定的多边形计算一个内部点。用户可以使用这些内部点来标记多边形。

参数
url String

GeometryService 的 GeoScene Server REST 服务 URL。sampleserver6.geosceneonline.cn 上具有一个托管的几何服务,用于开发和测试目的。

polygons Polygon[]

要处理的多边形图形。

requestOptions Object
optional

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

返回
类型 描述
Promise<Point> 解析后,返回定义可用于标记的输入多边形内部点的 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",  // autocasts as 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。sampleserver6.geosceneonline.cn 上具有一个托管的几何服务,用于开发和测试目的。

lengthsParameters LengthsParameters

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

requestOptions Object
optional

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

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

基于平面距离构造输入几何的偏移。如果 offsetDistance 为正,则构造的偏移将在几何的右侧。左侧偏移使用负值构造。

参数
url String

GeometryService 的 GeoScene Server REST 服务 URL。sampleserver6.geosceneonline.cn 上具有一个托管的几何服务,用于开发和测试目的。

offsetParameters OffsetParameters

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

requestOptions Object
optional

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

返回
类型 描述
Promise<Geometry[]> 解析后,返回与输入偏移指定距离的几何数组。
另请参阅
project(url, projectParameters, requestOptions){Promise<Geometry[]>}

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

参数
url String

GeometryService 的 GeoScene Server REST 服务 URL。sampleserver6.geosceneonline.cn 上具有一个托管的几何服务,用于开发和测试目的。

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。sampleserver6.geosceneonline.cn 上具有一个托管的几何服务,用于开发和测试目的。

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。sampleserver6.geosceneonline.cn 上具有一个托管的几何服务,用于开发和测试目的。

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 坐标数组转换为熟知的字符串。仅适用于 GeoScene Server 1.3 或更高版本。

参数
url String

GeometryService 的 GeoScene Server REST 服务 URL。sampleserver6.geosceneonline.cn 上具有一个托管的几何服务,用于开发和测试目的。

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。 。

rounding Boolean
optional
默认值:true

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

addSpaces Boolean
optional

如果为 true,则在字符串的组件之间添加空格。addSpaces 参数仅适用于转换类型 mgrsusngutmmgrs 的默认值为 falseusngutm 的默认值为 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。sampleserver6.geosceneonline.cn 上具有一个托管的几何服务,用于开发和测试目的。

trimExtendParameters TrimExtendParameters

trimExtend 操作的输入参数。

requestOptions Object
optional

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

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

在几何服务资源中执行联合操作。此操作将构造输入数组中几何的集论联合。所有输入必须为相同类型。

参数
url String

GeometryService 的 GeoScene Server REST 服务 URL。sampleserver6.geosceneonline.cn 上具有一个托管的几何服务,用于开发和测试目的。

geometries Geometry[]

要合并的几何的数组。

requestOptions Object
optional

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

返回
类型 描述
Promise<Geometry> 解析后,返回表示输入要素并集的几何
另请参阅

您的浏览器不再受支持。请升级您的浏览器以获得最佳体验。请参阅浏览器弃用帖子以获取更多信息