mapbox加载turf.js创建的格网

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

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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值