projection

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

客户端投影引擎,用于将几何从一个 SpatialReference 转换为另一个空间参考。投影几何时,必须在输入几何上指定起始空间参考。您可以为投影操作指定特定的地理 (基准面) 变换,或者接受默认变换 (如果需要)。

已知限制

方法概述

名称 返回值类值 描述 对象
GeographicTransformation

返回用于将几何从输入空间参考转换为输出空间参考的默认地理变换。

更多详情
projection
GeographicTransformation[]

返回适用于将几何从输入空间参考转换为指定输出空间参考的所有地理变换的列表。

更多详情
projection
Boolean

指示是否已加载此模块的所有依赖项。

更多详情
projection
Promise

加载此模块的依赖项。

更多详情
projection
Geometry|Geometry[]

将几何或几何数组投影到指定的输出空间参考。

更多详情
projection

方法详细说明

getTransformation(inSpatialReference, outSpatialReference, extent){GeographicTransformation}

返回用于将几何从输入空间参考转换为输出空间参考的默认地理变换。当投影几何需要进行基准变换但未在 geographicTransformation 参数中指定时,可使用默认变换。

已知限制

  • 此方法仅返回基于方程的地理变换。
  • 地理变换将以其最大步骤数返回。目前,步骤数限制为 2。
参数
inSpatialReference SpatialReference autocast
自动转换自 Object

要从中投影几何的输入空间参考。这是输入几何的空间参考。

outSpatialReference SpatialReference autocast
自动转换自 Object

将几何转换到的空间参考。

extent Extent
optional

用于确定所返回转换的适用性的范围。如果有不同的空间参考,范围将被重新投影到 inSpatialReference

返回
类型 描述
GeographicTransformation 返回给定参数的默认地理变换。如果不需要转换或没有合适的转换,则返回 null
getTransformations(inSpatialReference, outSpatialReference, extent){GeographicTransformation[]}

返回适用于将几何从输入空间参考转换为指定输出空间参考的所有地理变换的列表。该列表按适用性降序排列,最合适的排在列表的第一位。

已知限制

  • 此方法返回所有合适的基于方程的地理变换。
  • 地理变换将以其最大步骤数返回。目前,步骤数限制为 2。
参数
inSpatialReference SpatialReference autocast
自动转换自 Object

几何当前正在使用的空间参考。

outSpatialReference SpatialReference autocast
自动转换自 Object

要将几何转换为的空间参考。

extent Extent
optional

用于确定所返回转换的适用性的范围。如有必要,范围将重新投影到输入空间参考。

返回
类型 描述
GeographicTransformation[] 返回一个数组,其中包含可用于在输入和输出空间参考之间转换几何的合适地理变换的最大数量。如果提供的范围不在输入空间参考的使用区域内,则该列表将为空。
示例
const cs1 = new SpatialReference({
  wkid: 4272 //PE_GCS_ED_1950
});

const cs2 = new SpatialReference({
  wkid: 4167
});

const extent = new Extent({
  xmin: -186.0,
  ymin: -42.0,
  xmax: -179.0,
  ymax: -38.0
});

const geogtrans = projection.getTransformations(cs1, cs2, extent);
geogtrans.forEach(function(geogtran, index) {
  geogtran.steps.forEach(function(step, index) {
    console.log("step wkid: ", step.wkid);
  });
});
isLoaded(){Boolean}

指示是否已加载此模块的所有依赖项。

返回
类型 描述
Boolean 如果已加载此模块的依赖项,则返回 true
load(){Promise}

加载此模块的依赖项。在投影几何之前,必须调用此方法。

返回
类型 描述
Promise 在加载依赖项时进行解析。
另请参阅
示例
projection.load().then(function() {
  // the projection module is loaded. Geometries can be re-projected.

 // projects each polygon in the array
 // project() will use the spatial reference of the first geometry in the array
 // as an input spatial reference. It will use the default transformation
 // if one is required when converting from input spatial reference
 // to the output spatial reference
 let outSpatialReference = new SpatialReference({
   wkid: 53008 //Sphere_Sinusoidal projection
 });
 polygonGraphics.forEach(function(graphic) {
   graphic.geometry = projection.project(graphic.geometry, outSpatialReference);
 });
});
project(geometry, outSpatialReference, geographicTransformation){Geometry|Geometry[]}

将几何或几何数组投影到指定的输出空间参考。如果未明确提供,但又需要,则可使用默认地理变换。使用 getTransformation() 方法可查找给定输入和输出空间参考默认使用的转换。

请注意,在尝试投影几何之前,必须加载此模块。

已知限制

此方法使用第一个几何的空间参考作为输入空间参考。因此,数组中的所有几何必须具有相同的空间参考。

参数

要进行投影的一个或多个几何。

outSpatialReference SpatialReference autocast
自动转换自 Object

要将几何坐标转换为的空间参考。

geographicTransformation GeographicTransformation
optional

用于变换几何的地理变换。指定此参数可在默认变换不适合您的要求时投影几何。

返回
类型 描述
Geometry | Geometry[] 如果将几何数组用作输入,则结果将为数组。如果将单个几何用作输入,则它将是单个几何。
示例
// projects each polygon in the array
// project() will use the spatial reference of the first geometry in the array
// as an input spatial reference. It will use the default transformation
// if one is required when converting from input spatial reference
// to the output spatial reference
let outSpatialReference = new SpatialReference({
  wkid: 53008 //Sphere_Sinusoidal projection
});
polygonGraphics.forEach(function(graphic) {
  graphic.geometry = projection.project(graphic.geometry, outSpatialReference);
});
let outSpatialReference = {
  wkid: 54044
};
// projects an array of points
let projectedPoints = projection.project(wgsPoints, outSpatialReference);
projectedPoints.forEach(function(point) {
  console.log(point.x, point.y);
});

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