所以,我使用銫,我想添加一個多邊形或線來表示屬性邊界在地形表面上。銫如何'懸垂'多邊形或線條到地形表面
我的多邊形在平面/橢球體表面上工作正常,但不幸的是,當顯示地形圖層時,多邊形不會自動懸垂在表面上。
夠公平的,我實際上沒有z /高度值 - 所以我使用了sampleTerrain.js承諾方法來插入基於地形的高度值。這部分工作正常,我得到我的身高值。但那又如何?
我試着創建一個多邊形實體與我的身高負載的立場,但無濟於事 - 它只是忽略了身高值。 When I read the docs,我真的可以看到任何參考高度值被攝入 - 所有的「職位」數組是二維的?
正在考慮的高度值的唯一參考是PolygonOutlineGeometry,它具有看起來很有希望的屬性perPositionHeight
。
這基本上是我想要的東西 - 我並不想集全聚的高度,我想使用的每個點的高度值..
這裏是我的不成功的嘗試之一:
實體/多邊形:
var entity = viewer.entities.add({
polygon : {
hierarchy : cartesianPositions, //array of positions with z values
outline : true,
outlineColor : Cesium.Color.RED,
outlineWidth : 9,
material : Cesium.Color.BLUE.withAlpha(0.0),
}
});
底線:我只想要一個多邊形或折線實體它很好地坐在地形的表面上。
編輯:
使用公認的答案與sampleTerrain.js結合的評論Orange Polygon example,我已經能夠模擬「立體裁剪」多邊形地形上,有沒有這個位置的列表z值,這裏有個粗略的例子:
var positions = []; // xy position array
var cesiumTerrainProvider = new Cesium.CesiumTerrainProvider({
url : '//assets.agi.com/stk-terrain/world'
});
viewer.terrainProvider = cesiumTerrainProvider;
// go off and sample the terrain layer to get interpolated z values for each position..
var promise = Cesium.sampleTerrain(cesiumTerrainProvider, 11, positions);
Cesium.when(promise, function(updatedPositions) {
var cartesianPositions = Cesium.Ellipsoid.WGS84.cartographicArrayToCartesianArray(updatedPositions);
var entity = viewer.entities.add({
polygon : {
hierarchy : cartesianPositions,
outline : true,
outlineColor : Cesium.Color.RED,
outlineWidth : 9,
perPositionHeight: true,
material : Cesium.Color.BLUE.withAlpha(0.0),
}
});
viewer.flyTo(entity);
});
,爲什麼你有'阿爾法(0.0)'如果你想看到的多邊形?根據[Cesium spec](http://cesiumjs.org/Cesium/Build/Documentation/Color.html)0.0是_zero intensity_ –
我故意隱藏了多邊形的表面,因爲我對邊界更感興趣,哪些*是*可見的。這與我的問題無關。 – danwild
我使用相同的代碼,但部分路徑段仍處於地面。有人知道原因嗎? – sabrina