UNPKG

vue-tianditu2

Version:
1 lines 6.37 kB
{"version":3,"file":"watch.mjs","sources":["../../../../../packages/service/route/use/watch.ts"],"sourcesContent":["import { watch } from \"vue\";\nimport type { RouteState } from \"../types\";\nimport { toLngLat, toLngLats, toLonLatNumberArray } from \"~/utils/converter\";\n\nexport function useWatch(state: RouteState) {\n function resetRoutes() {\n state.drivingLines = [];\n state.walkLines = [];\n state.busLines = [];\n state.busMarkers = [];\n state.metroMarkers = [];\n }\n\n function resetPlans() {\n state.transitPlans = [];\n state.transitPlanIndex = 0;\n state.drivingPlans = [];\n state.drivingPlanIndex = 0;\n }\n\n watch(\n () => {\n const { startMarker, endMarker, routeType, drivingPolicy, transitPolicy } = state;\n return { startMarker, endMarker, routeType, drivingPolicy, transitPolicy };\n },\n ({ startMarker, endMarker, routeType, drivingPolicy, transitPolicy }) => {\n resetPlans();\n resetRoutes();\n if (startMarker && endMarker) {\n switch (routeType) {\n case 0:\n state.drivingRoute?.setPolicy(drivingPolicy);\n state.drivingRoute?.search(toLngLat(startMarker), toLngLat(endMarker));\n break;\n case 1:\n state.transitRoute?.setPolicy(transitPolicy);\n state.transitRoute?.search(toLngLat(startMarker), toLngLat(endMarker));\n break;\n case 2:\n state.drivingRoute?.setPolicy(4);\n state.drivingRoute?.search(toLngLat(startMarker), toLngLat(endMarker));\n break;\n default:\n break;\n }\n }\n },\n { immediate: true }\n );\n\n watch(\n () => ({ drivingPlans: state.drivingPlans, drivingPlanIndex: state.drivingPlanIndex }),\n ({ drivingPlans, drivingPlanIndex }) => {\n resetRoutes();\n const { routelatlon } = drivingPlans[drivingPlanIndex] || {};\n if (!routelatlon) return;\n const lines = routelatlon\n .split(\";\")\n .filter(e => e)\n .map(toLonLatNumberArray);\n state.drivingLines.push(lines);\n // drivingPlans.map(plan =>\n // plan.routelatlon\n // .split(\";\")\n // .filter(e => e)\n // .map(e => e.split(\",\").map(Number))\n // );\n state.tdtMap?.setViewport(toLngLats(state.drivingLines.flat()));\n },\n { immediate: true }\n );\n\n watch(\n () => ({ transitPlans: state.transitPlans, transitPlanIndex: state.transitPlanIndex }),\n ({ transitPlans, transitPlanIndex }) => {\n resetRoutes();\n const { segments } = transitPlans[transitPlanIndex] || {};\n if (!segments) return;\n segments.forEach(segment => {\n const lines = segment.segmentLine.map(line =>\n line.linePoint\n .split(\";\")\n .filter(e => e)\n .map(toLonLatNumberArray)\n );\n const markers = [segment.stationStart, segment.stationEnd].map(station => toLonLatNumberArray(station.lonlat));\n switch (segment.segmentType) {\n case 1:\n case 4:\n state.walkLines.push(...lines);\n break;\n case 2:\n state.busMarkers.push(...markers);\n state.busLines.push(...lines);\n break;\n case 3:\n state.metroMarkers.push(...markers);\n state.busLines.push(...lines);\n break;\n default:\n break;\n }\n });\n state.tdtMap?.setViewport(toLngLats([...state.busLines, ...state.walkLines].flat()));\n },\n { immediate: true }\n );\n}\n"],"names":["useWatch","state","resetRoutes","resetPlans","watch","startMarker","endMarker","routeType","drivingPolicy","transitPolicy","_a","_b","toLngLat","_c","_d","_e","_f","drivingPlans","drivingPlanIndex","routelatlon","lines","e","toLonLatNumberArray","toLngLats","transitPlans","transitPlanIndex","segments","segment","line","markers","station"],"mappings":"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"}