turf.js是mapbox官方推荐的进行空间分析的包,其优点在于强大且全面的空间分析功能,且支持geojson格式的输入,因此与Mapbox GL JS集成效果很好。
我们此处介绍Mapbox GL JS加载turf.js实时创建格网(渔网)的方法。
其效果如下:

turf.js能够指定格网大小、坐标等信息实时生成,其效率非常高,也可以在前端根据用户需求实时的生成格网了。生成结果为GeoJson格式,Mapbox根据其生成的结果直接加载。步骤如下:
1、turf.js生成格网(渔网)
turf.js使用turf.squareGrid(bbox, cellSide, options); 方法生成格网,返回格式为Geojson的featureCollection
var bbox = [112, 22, 114, 23]; //格网坐标 minX,minY,maxX,maxY. modify here.
var cellSide = 5; //格网长度
var options = {units:'kilometers'}; //长度单位
var squareGrid = turf.squareGrid(bbox, cellSide, options); //生成格网
2、MapBox加载格网
使用常规的addSource及addLayer即可加载,指定source的类型为geojson即可。
map.addSource('gridsource', {
type: 'geojson',
data:squareGr

这篇博客介绍了如何利用turf.js和MapboxGLJS结合,实现地图上的实时格网(渔网)生成。通过turf.js的squareGrid方法,可以根据指定的坐标和大小生成GeoJSON格式的格网,然后MapboxGLJS将其加载为图层显示。点击地图后,会动态加载格网图层,展示效果良好,优于使用ECharts的实现。完整代码示例展示了点击地图触发格网加载的过程。
最低0.47元/天 解锁文章
2121

被折叠的 条评论
为什么被折叠?



