在現有的arcgis js api 4.x中沒有現成的飛行瀏覽介面,需要我們自己使用view.goto()函式實現。通過查詢相關資料,本文利用goto()函式,實現了arcgis js中的飛行瀏覽模擬功能。
使用arcgis js中的sceneview建立三維檢視,具體**如下:
var map = new map();
var view = new sceneview();
建立乙個函式flyline進行飛行函式的模型(本文使用隨機位置進行飛行模型,及緯度每次增加0.0001),大家可以根據自己專案的需要將函式繫結到click、checked等作為觸發函式,flyline函式的具體**為:
flyline() )
.then(function() ,
);}, 80); //setinterval間隔時間
});}
通過goto()函式可在arcgis web端實現飛行瀏覽模擬。
arcgis js的飛行瀏覽主要不斷更新goto()函式中center引數進行模擬飛行,這裡的center引數代表的是sceneview.center ,我們每次不斷修改的是sceneview的中心點,然後利用arcgis中animate動畫的形式跳轉到下乙個檢視中心點,以模擬飛行的效果。如果我們不斷地修改position 引數,那麼我們修改的就是camera.position,這時相機位置會不斷修改,跳轉效果將是相機的位置跳轉,不能保持相機的平穩飛行,模擬飛行瀏覽的效果不好。
target包括:
①target【number|geometry|geometry|graphic|graphic|viewpoint|camera|object】
檢視動畫跳轉的目標,可以是位置,幾何,圖形等等。
②center【number|point】
將要跳轉過去的sceneview.center
③scale【number】
設定將要跳轉過得sceneview.scale 比例
④zoom【number】
設定最終跳轉後的zoom值(放大還是縮小)
⑤heading【number】
設定相機的heading屬性。heading值在地球檢視中,以正北方向值為0,順時針增加,如:正東方向為90,範圍是0-360
⑥tilt【number】
設定相機的tilt屬性。tilt屬性值在地球檢視中,相機垂直地面的方向為0,當相機平行於表面時為90度。
⑦position【point】
設定camera.position的屬性。設定最終相機的位置。
options包括:
①animate【boolean】
預設值: true
指示是否應動畫化到新檢視的轉換。如果設定為false,則忽略speedfactor, duration, maxduration, 和 easing引數。
②speedfactor【number】
預設值:1
用來設定動畫的速度,如果設定為2,則飛行速度比預設速度增加一倍,以此類推。
③duration【number】
設定動畫的精確持續時間(以毫秒為單位)
④maxduration【number】
動畫允許的最大持續時間(以毫秒為單位)
⑤easing【string|easingfunction】
設定動畫中的飛行效果。預設的飛行效果(速度曲線)有:linear, in-cubic, out-cubic, in-out-cubic, in-expo, out-expo, in-out-expo, in-out-coast-quadratic。預設是:其中小於1000毫秒的動畫使用out-expo;更長的時間使用in-out-coast-quadratic。如果你想要飛行效果勻速飛行,那麼你設定easing為linear即可。
瀏覽器事件模型
我想你很可能聽說過事件驅動,但是事件驅動到底是什麼?為什麼說瀏覽器是事件驅動的呢?為什麼 nodejs 也是事件驅動的 兩者是一回事麼?實際上不管是瀏覽器還是 nodejs 都是事件驅動的,都有自己的事件模型。在這裡,我們只講解瀏覽器端的事件模型,如果對 nodejs 事件模型感興趣的,請期待我的 ...
動手學pytorch 語言模型
假設序列 w 1,w 2,ldots,w t 中的每個詞是依次生成的,我們有 begin p w 1,w 2,ldots,w t prod t p w t mid w 1,ldots,w p w 1 p w 2 mid w 1 cdots p w t mid w 1w 2 cdots w end 例...
四旋翼飛行器數學模型
最近接觸到四旋翼無人機的位置控制方法,就又了解了一下四旋翼飛機的數學模型,現總結如下 位置環 均定義在慣性座標系下 p e ve 1 dot v tag p e v e 1 v e g fmr bee3 2 dot g frac f m r e tag v e g mf rbe e3 2 這裡需要說...