-
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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。