1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package com.flightfeather.uav.biz.datamerge
 
import com.flightfeather.uav.lightshare.bean.DataVo
 
/**
 * 网格融合模式:根据走航范围,划分矩形网格,将所有监测数据根据经纬度划分至对应网格,计算获取网格监测数据均值;
 * @date 2024/6/26
 * @author feiyu02
 */
class GridMerge {
 
    fun merge(data:List<DataVo>) {
        //1. 确定数据范围,用矩形框出所有监测数据
        val lt = foo1(data)
        //2. 根据正方形网格的边长,计算得出所有正方形网格
 
        //3. 匹配监测数据和对应网格,计算网格均值
    }
 
    /**
     * 获取最小经度及最大纬度的点
     */
    fun foo1(data: List<DataVo>): Pair<Double, Double> {
        var minLng = -1.0
        var maxLat = -1.0
        data.forEach {
            it.lng ?: return@forEach
            it.lat ?: return@forEach
            if (minLng < 0 || it.lng!! < minLng) minLng = it.lng!!
            if (maxLat < 0 || it.lat!! > maxLat) maxLat = it.lat!!
        }
        return minLng to maxLat
    }
}