2015-10-27 73 views
3

我在我的gwt項目上使用了銫並且我正在使用cesium-terrain-server作爲地形。 (不是cesium-gwt,我用jsni自己編寫代碼) 我的問題是:我在地形上創建圖形(多邊形,多段線), 當我在地圖上導航時,圖形正在從其位置移動。 有沒有辦法將它們固定在我之前選擇的點上?在銫地形地圖上導航,破壞圖形的位置

示例代碼:

var polygon = new Cesium.PolygonGraphics({ 
        fill : true; 
        material : Cesium.Color.BLUE.withAlpha(0.5), 
        outline : true, 
        hierarchy :{ 
         positions: cartesian3s 
        } 
       }) 

然後我加入多邊形作爲實體銫觀衆實體。

+0

當您將多邊形添加到實體時,您可以顯示代碼嗎? –

+0

@Tomislav Muic首先我創建一個實體'var entity = new Cesium.Entity()'然後我將多邊形設置爲實體'entity.polygon = polygon'最後,我將它添加到我的查看器中'viewer.enties.add(entity) ' – hkn

回答

3

如果圖形在導航帶地形的地圖時出現「移動」或滑動,這通常表示正在討論的圖形正在地形下(在WGS84橢圓本身上)繪製,並且通過地形顯示。有一種視覺錯覺,眼睛不明白它是通過山脈或地面本身看到遠處的某些圖形。只有當相機移動時,視覺上纔會明顯出現問題。如果您希望圖形顯示爲靜止,則它們必須處於正確的高度才能顯示所在地形。

Cesium 1.3中添加了在地形上懸掛多邊形的功能,並且已詢問有關elsewhere on SO。但是它看起來像這個功能還沒有被添加到實體API中,所以你當前的選擇是(a)如果在平坦的地形上,在一個點處對高度進行採樣並將該多邊形移動到該高度,或者(b)跳過實體API層並使用圖形基元,特別是GroundPrimitive來渲染鋪在地形上的多邊形。

+0

感謝您的回答,實際上我試圖設置高度或extrudedHeight但它沒有工作。我從一個我用來畫多邊形的cartesian3數組中獲得高度值。 – hkn

+0

嘗試加載[GeoJSON演示](http://cesiumjs.org/Cesium/Apps/Sandcastle/index.html?src=GeoJSON%20and%20TopoJSON.html&label=Showcases),然後點擊頂部的「自定義樣式」按鈕3D窗口的例子,工作extrudedHeight的例子。如果仍然無法正常工作,請特別提出有關此主題的新問題。謝謝! – emackey

+1

其實sampleTerrain修復了我的問題,它不是在地形上懸垂的形狀,但它防止相機移動時形狀移動。 @emackey謝謝你的真實答案 – hkn