实现一块区域的网格mesh,坡度计算,点位密集的情况下,会接近高程地形效果
var pos = [{
longitude: 120.817976,
latitude: 23.9530403,
height: 0
}, {
longitude: 120.9817976,
latitude: 23.6530403,
height: 0
}, {
longitude: 121.6517976,
latitude: 23.630403,
height: 0
}, {
longitude: 121.6917976,
latitude: 23.30403,
height: 0
}, {
longitude: 122.6917976,
latitude: 24.30403,
height: 0
}]
CreateMesh();
//创建mesh网格
function CreateMesh() {
// 1. 创建一个矩形区域
// var rectangle = Cesium.Rectangle.fromDegrees(117.09649937089316, 36.20673458245797, 117.11797117691083, 36.230040948473906)
var rectangle = Cesium.Rectangle.fromDegrees(pos[0].longitude, pos[0].latitude, pos[3].longitude, pos[3].latitude)
// 2. 在这个矩形区域内生成点集
var width = 100; // 横向点数
var height = 100; // 纵向点数
var terrainProvider = viewer.terrainProvider
var positions = [];
for (var y = 0; y < height; y++) {
for (var x = 0; x < width; x++) {
var longitude = Cesium.Math.lerp(rectangle.west, rectangle.east, x / (width - 1));
var latitude = Cesium.Math.lerp(rectangle.south, rectangle.north, y / (height - 1));
positions.push(Cesium.Cartographic.fromRadians(longitude, latitude));
}
}
Cesium.sampleTerrainMostDetailed(terrainProvider, positions).then(