import HPaaSMap from "@/modules/hpaas-core/hpaas"; import { Feature, MultiPolygon } from "@turf/turf"; import { message } from "ant-design-vue"; // import { PolygonFeatureType } from "@/modules/hpaas-core/tools/data/PolygonStore"; import { ref, Ref } from "vue"; export const useHpaasSplitter = (map: Ref) => { const isSplitting = ref(false); const splitResult = ref[]>(); const beginSplitByLine = () => { try { map.value?.toolsCenter.actions.splitter.beginSplitByLine(); map.value?.toolsCenter.splitter.lineSplit?.on("SAVE_SPLIT", (features) => { splitResult.value = features; isSplitting.value = false; }); isSplitting.value = !isSplitting.value; } catch (e) { message.error(e.message); } }; const cancelSplit = () => { map.value?.toolsCenter.actions.splitter.cancelSplit(); }; return { isSplitting, splitResult, beginSplitByLine, cancelSplit, }; }; export const useHpaasEditor = (map: Ref) => { const isEditing = ref(false); function beginEditPolygon() { try { map.value?.toolsCenter.actions.editor.beginEditPolygon(); isEditing.value = true; } catch (e) { message.error(e.message); } } function beginEditSinglePolygon() { try { map.value?.toolsCenter.actions.editor.beginEditSinglePolygon(); isEditing.value = true; } catch (e) { message.error(e.message); } } function cancelEdit() { isEditing.value = false; map.value?.toolsCenter.actions.editor.cancelPolygonEdit(); } function getPolygonEditResult() { return map.value?.toolsCenter.actions.editor.getPolygonEditResult(); } return { isEditing, beginEditPolygon, cancelEdit, getPolygonEditResult, beginEditSinglePolygon, }; };