當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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