复杂图斑分割
parent
27804036dd
commit
01f256af04
|
|
@ -147,6 +147,8 @@ export async function splitPolygonByFill(drawPolygon, outerPolygon) {
|
||||||
|
|
||||||
// 多面数据分割裁剪
|
// 多面数据分割裁剪
|
||||||
export async function splitPolygonByMultiFill(drawPolygons,outerPolygon){
|
export async function splitPolygonByMultiFill(drawPolygons,outerPolygon){
|
||||||
|
let tempDrawPolygons = [...drawPolygons]
|
||||||
|
drawPolygons = handlerMultiPolygonToPolygon(tempDrawPolygons);
|
||||||
|
|
||||||
return new Promise((resolve,reject)=>{
|
return new Promise((resolve,reject)=>{
|
||||||
try{
|
try{
|
||||||
|
|
@ -170,14 +172,24 @@ export async function splitPolygonByMultiFill(drawPolygons,outerPolygon){
|
||||||
console.log("原始数据处理精度后坐标",featuresArray);
|
console.log("原始数据处理精度后坐标",featuresArray);
|
||||||
// 求交集图斑
|
// 求交集图斑
|
||||||
drawPolygons.forEach((item,index)=>{
|
drawPolygons.forEach((item,index)=>{
|
||||||
let turfPolygon = turf.truncate(turf.polygon(item.geometry.coordinates),dealOptions);
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
console.log("coordinates",index,item.geometry.coordinates)
|
||||||
|
try{
|
||||||
|
let turfPolygon = turf.truncate(turf.polygon(item.geometry.coordinates),dealOptions);
|
||||||
// 取交集
|
// 取交集
|
||||||
let intersection = turf.intersect(turf.featureCollection([featuresArray[0],turfPolygon]));
|
let intersection = turf.intersect(turf.featureCollection([featuresArray[0],turfPolygon]));
|
||||||
if(intersection){
|
if(intersection){
|
||||||
resultArray.push(intersection);
|
resultArray.push(intersection);
|
||||||
|
}
|
||||||
|
console.log("第3步:交集"+index+":",intersection)
|
||||||
|
splitFeaturesArray.push(turfPolygon);
|
||||||
|
}catch(e){
|
||||||
|
console.log(e);
|
||||||
}
|
}
|
||||||
console.log("第3步:交集"+index+":",intersection)
|
|
||||||
splitFeaturesArray.push(turfPolygon);
|
|
||||||
})
|
})
|
||||||
|
|
||||||
// 取差集
|
// 取差集
|
||||||
|
|
@ -201,6 +213,29 @@ export async function splitPolygonByMultiFill(drawPolygons,outerPolygon){
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// MultiPolygon转换Polygon
|
||||||
|
export function handlerMultiPolygonToPolygon(sourcePolygons){
|
||||||
|
let polygons = [];
|
||||||
|
sourcePolygons.forEach((item,ndex)=>{
|
||||||
|
if(item.geometry.type == "MultiPolygon"){
|
||||||
|
item.geometry.coordinates.forEach((coorItem,idx)=>{
|
||||||
|
let polygonItem = {
|
||||||
|
"type": "Feature",
|
||||||
|
"geometry": {
|
||||||
|
"type": "Polygon",
|
||||||
|
"coordinates": coorItem
|
||||||
|
},
|
||||||
|
"properties": {}
|
||||||
|
}
|
||||||
|
polygons.push(polygonItem);
|
||||||
|
})
|
||||||
|
}else if(item.geometry.type == "Polygon"){
|
||||||
|
polygons.push(item);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
return polygons;
|
||||||
|
}
|
||||||
|
|
||||||
export function printLngLat(arr){
|
export function printLngLat(arr){
|
||||||
arr.forEach((item,index)=>{
|
arr.forEach((item,index)=>{
|
||||||
console.log(item[1]+","+item[0]+"\n");
|
console.log(item[1]+","+item[0]+"\n");
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script lang="ts" setup>
|
||||||
|
import Vue from 'vue'
|
||||||
|
|
||||||
|
</script>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
|
||||||
|
</style>
|
||||||
Loading…
Reference in New Issue