国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

cesium相機(jī)視角跳轉(zhuǎn)定位方法匯總

這篇具有很好參考價值的文章主要介紹了cesium相機(jī)視角跳轉(zhuǎn)定位方法匯總。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

? ? ? ?下面匯總的相機(jī)視角跳轉(zhuǎn)方法有很多種,都是根據(jù)某一個經(jīng)緯度高程坐標(biāo)[x,y,z],Entity實(shí)體或者矩形四至范圍[west , south , east , north]作為視圖跳轉(zhuǎn)到目標(biāo)范圍的中心,然后在該位置上設(shè)置相機(jī)相對的偏移量,這個偏移量主要是設(shè)置相機(jī)的偏航角、航向角和翻滾角或者橢球范圍,請大家根據(jù)實(shí)際情況選擇合適的相機(jī)視角跳轉(zhuǎn)方法?。以下方法都不適合一般的運(yùn)動軌跡視角跟隨。
viewer.trackedEntity =entity? ? //注意,這個方法一般用于動畫軌跡視圖跟蹤。此時視圖可以旋轉(zhuǎn)縮放,不能平移,因?yàn)閷?shí)體對象會一直保持在當(dāng)前視圖中心。在一些極端情況下會出些一些bug,比如縮放到距離實(shí)體很近的時候,實(shí)體運(yùn)動會拖影卡頓,并且可以平移地圖使得實(shí)體移除到視圖之外,建議在遠(yuǎn)距離跟蹤的時候使用該方法。
import * as Cesium from "cesium";

/**
 * 相機(jī)移動到某一個坐標(biāo)或者矩形范圍內(nèi)
 * @param {Cesium.Viewer} viewer -地圖對象
 * @param {Object} option -參數(shù)對象
 * @param {Number} option.duration -視圖跳轉(zhuǎn)時間(單位/s)
 * @param {String} option.type -跳轉(zhuǎn)目標(biāo)類型方式,‘point’:相機(jī)移動到某一個坐標(biāo);‘rectangle’:相機(jī)移動到矩形范圍內(nèi)
 * @param {Array} option.xyz -跳轉(zhuǎn)目標(biāo)類型方式:‘point’,則xyz為[x,y,z]
 * @param {Array} option.wsen -跳轉(zhuǎn)目標(biāo)類型方式:‘rectangle’,則wsen為[west , south , east , north],(單位/度)
 * @param {Number} option.heading -相機(jī)航向角
 * @param {Number} option.pitch -相機(jī)俯仰角
 * @param {Number} option.roll -相機(jī)翻滾角
 */
export function cameraFlyTo(viewer, option) {
  let destination;
  if ((option.type == "point")) {
    destination = Cesium.Cartesian3.fromDegrees(...option.xyz);
  } else if ((option.type == "rectangle")) {
    destination = Cesium.Rectangle.fromDegrees(...option.ewsn);
  }
  viewer.camera.flyTo({
    duration: option.duration,
    destination,
    orientation: {
      heading: Cesium.Math.toRadians(option.heading),
      pitch: Cesium.Math.toRadians(option.pitch),
      roll: option.roll,
    },
  });
}

/**
 * 相機(jī)移動到某一坐標(biāo)點(diǎn)上,可以用于視角跟蹤實(shí)體對象,但是視角是以坐標(biāo)點(diǎn)為中心固定的,不可以平移
 * 適合視角跟隨的情況:實(shí)時運(yùn)動軌跡,可以獲取前后兩個點(diǎn),實(shí)時計算偏北角(航向角)
 * @param {Cesium.Viewer} viewer -地圖對象
 * @param {Object} option -參數(shù)對象
 * @param {Array} option.xyz -跳轉(zhuǎn)橢球體中心坐標(biāo)數(shù)組[x,y,z]
 * @param {Number} option.heading -相機(jī)航向角
 * @param {Number} option.pitch -相機(jī)俯仰角
 * @param {Number} option.range -以橢球體中心坐標(biāo)為中心的的范圍大?。▎挝?m)
 */
export function cameraLookAt(viewer, option) {
  viewer.camera.lookAt(
    Cesium.Cartesian3.fromDegrees(...option.xyz),
    new Cesium.HeadingPitchRange(
      Cesium.Math.toRadians(option.heading),
      Cesium.Math.toRadians(option.pitch),
      option.range
    )
  );
}

/**
 * 相機(jī)移動到某一坐標(biāo)點(diǎn)上,不可用于視角跟蹤實(shí)體對象
 * @param {Cesium.Viewer} viewer -地圖對象
 * @param {Object} option -參數(shù)對象
 * @param {Array} option.xyz -跳轉(zhuǎn)橢球體中心坐標(biāo)數(shù)組[x,y,z]
 * @param {Number} option.duration -視圖跳轉(zhuǎn)時間(單位/s)
 * @param {Number} option.heading -相機(jī)航向角
 * @param {Number} option.pitch -相機(jī)俯仰角
 * @param {Number} option.roll -相機(jī)翻滾角
 */
export function cameraSetView(viewer, option) {
  viewer.camera.setView({
    destination: Cesium.Cartesian3.fromDegrees(...option.xyz),
    orientation: {
      heading: Cesium.Math.toRadians(option.heading),
      pitch: Cesium.Math.toRadians(option.pitch),
      roll: option.roll,
    },
  });
}

/**
 * 相機(jī)視圖移動到移到某一個坐標(biāo)范圍內(nèi),注意可以用來定位用,不可用于視角跟蹤實(shí)體對象!?。?!
 * @param {Cesium.Viewer} viewer -地圖對象
 * @param {Object} option -參數(shù)對象
 * @param {Array} option.xyz -跳轉(zhuǎn)橢球體中心坐標(biāo)數(shù)組[x,y,z]
 * @param {Number} option.radius -跳轉(zhuǎn)橢球體半徑(單位/m)
 * @param {Number} option.duration -視圖跳轉(zhuǎn)時間(單位/s)
 * @param {Number} option.heading -相機(jī)航向角
 * @param {Number} option.pitch -相機(jī)俯仰角
 * @param {Number} option.range -以跳轉(zhuǎn)坐標(biāo)為中心的的范圍大小(單位/m)
 */
export function cameraflyToBoundingSphere(viewer, option) {
  viewer.camera.flyToBoundingSphere(
    new Cesium.BoundingSphere(
      Cesium.Cartesian3.fromDegrees(...option.xyz),
      option.radius
    ),
    {
      duration: option.duration,
      offset: {
        heading: Cesium.Math.toRadians(option.heading),
        pitch: Cesium.Math.toRadians(option.pitch),
        range: option.range,
      },
      complete: function () {
        console.log("飛行完成!");
      },
      cancel: function () {
        console.log("飛行取消!");
      },
    }
  );
}

/**
 * 相機(jī)移動到某一entity實(shí)體上 === viewer.zoomTo(entity),不可用于視角跟蹤實(shí)體對象
 * @param {Cesium.Viewer} viewer -地圖對象
 * @param {Object} option -參數(shù)對象
 * @param {Object} option.target -target可以是單個或者多個entity對象,以及各自cesium支持的圖層,不能是坐標(biāo)
 * @param {Number} option.duration -視圖跳轉(zhuǎn)時間(單位/s)
 * @param {Number} option.heading -相機(jī)航向角
 * @param {Number} option.pitch -相機(jī)俯仰角
 * @param {Number} option.range -以entity為中心的的范圍大?。▎挝?m)
 */
export function viewerFlyTo(viewer, option) {
  viewer.flyTo(option.target, {
    duration: option.duration,
    offset: {
      heading: Cesium.Math.toRadians(option.heading),
      pitch: Cesium.Math.toRadians(option.pitch),
      range: option.range,
    },
    // 視角跳轉(zhuǎn)最大高度(一般不用)
    // maximumHeight: 20000,
  });
}

文章來源地址http://www.zghlxwxcb.cn/news/detail-856758.html

到了這里,關(guān)于cesium相機(jī)視角跳轉(zhuǎn)定位方法匯總的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Cesium 視角切換到實(shí)體(entity)/ dataSources / 定位到模型(3DTiles)

    Cesium 的 camera.flyTo 是不可以直接飛到實(shí)體的。但是 viewer.flyTo 可以直接飛到實(shí)體。 viewer.flyTo (target, options) :將相機(jī)飛到提供的實(shí)體、實(shí)體或數(shù)據(jù)源。如果數(shù)據(jù)源仍在加載過程中或可視化仍在加載中,則此方法在執(zhí)行飛行之前等待數(shù)據(jù)準(zhǔn)備好 viewer.flyTo 的 target` 可以是:要查看

    2024年02月11日
    瀏覽(21)
  • Cesium 問題:加載 gltf 格式的模型之后太小,如何讓相機(jī)視角拉近

    Cesium 問題:加載 gltf 格式的模型之后太小,如何讓相機(jī)視角拉近

    剛加載的模型太小,如何拉近視角放大 在這里有兩種方式進(jìn)行拉近視角, 一種是點(diǎn)擊復(fù)位進(jìn)行視角拉近 一種是剛加載就直接拉近視角

    2024年02月22日
    瀏覽(22)
  • Cesium屏幕中心、相機(jī)坐標(biāo)和距離計算

    moveRotation方法參數(shù)中第一個參數(shù)step是移動步長,第二個參數(shù)i是判斷是否是俯仰角還是航向角進(jìn)行繞中心點(diǎn)進(jìn)行翻滾,entity可以另外分離出來做一個方法,這樣避免每次調(diào)用moveRotation方法都生成一個entity覆蓋物。 該方法的參數(shù)distance接受正負(fù)數(shù),對應(yīng)上升和下降

    2024年01月18日
    瀏覽(23)
  • 從不同場景地圖的視角對單目相機(jī)進(jìn)行重定位的方案綜述

    從不同場景地圖的視角對單目相機(jī)進(jìn)行重定位的方案綜述

    文章:A Survey on Monocular Re-Localization: From the Perspective of Scene Map Representation 作者:Jinyu Miaoa, Kun Jianga, Tuopu Wena, Yunlong Wanga, Peijing Ji 編輯:點(diǎn)云PCL 歡迎各位加入知識星球,獲取PDF論文,歡迎轉(zhuǎn)發(fā)朋友圈。文章僅做學(xué)術(shù)分享,如有侵權(quán)聯(lián)系刪文。 公眾號致力于點(diǎn)云處理,SLAM,三維

    2024年01月19日
    瀏覽(15)
  • 齊次坐標(biāo)變換的理解以及在無人機(jī)相機(jī)定位坐標(biāo)系轉(zhuǎn)換中的應(yīng)用

    齊次坐標(biāo)變換的理解以及在無人機(jī)相機(jī)定位坐標(biāo)系轉(zhuǎn)換中的應(yīng)用

    4*4矩陣的右邊三個數(shù)表示平移,如果原來的向量u的w=0,那么就是u+(ai+bj+ck) 對應(yīng)xyz三個軸的循環(huán)變換,注意負(fù)號的位置 用描述空間一點(diǎn)的變換方法來描述物體在空間的位置和方向。 先變換的矩陣乘在右邊。 A p = B p + A p B o {}^{A}p={}^{B}p+{}^{A}p_{B_{o}} A p = B p + A p B o ? ? 從

    2024年04月15日
    瀏覽(23)
  • UE4 運(yùn)行后視角切換到Cinecamera相機(jī)的三種方法

    UE4 運(yùn)行后視角切換到Cinecamera相機(jī)的三種方法

    目的:解決運(yùn)行后Cinecamera相機(jī)無法自動切換到玩家視角 方法: 1.調(diào)用這個藍(lán)圖節(jié)點(diǎn),這個最簡單(適合只考慮切換視角的需求) 2.制作并播放關(guān)卡序列,這個有點(diǎn)麻煩(適合需要做關(guān)卡序列動畫) 3.創(chuàng)建GameMode和Pawn(添加Cinecamera組件),選擇“玩家0”(適合需要使用自定義

    2024年02月13日
    瀏覽(17)
  • Matlab相機(jī)標(biāo)定方法及主要參數(shù)含義,坐標(biāo)變換過程

    Matlab相機(jī)標(biāo)定方法及主要參數(shù)含義,坐標(biāo)變換過程

    網(wǎng)上有很多關(guān)于matlab相機(jī)標(biāo)定的資料,但找了很久沒有相應(yīng)的參數(shù)說明:怎樣利用獲得參數(shù)從世界坐標(biāo)系變換到圖像坐標(biāo)系,所以這里為了記錄一下,也方便新人理解。 首先由圖像到參數(shù)的獲取部分在網(wǎng)上有很多資料,也很容易,在這就不再贅述,我利用的標(biāo)定板的格子大小

    2024年02月05日
    瀏覽(26)
  • Selenium常用元素定位方法匯總

    Selenium常用元素定位方法匯總

    目錄 一、webdriver定位方法 1、xpath基本定位用法 2、xpath相對路徑/絕對路徑定位 3、xpath文本、模糊、邏輯定位 1、 id 定位 2、 name定位 3、 class定位 4、 link定位 --精準(zhǔn)定位 5、 partial_link定位 --模糊定位 6、 tag_name定位 --標(biāo)簽名定位 找到頁面上所有標(biāo)簽名為input的標(biāo)簽,返回一個列

    2024年02月02日
    瀏覽(22)
  • 4種方法實(shí)現(xiàn)html 頁面內(nèi)錨點(diǎn)定位及跳轉(zhuǎn)

    不知道你有沒有遇到這樣的需求:錨點(diǎn)定位?進(jìn)入頁面某個元素需要出現(xiàn)在可視區(qū)?…這一類的需求歸根結(jié)底就是處理元素與可視區(qū)域的關(guān)系。我接觸了很多前端小伙伴,實(shí)現(xiàn)的方式有各種各樣的,比如使用 scrollTop、監(jiān)聽滾動等等,這也是很多小伙伴第一個想到的。 今天我

    2024年02月11日
    瀏覽(23)
  • 解決cesium中3dtiles模型隨視角移動

    我們在使用cesium的時候有時會遇到一個問題就是模型導(dǎo)入之后,模型沒有固定住會隨著視角的變化而移動,研究發(fā)現(xiàn)模型在地底下。我認(rèn)為是建模的問題有可能是建模軟件使用的坐標(biāo)不是wgs84導(dǎo)致高程不一的原因,但我沒試過。 解決方案是:1.打開深度檢測 2.手動把模型提上

    2024年02月16日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包