当前位置: 首页>>编程示例 >>用法及示例精选 >>正文


JavaScript ArcGIS externalRenderers.renderCoordinateTransformAt用法及代码示例

基本信息

以下是所在类或对象的基本信息。

AMD: require(["esri/views/3d/externalRenderers"], (externalRenderers) => { /* code goes here */ });

ESM: import * as externalRenderers from "@arcgis/core/views/3d/externalRenderers";

对象: esri/views/3d/externalRenderers

自从:用于 JavaScript 4.0 的 ArcGIS API

用法说明

externalRenderers.renderCoordinateTransformAt函数(或属性)的定义如下:

renderCoordinateTransformAt (view, origin, srcSpatialReference, dest) {Number[]|Float32Array} static


计算一个 4x4 仿射变换矩阵,该矩阵构成从局部笛卡尔坐标系到虚拟世界坐标系的线性坐标变换。例如,此矩阵可用于将 3D 模型的顶点转换为渲染坐标系。

局部笛卡尔系统由其原点和以下轴定义定义:

  • X:东方
  • Y:北向
  • Z:海拔

externalRenderers-renderCoordinateTransformAt

view.viewingModeglobal 时,线性变换不考虑地球曲率或其他非线性投影方面。因此,生成的坐标只会在局部笛卡尔系统原点周围的小区域内显示正确。

origin 的允许空间参考取决于 viewingMode

  • global 模式下,它可以是 Web Mercator 或 WGS84。
  • local 模式下,它必须匹配 view.spatialReference

如果不满足这些条件,则不会向 dest 写入任何内容,并且该函数将返回 null

参数:

类型说明
view SceneView

将使用转换的视图。

本地笛卡尔坐标系中原点的全局坐标。

srcSpatialReference SpatialReference
可选的

原点坐标的空间参考。如果未定义,则使用view.spatialReference

可选的

对将存储 16 个矩阵元素的数组的引用。生成的矩阵遵循 OpenGL 约定,其中翻译分量占据第 13、14 和 15 个元素。如果未定义,则返回一个新创建的矩阵。

返回:

类型 说明
Number[] | Float32Array 如果操作成功,则返回对 dest 的引用,否则返回 null

例子:

// places a tetrahedron in New York
let verticesLocal = [[10, 10, 10], [10, −10, −10], [−10, 10, −10], [−10, −10, 10]],
  transformation = new Array(16),
  geographicCoordinates = [
  //  lon     lat   elevation
      -74,   40.71,    10]

externalRenderers.renderCoordinateTransformAt(view, geographicCoordinates, SpatialReference.WGS84, transformation);

let verticesGlobal = verticesLocal.map(function(vertexLocal) {
  // transform the coordinates with the computed transformation (using the synthax of glMatrix, see http://glmatrix.net)
  return vec3.transformMat4(new Array(3), vertexLocal, transformation);
});

相关用法


注:本文由纯净天空筛选整理自arcgis.com大神的英文原创作品 externalRenderers.renderCoordinateTransformAt。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。