src/main.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/utils/wktUtils.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/Home.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/left/KGSimOption/HistorySimulation.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main.js
@@ -8,10 +8,12 @@ import dayjs from "dayjs" import '@/assets/css/global.css' import { createPinia } from 'pinia' // å¯¼å ¥ Pinia import { convertToWKT } from '@/utils/wktUtils'; // å¼å ¥å·¥å ·å½æ° const pinia = createPinia() import "element-plus/theme-chalk/index.css" const app = createApp(App) app.config.globalProperties.$convertToWKT = convertToWKT; app.config.globalProperties.$dayjs = dayjs app.use(ElementUI, { zhLocale }).use(router).use(pinia).mount("#app") src/utils/wktUtils.js
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,26 @@ /** * å°æ®éç»çº¬åº¦æ°ç»è½¬æ¢ä¸ºæ åç MULTIPOLYGON WKT æ ¼å¼ * @param {Array<Array<number>>} coordinates - ç»çº¬åº¦æ°ç»ï¼æ¯ä¸ªå ç´ æ¯ä¸ä¸ª [ç»åº¦, 纬度] çç¹ * @returns {string} æ ååç WKT æ ¼å¼å符串 */ export function convertToWKT(coordinates) { // æ£æ¥è¾å ¥æ¯å¦ä¸ºé空æ°ç» if (!Array.isArray(coordinates) || coordinates.length === 0) { throw new Error("Invalid input: 'coordinates' must be a non-empty array of [longitude, latitude] points."); } // æ£æ¥æ¯ä¸ªç¹æ¯å¦æ¯ææç [ç»åº¦, 纬度] æ°ç» for (const point of coordinates) { if (!Array.isArray(point) || point.length !== 2 || typeof point[0] !== "number" || typeof point[1] !== "number") { throw new Error("Invalid input: Each coordinate must be an array of two numbers [longitude, latitude]."); } } // å°ç»çº¬åº¦æ°ç»è½¬æ¢ä¸º WKT æ ¼å¼çåæ å符串 const wktCoordinates = coordinates .map(([longitude, latitude]) => `${longitude} ${latitude}`) .join(","); // æå»ºæ åç MULTIPOLYGON WKT æ ¼å¼ return `MULTIPOLYGON(((${wktCoordinates})))`; } src/views/Home.vue
@@ -8,14 +8,10 @@ <!-- <Left v-if="leftShow" /> <Right v-if="rightShow" /> --> <Tools :style=" rightRiverShow || showDangerAssess <Tools :style="rightRiverShow || showDangerAssess ? { right: '400px' } : { right: '12px' } " class="tools" /> " class="tools" /> <!-- <Message v-if="messageShow" class="messageTool" /> --> <Announcement v-show="$route.fullPath != '/'" class="announcementTool" /> <!-- <Location v-if="locationShow" class="locationTool" /> --> @@ -31,7 +27,7 @@ </template> <script setup> import { computed, onMounted } from "vue"; import { computed, onMounted, ref, getCurrentInstance } from "vue"; import { useRoute } from "vue-router"; import { useSimStore } from "@/store/simulation"; import { storeToRefs } from "pinia"; @@ -62,6 +58,7 @@ import { showDeviceDetail } from "@/store"; import { setupTokenRefresh } from "@/api/hpApi.js" import { getData } from "@/api/trApi.js" import { convertToWKT } from '@/utils/wktUtils'; const route = useRoute(); const simStore = useSimStore(); @@ -78,12 +75,28 @@ showDangerAssess, } = storeToRefs(simStore); const { init, startYHGL, startZHJC, startMNFZ, startMNPG } = simStore; // 模æçç»çº¬åº¦æ°ç» const coordinates = [ [120.123456, 30.654321], [120.234567, 30.765432], [120.345678, 30.876543], [120.123456, 30.654321] ]; // 计ç®å±æ§ const showDetail = computed(() => showDeviceDetail.value); onMounted(() => { setupTokenRefresh()// è·åå®å¾token getData() //æµè¯trå端 try { const wktResult = convertToWKT(coordinates); console.log(wktResult); // è¾åº: MULTIPOLYGON(((120.123456 30.654321,120.234567 30.765432,120.345678 30.876543,120.123456 30.654321))) } catch (error) { console.error(error.message); } }); // åå§å init(); src/views/left/KGSimOption/HistorySimulation.vue
@@ -76,7 +76,7 @@ // const getRainData = () => { // getRainfallData() // .then((a) => { // console.log(a, 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'); // console.log(a, 'å®å¾è·åé¨éæ°æ®'); // }) // };