turf.js用法

1.在index.html直接引用

 <script src="https://unpkg.com/@turf/turf@6.3.0/turf.min.js"></script>

2.需要用的地方直接使用turf对象,turf主要用来空间几何对象关系的计算,点、线、面之间包含、相交等系统运算。
具体使用方法可参考turf.js中文网:https://turfjs.fenxianglu.cn/category/#cdn%E5%BC%95%E5%85%A5

3.判断点是否在多边形范围内

  let pt = turf.point([103.30749303102493, 29.789869635742235]);
  let coordinates = [...];//多边形数据
  let poly;
  if(coordinates.length>1){
    //解决'Each LinearRing of a Polygon must have 4 or more Positions.'错误
    poly = turf.multiPolygon(coordinates);
  }else{
    poly = turf.polygon(coordinates);
  }
  let isIncluded = turf.booleanPointInPolygon(pt, poly)

多边形数据格式:
在这里插入图片描述
在这里插入图片描述

3.获取多边形范围的中心点


let poly;
let coordinates = [...];//多边形数据
if(coordinates.length>1){
//解决'Each LinearRing of a Polygon must have 4 or more Positions.'错误
    poly = turf.multiPolygon(coordinates );
}else{
    poly = turf.polygon(coordinates );
}
let centerPoint = turf.centerOfMass(poly); //获取多边形得中心点坐标
console.log(centerPoint)

在这里插入图片描述
4.获取一系列点和多边形的绝对中心点

let areaArr = areaData.map(item=>item.geometry.coordinates);
        let pointArr = pointData.map(item=>item.geometry.coordinates);
        let centerPoint;
        if(areaArr.length){
            centerPoint = turf.centroid(turf.multiPolygon([...areaArr, ...pointArr]))
        }else{
            centerPoint = turf.center(turf.featureCollection(
                pointArr.map(item=>turf.point(item))
            ))
        }

let areaCoordinates = [...];//多边形数据
let pointCoordinates = [...];//点数据
let centerPoint;
if(areaCoordinates.length){//判断是否存在多边形
   centerPoint = turf.centroid(turf.multiPolygon([...areaCoordinates , ...pointCoordinates ]))
}else{
   centerPoint = turf.center(turf.featureCollection(
                pointCoordinates.map(item=>turf.point(item))
            ))
}
console.log(centerPoint)

在这里插入图片描述

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值