maptalks 开发GIS地图(35)maptalks.three.28- custom-grid-height

1. 带高度的栅格,在栅格的基础上加上高度。

2. 其中是用d3.min.js 和 turf.js 

D3 是一个数据可视化的JS库,能够实现各种图表。

turf.js 是主要用来进行空间分析,空间几何对象关系的计算,点、线、面之间包含、相交等计算的JS库。

3. 数据使用的是网络数据

https://gw.alipayobjects.com/os/basement_prod/513add53-dcb2-4295-8860-9e7aa5236699.json

从格式可以看出是类似于geoJson 的数据。

 4. 使用 grid.count / 5 作为grid.height.

 1   const filterGrids = [];
 2                 for (let i = 0, len = grids.length; i < len; i++) {
 3                     if (grids[i].count > 0) {
 4                         const grid = grids[i];
 5                         max = Math.max(max, grid.count);
 6                         grid.height = grid.count / 5;
 7                         const color = getColor(grid.count);
 8                         grid.color = color;
 9                         filterGrids.push(grids[i]);
10                     }
11                 }

5. 最后将 filterGrids 数组作为一个整体进行渲染并添加到图层中。

1                 const boxs = new Boxs(filterGrids, { center: center }, material, threeLayer);
2                 threeLayer.addMesh(boxs);

6. 页面显示

7. 源码地址

https://github.com/WhatGIS/maptalkMap/tree/main/threelayer/demo

原文地址:https://www.cnblogs.com/googlegis/p/14737706.html