在用cesium開(kāi)發(fā)WebGL三維應(yīng)用時(shí)渐排,通常要設(shè)置初始化視角位置史隆,比如設(shè)置視角的位置是江蘇上空或者云南上空绵估,我們?nèi)绾潍@取到對(duì)應(yīng)的視角呢?
我們先來(lái)看看視角代碼的寫(xiě)法奉瘤,看看我們需要獲取到哪些參數(shù)勾拉。
- 寫(xiě)法1:笛卡爾坐標(biāo)參數(shù)
viewer.scene.camera.setView({
destination: new Cesium.Cartesian3(-1206939.1925299785, 5337998.241228442, 3286279.2424502545),
orientation: {
heading: 1.4059101895600987,
pitch: -0.20917672793046682,
roll: 2.708944180085382e-13
}
});
- 寫(xiě)法2:經(jīng)緯度坐標(biāo)參數(shù)
viewer.scene.camera.setView({
destination : new Cesium.Cartesian3.fromDegrees(123.0744619, 44.0503706,20),
orientation: {
heading : Cesium.Math.toRadians(175.0),
pitch : Cesium.Math.toRadians(-90.0),//從上往下看為-90
roll : 0
}
})
觀(guān)察代碼可知,我們需要填入6個(gè)參數(shù):destination里的三個(gè)參數(shù)和heading/pitch/roll盗温。
獲取到destination的三個(gè)參數(shù)即可定位到場(chǎng)景上空藕赞,其它三個(gè)參數(shù)heading/pitch/roll參照上述寫(xiě)法填入即可,pitch填為Cesium.Math.toRadians(-90.0)
可保證視角是從上往下看卖局。
以寫(xiě)法2為例斧蜕,destination的三個(gè)參數(shù)(123.0744619, 44.0503706,20)分別代表經(jīng)度、緯度砚偶、視點(diǎn)高度批销。接下來(lái)主要介紹如何獲取這三個(gè)參數(shù)。
1.經(jīng)度和緯度參數(shù)獲取
1.1 外網(wǎng)情況下直接打開(kāi)百度地圖坐標(biāo)拾取器獲取蟹演,鼠標(biāo)指哪兒獲取哪兒的坐標(biāo)风钻,然后把獲取到的坐標(biāo)填入代碼
http://api.map.baidu.com/lbsapi/getpoint/index.html
1.2 內(nèi)網(wǎng)情況下直接獲取內(nèi)網(wǎng)地圖的坐標(biāo)
以SuperMap iServer為例顷蟀,直接預(yù)覽二維地圖酒请,從二維地圖上取坐標(biāo)即可。
- (1)進(jìn)入內(nèi)網(wǎng)iserver主頁(yè)鸣个,我的為“http://localhost:8090/iserver”
-
(2)點(diǎn)擊服務(wù)列表
image.png -
(3)點(diǎn)擊場(chǎng)景所在區(qū)域的地圖服務(wù)
本處以第一個(gè)地圖服務(wù)為例
image.png -
(4)點(diǎn)擊maps
image.png - (5)點(diǎn)擊對(duì)應(yīng)地圖右側(cè)的for Classic
image.png -
(6)在新頁(yè)面右下角即可看見(jiàn)經(jīng)緯度坐標(biāo)
image.png
2.視點(diǎn)高度參數(shù)獲取
默認(rèn)推薦3000羞反,在大多數(shù)地方適用布朦。看不到場(chǎng)景的鼠標(biāo)滾輪放大或縮小地球試試昼窗。
沒(méi)有地形圖層或三維模型圖層(相當(dāng)于海拔為0)時(shí)該參數(shù)不要為負(fù)數(shù)即可是趴。
有地形圖層或三維模型圖層時(shí)視點(diǎn)高度根據(jù)當(dāng)?shù)睾0味ǎK地區(qū)海拔幾十米澄惊,視點(diǎn)高度大于當(dāng)?shù)睾0渭纯伤敉荆扑]1000。云南地區(qū)海拔接近2000掸驱,推薦視點(diǎn)高度5000肛搬,喜馬拉雅山肯定大于8000了。
總的來(lái)說(shuō)要根據(jù)場(chǎng)景范圍的大小和是否添加了地形圖層或三維模型圖層適當(dāng)調(diào)整毕贼,找到相對(duì)合適的視角即可温赔。