Cesium使用turf.js创建一块区域的网格mesh

文章介绍了如何使用Cesium库在点位密集的区域创建网格mesh,并进行坡度计算,最终将地形效果展示出来,包括TIN三角形的创建和坡度的可视化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实现一块区域的网格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(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值