-
renderCoordinateTransformAt
(view, origin, srcSpatialReference, dest)
{Number[]|Float32Array}
static
计算一个 4x4 仿射变换矩阵,该矩阵构成从局部笛卡尔坐标系到虚拟世界坐标系的线性坐标变换。例如,此矩阵可用于将 3D 模型的顶点转换为渲染坐标系。
局部笛卡尔系统由其原点和以下轴定义定义:
- X:东方
- Y:北向
- Z:海拔
当 view.viewingMode 为
global
时,线性变换不考虑地球曲率或其他非线性投影方面。因此,生成的坐标只会在局部笛卡尔系统原点周围的小区域内显示正确。origin
的允许空间参考取决于 viewingMode :- 在
global
模式下,它可以是 Web Mercator 或 WGS84。 - 在
local
模式下,它必须匹配 view.spatialReference 。
如果不满足这些条件,则不会向
dest
写入任何内容,并且该函数将返回null
。参数:
类型 说明 view SceneView将使用转换的视图。
origin Number[]|Float32Array本地笛卡尔坐标系中原点的全局坐标。
srcSpatialReference SpatialReference可选的 原点坐标的空间参考。如果未定义,则使用
view.spatialReference
。dest Number[]|Float32Array可选的 对将存储 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); });
基本信息
以下是所在类或对象的基本信息。
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
函数(或属性)的定义如下:
相关用法
- JavaScript ArcGIS externalRenderers.toRenderCoordinates用法及代码示例
- JavaScript ArcGIS externalRenderers.fromRenderCoordinates用法及代码示例
- JavaScript eval()用法及代码示例
- JavaScript escape()用法及代码示例
- JavaScript ArcGIS SceneView double-click事件用法及代码示例
- JavaScript ArcGIS geometryEngineAsync.overlaps用法及代码示例
- JavaScript ArcGIS Expand.when用法及代码示例
- JavaScript ArcGIS Sublayer.JoinTableDataSource用法及代码示例
- JavaScript ArcGIS FillSymbol3DLayer.outline用法及代码示例
- JavaScript ArcGIS Ground.loadAll用法及代码示例
- JavaScript Object valueOf()用法及代码示例
- JavaScript ArcGIS LabelClass.repeatLabelDistance用法及代码示例
- JavaScript ArcGIS KMLLayerView.when用法及代码示例
- JavaScript ArcGIS Daylight.visibleElements用法及代码示例
- JavaScript Uint8Array.of()用法及代码示例
- JavaScript ArcGIS CIMSymbol.CIMTextSymbol用法及代码示例
- JavaScript new Legend用法及代码示例
- JavaScript Slider.effectiveMin用法及代码示例
- JavaScript Sketch.classes用法及代码示例
- JavaScript Sketch.visible用法及代码示例
- JavaScript ArcGIS AreaMeasurement3D.analysis用法及代码示例
- JavaScript ArcGIS PolygonDrawAction draw-complete事件用法及代码示例
- JavaScript ArcGIS PathSymbol3DLayer用法及代码示例
- JavaScript ArcGIS decorators.cast用法及代码示例
- JavaScript ArcGIS VectorTileLayer.apiKey用法及代码示例
注:本文由纯净天空筛选整理自arcgis.com大神的英文原创作品 externalRenderers.renderCoordinateTransformAt。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。