最近在做Cesium項目,客戶想要初始化地圖時候就有三維傾斜效果
一開始采用的解決方案是使用camera的flyTo功能,設置pitch俯仰角度,結果發現設置pitch之后定位位置會出現偏移,基於偏移計算相機該放置位置過於復雜,后來發現可以使用viewer的flyTo功能
var flyEntity = new Cesium.Entity({ id : 'flyTmp', position : Cesium.Cartesian3.fromDegrees(flyPosition.x, flyPosition.y,1000) , point : { pixelSize : 0.1, color : Cesium.Color.WHITE.withAlpha(0), outlineColor : Cesium.Color.WHITE.withAlpha(0), outlineWidth : 1 } }); viewer.entities.add(flyEntity); viewer.flyTo(flyEntity,{ // maximumHeight:20, offset: new Cesium.HeadingPitchRange(0.0, Cesium.Math.toRadians(-20.0)) })
PS:viewer 如果是flyTo entitycollection ,會自動計算定位到中心位置,但是高度設置貌似無用(此項有待考證);
flyTo entity ,根據entity設置的位置還是會有一定的偏移,基於實際情況做適當調整