sampleTerrain(terrainProvider, level, positions) → Promise.<Array.<Cartographic>>
通过从地形提供器请求瓦片、采样和插值,为
Cartographic
位置数组初始化地形高度查询。
插值与用于在指定级别上渲染地形的三角形相匹配。
查询是异步进行的,因此该函数返回一个约定,约定在查询完成时解析。每个点的高度都在适当的地方进行了修改。
如果无法确定高度,比如该位置的指定级别没有可用的地形数据,或者发生了其他错误,则将高度设置为undefined。
与典型的Cartographic
类型一样,提供的高度是参考椭球面的高度(例如Ellipsoid.WGS84
),而不是平均海平面以上的高度。
换句话说,如果在海洋中采样,它不一定是0.0。
这个函数需要详细的地形级别作为输入,如果您需要尽可能精确地获得地形的高度(即具有详细的最大级别),请使用sampleTerrainMostDetailed
。
Name | Type | Description |
---|---|---|
terrainProvider |
TerrainProvider | 用于查询高度的地形提供器。 |
level |
Number | 用于查询地形高度的地形详细级别。 |
positions |
Array.<Cartographic> | 根据地形高度更新位置。 |
返回值:
当地形查询完成时,解析到所提供的位置列表的约定。
示例:
// 查询两个地图位置的地形高度
var terrainProvider = Cesium.createWorldTerrain();
var positions = [
Cesium.Cartographic.fromDegrees(86.925145, 27.988257),
Cesium.Cartographic.fromDegrees(87.0, 28.0)
];
var promise = Cesium.sampleTerrain(terrainProvider, 11, positions);
Cesium.when(promise, function(updatedPositions) {
// positions[0].height and positions[1].height have been updated.
// updatedPositions is just a reference to positions.
});
参考: