这边我们使用到turf插件,话不多说直接上代码
首先安装依赖
npm install @turf/turf
yarn add @turf/turf
使用时页面记得引入
import * as turf from '@turf/turf'
附上代码和解析
/** * 提取多边形的坐标数组 */ const flattenCoordinates = (multiPolygon) => multiPolygon?.coordinates || []; /** * 将MultiPolygon转换为单一Polygon */ const mergeMultiPolygonToPolygon = (multiPolygon) => { try { // 步骤1: 使用turf.combine合并多边形 // 这个操作将把多个Polygon特征合并为一个MultiPolygon const combined = turf.combine(multiPolygon); // 步骤2: 创建并返回新的Feature对象 return { // 设置特征类型为Feature type: "Feature", // 保留原始属性信息 properties: multiPolygon.properties, // 步骤3: 构造新的几何信息 geometry: { // 设置几何类型为Polygon type: "Polygon", // 步骤4: 从合并后的几何体中提取坐标 // 这将把MultiPolygon的坐标转换为Polygon格式 coordinates: flattenCoordinates(combined.features[0].geometry) } }; } catch { // 步骤5: 异常处理 - 如果合并过程出现错误,返回原始数据 return multiPolygon; } }