diff --git a/resources/java/app/yjearth.jar b/resources/java/app/yjearth.jar
index 1ef674d..70327e7 100644
Binary files a/resources/java/app/yjearth.jar and b/resources/java/app/yjearth.jar differ
diff --git a/src/renderer/src/icons/svg/BIMEdit.svg b/src/renderer/src/icons/svg/BIMEdit.svg
deleted file mode 100644
index 7078ac3..0000000
--- a/src/renderer/src/icons/svg/BIMEdit.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/Intervisibility.svg b/src/renderer/src/icons/svg/Intervisibility.svg
deleted file mode 100644
index b4dc818..0000000
--- a/src/renderer/src/icons/svg/Intervisibility.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/MeasureAngle.svg b/src/renderer/src/icons/svg/MeasureAngle.svg
deleted file mode 100644
index fe6a45a..0000000
--- a/src/renderer/src/icons/svg/MeasureAngle.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/MeasureAzimuth.svg b/src/renderer/src/icons/svg/MeasureAzimuth.svg
deleted file mode 100644
index 7960c36..0000000
--- a/src/renderer/src/icons/svg/MeasureAzimuth.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/POI.svg b/src/renderer/src/icons/svg/POI.svg
deleted file mode 100644
index 630a9d5..0000000
--- a/src/renderer/src/icons/svg/POI.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/add.svg b/src/renderer/src/icons/svg/add.svg
deleted file mode 100644
index 3861e59..0000000
--- a/src/renderer/src/icons/svg/add.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/add.svg - 快捷方式.lnk b/src/renderer/src/icons/svg/add.svg - 快捷方式.lnk
new file mode 100644
index 0000000..b96a7c1
Binary files /dev/null and b/src/renderer/src/icons/svg/add.svg - 快捷方式.lnk differ
diff --git a/src/renderer/src/icons/svg/addBIM.svg b/src/renderer/src/icons/svg/addBIM.svg
deleted file mode 100644
index 62b3e45..0000000
--- a/src/renderer/src/icons/svg/addBIM.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/addDevice.svg b/src/renderer/src/icons/svg/addDevice.svg
deleted file mode 100644
index 1315a56..0000000
--- a/src/renderer/src/icons/svg/addDevice.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/addDirectory.svg b/src/renderer/src/icons/svg/addDirectory.svg
deleted file mode 100644
index 89d5957..0000000
--- a/src/renderer/src/icons/svg/addDirectory.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/addResource.svg b/src/renderer/src/icons/svg/addResource.svg
deleted file mode 100644
index b68f1e2..0000000
--- a/src/renderer/src/icons/svg/addResource.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/addTrajectory.svg b/src/renderer/src/icons/svg/addTrajectory.svg
deleted file mode 100644
index 21d9dba..0000000
--- a/src/renderer/src/icons/svg/addTrajectory.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/analysis.svg b/src/renderer/src/icons/svg/analysis.svg
deleted file mode 100644
index d34b0d0..0000000
--- a/src/renderer/src/icons/svg/analysis.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/annotation.svg b/src/renderer/src/icons/svg/annotation.svg
deleted file mode 100644
index 6fe6dc0..0000000
--- a/src/renderer/src/icons/svg/annotation.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/annotationAggregation.svg b/src/renderer/src/icons/svg/annotationAggregation.svg
deleted file mode 100644
index e7c3052..0000000
--- a/src/renderer/src/icons/svg/annotationAggregation.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/areaMeasure.svg b/src/renderer/src/icons/svg/areaMeasure.svg
deleted file mode 100644
index fb7f91f..0000000
--- a/src/renderer/src/icons/svg/areaMeasure.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/areaScreen.svg b/src/renderer/src/icons/svg/areaScreen.svg
deleted file mode 100644
index 65c9cd6..0000000
--- a/src/renderer/src/icons/svg/areaScreen.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/arrow.svg b/src/renderer/src/icons/svg/arrow.svg
deleted file mode 100644
index a1841f5..0000000
--- a/src/renderer/src/icons/svg/arrow.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/arrow1.svg b/src/renderer/src/icons/svg/arrow1.svg
deleted file mode 100644
index 7dbef7c..0000000
--- a/src/renderer/src/icons/svg/arrow1.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/arrow2.svg b/src/renderer/src/icons/svg/arrow2.svg
deleted file mode 100644
index 2ab00d3..0000000
--- a/src/renderer/src/icons/svg/arrow2.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/attackArrow.svg b/src/renderer/src/icons/svg/attackArrow.svg
deleted file mode 100644
index 267f5a0..0000000
--- a/src/renderer/src/icons/svg/attackArrow.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/backTs.svg b/src/renderer/src/icons/svg/backTs.svg
deleted file mode 100644
index 7f8bb12..0000000
--- a/src/renderer/src/icons/svg/backTs.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/beidou.svg b/src/renderer/src/icons/svg/beidou.svg
deleted file mode 100644
index fd34840..0000000
--- a/src/renderer/src/icons/svg/beidou.svg
+++ /dev/null
@@ -1,14 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/circle.svg b/src/renderer/src/icons/svg/circle.svg
deleted file mode 100644
index 17a23d6..0000000
--- a/src/renderer/src/icons/svg/circle.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/circleKen.svg b/src/renderer/src/icons/svg/circleKen.svg
deleted file mode 100644
index 4f247d8..0000000
--- a/src/renderer/src/icons/svg/circleKen.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/circleStatistics.svg b/src/renderer/src/icons/svg/circleStatistics.svg
deleted file mode 100644
index 8aa29d7..0000000
--- a/src/renderer/src/icons/svg/circleStatistics.svg
+++ /dev/null
@@ -1,12 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/clear.svg b/src/renderer/src/icons/svg/clear.svg
deleted file mode 100644
index 33a6d87..0000000
--- a/src/renderer/src/icons/svg/clear.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/clearAnalysis.svg b/src/renderer/src/icons/svg/clearAnalysis.svg
deleted file mode 100644
index 33a6d87..0000000
--- a/src/renderer/src/icons/svg/clearAnalysis.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/clearGraffiti.svg b/src/renderer/src/icons/svg/clearGraffiti.svg
deleted file mode 100644
index 31d36b8..0000000
--- a/src/renderer/src/icons/svg/clearGraffiti.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/clearQuery.svg b/src/renderer/src/icons/svg/clearQuery.svg
deleted file mode 100644
index af5eda6..0000000
--- a/src/renderer/src/icons/svg/clearQuery.svg
+++ /dev/null
@@ -1,19 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/clearRoute.svg b/src/renderer/src/icons/svg/clearRoute.svg
deleted file mode 100644
index bdd45db..0000000
--- a/src/renderer/src/icons/svg/clearRoute.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/clearTilesetClipping.svg b/src/renderer/src/icons/svg/clearTilesetClipping.svg
deleted file mode 100644
index f15341b..0000000
--- a/src/renderer/src/icons/svg/clearTilesetClipping.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/close.svg b/src/renderer/src/icons/svg/close.svg
deleted file mode 100644
index d2316ca..0000000
--- a/src/renderer/src/icons/svg/close.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/closeLeftTs.svg b/src/renderer/src/icons/svg/closeLeftTs.svg
deleted file mode 100644
index 11f96c9..0000000
--- a/src/renderer/src/icons/svg/closeLeftTs.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/closeRightTs.svg b/src/renderer/src/icons/svg/closeRightTs.svg
deleted file mode 100644
index b0747b2..0000000
--- a/src/renderer/src/icons/svg/closeRightTs.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/clt.svg b/src/renderer/src/icons/svg/clt.svg
deleted file mode 100644
index 0cd27df..0000000
--- a/src/renderer/src/icons/svg/clt.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/contour.svg b/src/renderer/src/icons/svg/contour.svg
deleted file mode 100644
index 32ea370..0000000
--- a/src/renderer/src/icons/svg/contour.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/coorLocation.svg b/src/renderer/src/icons/svg/coorLocation.svg
deleted file mode 100644
index 6a34036..0000000
--- a/src/renderer/src/icons/svg/coorLocation.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/coorMeasure.svg b/src/renderer/src/icons/svg/coorMeasure.svg
deleted file mode 100644
index 7fed0c1..0000000
--- a/src/renderer/src/icons/svg/coorMeasure.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/copy.svg b/src/renderer/src/icons/svg/copy.svg
deleted file mode 100644
index e18d86c..0000000
--- a/src/renderer/src/icons/svg/copy.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/creat.svg b/src/renderer/src/icons/svg/creat.svg
deleted file mode 100644
index c81c44f..0000000
--- a/src/renderer/src/icons/svg/creat.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/crossPoint.svg b/src/renderer/src/icons/svg/crossPoint.svg
deleted file mode 100644
index faed398..0000000
--- a/src/renderer/src/icons/svg/crossPoint.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/curve.svg b/src/renderer/src/icons/svg/curve.svg
deleted file mode 100644
index f315ec0..0000000
--- a/src/renderer/src/icons/svg/curve.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/cutFill.svg b/src/renderer/src/icons/svg/cutFill.svg
deleted file mode 100644
index 5fb2529..0000000
--- a/src/renderer/src/icons/svg/cutFill.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/del.svg b/src/renderer/src/icons/svg/del.svg
deleted file mode 100644
index 969722f..0000000
--- a/src/renderer/src/icons/svg/del.svg
+++ /dev/null
@@ -1,17 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/delModel.svg b/src/renderer/src/icons/svg/delModel.svg
deleted file mode 100644
index 815394b..0000000
--- a/src/renderer/src/icons/svg/delModel.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/des_detail.svg b/src/renderer/src/icons/svg/des_detail.svg
deleted file mode 100644
index 545eb8b..0000000
--- a/src/renderer/src/icons/svg/des_detail.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/diffuseScan.svg b/src/renderer/src/icons/svg/diffuseScan.svg
deleted file mode 100644
index c4904c8..0000000
--- a/src/renderer/src/icons/svg/diffuseScan.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/dimension.svg b/src/renderer/src/icons/svg/dimension.svg
deleted file mode 100644
index e8247e7..0000000
--- a/src/renderer/src/icons/svg/dimension.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/distanceMeasure.svg b/src/renderer/src/icons/svg/distanceMeasure.svg
deleted file mode 100644
index 33d7ce1..0000000
--- a/src/renderer/src/icons/svg/distanceMeasure.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/download.svg b/src/renderer/src/icons/svg/download.svg
deleted file mode 100644
index bf49251..0000000
--- a/src/renderer/src/icons/svg/download.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/edit.svg b/src/renderer/src/icons/svg/edit.svg
deleted file mode 100644
index 69d48f2..0000000
--- a/src/renderer/src/icons/svg/edit.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/ellipse.svg b/src/renderer/src/icons/svg/ellipse.svg
deleted file mode 100644
index 5d40ee4..0000000
--- a/src/renderer/src/icons/svg/ellipse.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/entityWall.svg b/src/renderer/src/icons/svg/entityWall.svg
deleted file mode 100644
index 8ec2541..0000000
--- a/src/renderer/src/icons/svg/entityWall.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/ersan_ts.svg b/src/renderer/src/icons/svg/ersan_ts.svg
deleted file mode 100644
index 16d4de2..0000000
--- a/src/renderer/src/icons/svg/ersan_ts.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/exitTs.svg b/src/renderer/src/icons/svg/exitTs.svg
deleted file mode 100644
index 1322abf..0000000
--- a/src/renderer/src/icons/svg/exitTs.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/explosion.svg b/src/renderer/src/icons/svg/explosion.svg
deleted file mode 100644
index 92563f2..0000000
--- a/src/renderer/src/icons/svg/explosion.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/export.svg b/src/renderer/src/icons/svg/export.svg
deleted file mode 100644
index 010445b..0000000
--- a/src/renderer/src/icons/svg/export.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/fire.svg b/src/renderer/src/icons/svg/fire.svg
deleted file mode 100644
index 8158072..0000000
--- a/src/renderer/src/icons/svg/fire.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/fk.svg b/src/renderer/src/icons/svg/fk.svg
deleted file mode 100644
index 35e3bd0..0000000
--- a/src/renderer/src/icons/svg/fk.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/floodSimulation.svg b/src/renderer/src/icons/svg/floodSimulation.svg
deleted file mode 100644
index 7df3f79..0000000
--- a/src/renderer/src/icons/svg/floodSimulation.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/flyLine.svg b/src/renderer/src/icons/svg/flyLine.svg
deleted file mode 100644
index 166801a..0000000
--- a/src/renderer/src/icons/svg/flyLine.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/fog.svg b/src/renderer/src/icons/svg/fog.svg
deleted file mode 100644
index eeffdfe..0000000
--- a/src/renderer/src/icons/svg/fog.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/fountain.svg b/src/renderer/src/icons/svg/fountain.svg
deleted file mode 100644
index 5402ba9..0000000
--- a/src/renderer/src/icons/svg/fountain.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/full_screen.svg b/src/renderer/src/icons/svg/full_screen.svg
deleted file mode 100644
index 746a2ec..0000000
--- a/src/renderer/src/icons/svg/full_screen.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/full_screen_exit.svg b/src/renderer/src/icons/svg/full_screen_exit.svg
deleted file mode 100644
index 6bc746d..0000000
--- a/src/renderer/src/icons/svg/full_screen_exit.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/gdbImport.svg b/src/renderer/src/icons/svg/gdbImport.svg
deleted file mode 100644
index ea9c419..0000000
--- a/src/renderer/src/icons/svg/gdbImport.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/geojson.svg b/src/renderer/src/icons/svg/geojson.svg
deleted file mode 100644
index 6e51849..0000000
--- a/src/renderer/src/icons/svg/geojson.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/globalContour.svg b/src/renderer/src/icons/svg/globalContour.svg
deleted file mode 100644
index bea5eaa..0000000
--- a/src/renderer/src/icons/svg/globalContour.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/graffiti.svg b/src/renderer/src/icons/svg/graffiti.svg
deleted file mode 100644
index c6d5b02..0000000
--- a/src/renderer/src/icons/svg/graffiti.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/groundText.svg b/src/renderer/src/icons/svg/groundText.svg
deleted file mode 100644
index 6a003be..0000000
--- a/src/renderer/src/icons/svg/groundText.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/heightMeasure.svg b/src/renderer/src/icons/svg/heightMeasure.svg
deleted file mode 100644
index f2b8558..0000000
--- a/src/renderer/src/icons/svg/heightMeasure.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/hh.svg b/src/renderer/src/icons/svg/hh.svg
deleted file mode 100644
index fbea00f..0000000
--- a/src/renderer/src/icons/svg/hh.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/highQuality.svg b/src/renderer/src/icons/svg/highQuality.svg
deleted file mode 100644
index 43123b7..0000000
--- a/src/renderer/src/icons/svg/highQuality.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/icon-compass1.svg b/src/renderer/src/icons/svg/icon-compass1.svg
deleted file mode 100644
index 3352557..0000000
--- a/src/renderer/src/icons/svg/icon-compass1.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/icon-compass2.svg b/src/renderer/src/icons/svg/icon-compass2.svg
deleted file mode 100644
index db6c964..0000000
--- a/src/renderer/src/icons/svg/icon-compass2.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/icon-compass3.svg b/src/renderer/src/icons/svg/icon-compass3.svg
deleted file mode 100644
index 988d759..0000000
--- a/src/renderer/src/icons/svg/icon-compass3.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/icon-compass4.svg b/src/renderer/src/icons/svg/icon-compass4.svg
deleted file mode 100644
index 85bcd72..0000000
--- a/src/renderer/src/icons/svg/icon-compass4.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/importHeader.svg b/src/renderer/src/icons/svg/importHeader.svg
deleted file mode 100644
index 7c38135..0000000
--- a/src/renderer/src/icons/svg/importHeader.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/importHeader1.svg b/src/renderer/src/icons/svg/importHeader1.svg
deleted file mode 100644
index 9786685..0000000
--- a/src/renderer/src/icons/svg/importHeader1.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/importImg.svg b/src/renderer/src/icons/svg/importImg.svg
deleted file mode 100644
index cbcb4e2..0000000
--- a/src/renderer/src/icons/svg/importImg.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/importModel.svg b/src/renderer/src/icons/svg/importModel.svg
deleted file mode 100644
index 9b6a58e..0000000
--- a/src/renderer/src/icons/svg/importModel.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/importPanorama.svg b/src/renderer/src/icons/svg/importPanorama.svg
deleted file mode 100644
index a4b5898..0000000
--- a/src/renderer/src/icons/svg/importPanorama.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/index.js b/src/renderer/src/icons/svg/index.js
deleted file mode 100644
index e197e7d..0000000
--- a/src/renderer/src/icons/svg/index.js
+++ /dev/null
@@ -1,1449 +0,0 @@
-import Dialog from '../../Obj/Element/Dialog';
-import Tools from '../../Tools';
-import { legp } from '../../Obj/Element/datalist'
-import { getTemplateData } from './dataSource.js'
-
-let tools = new Tools();
-
-
-async function MapPrint(sdk, thumbnailImg, rectangle, originalImg) {
- let exporting = false;
- let templateData = getTemplateData(tools)
- let _DialogObject
- let template = '1'
- let unitDistance
- let isLoad = true
- let borderImage
- let margin = 0
- let svgText
- let title = {
- text: '标题',
- height: 40,
- bgColor: '#5d5d5d',
- color: '#ffffff',
- show: true,
- }
-
- let border = {
- show: true,
- url: tools.getSourceRootPath() + '/custom/img/map-border1.svg',
- width: 20,
- }
-
- let data = [
- {
- text: '',
- x: 10,
- y: 100,
- height: 24,
- fontSize: 24,
- isSelected: false,
- show: true,
- color: '#ffffff',
- },
- {
- text: '-',
- x: 10,
- y: 100,
- height: 24,
- fontSize: 24,
- isSelected: false,
- show: true,
- color: '#ffffff',
- },
- {
- x: 10,
- y: 100,
- width: 100,
- height: 100,
- show: false,
- isSelected: false,
- url: tools.getSourceRootPath() + '/custom/img/icon-compass1.svg'
- }
- ]
-
- // 比例尺
- let plottingScale = {
- cell: 2,
- color: '#ffffff',
- show: true,
- isSelected: false,
- x: 10,
- y: 100,
- width: 100,
- }
-
- let compassList = [
- '/custom/img/icon-compass1.svg',
- '/custom/img/icon-compass2.svg',
- '/custom/img/icon-compass3.svg',
- '/custom/img/icon-compass4.svg'
- ]
-
- if (_DialogObject) {
- _DialogObject.close()
- _DialogObject = null
- }
- _DialogObject = await new Dialog(sdk, {}, {
- title: '地图打印', left: '5%', top: '10%', ismove: false
- })
- _DialogObject._element.body.className = _DialogObject._element.body.className + ' map-print'
- let contentElm = document.createElement('div');
- contentElm.innerHTML = `
-
-
-
-
地图要素
-
-
-
指北针
-
-
-
- ${(() => {
- let str = '';
- for (let i = 0; i < compassList.length; i++) {
- const compass = tools.getSourceRootPath() + compassList[i];
- str += `
-
-

-
`
- }
- return str
- })()}
-
-
-
-
-
-
-
-
- `;
- _DialogObject.contentAppChild(contentElm)
- let leftElm = contentElm.getElementsByClassName('left')[0]
- let rightElm = contentElm.getElementsByClassName('right')[0]
- // let mapImgBoxElm = rightElm.getElementsByClassName('map-img-box')[0]
- let titleInputElm = leftElm.getElementsByClassName('title-input')[0]
- let titleCheckboxElm = leftElm.getElementsByClassName('title-checkbox')[0]
- let unitInputElm = leftElm.getElementsByClassName('unit-input')[0]
- let unitCheckboxElm = leftElm.getElementsByClassName('unit-checkbox')[0]
- let compassCheckboxElm = leftElm.getElementsByClassName('compass-checkbox')[0]
- let compassRadiosElm = leftElm.getElementsByClassName('compass-radio')
- let plottingScaleCheckboxElm = leftElm.getElementsByClassName('plotting-scale-checkbox')[0]
- let mapBorderCheckboxElm = leftElm.getElementsByClassName('map-border-checkbox')[0]
-
-
- let canvas = document.createElement('canvas');
- let ctx = canvas.getContext('2d');
- rightElm.appendChild(canvas)
- let imgElm = new Image();
- imgElm.src = thumbnailImg
-
- imgElm.onload = function () {
- isLoad = false
- getPlottingScale()
- changeTemplate(template)
- }
-
-
-
- // 标题
- titleInputElm.value = title.text;
- titleCheckboxElm.checked = title.show;
- titleInputElm.addEventListener('input', function () {
- title.text = this.value;
- if (imgElm.complete) {
- updateCanvas()
- }
- });
- titleCheckboxElm.addEventListener('change', function () {
- title.show = this.checked;
- if (imgElm.complete) {
- updateCanvas()
- }
- });
-
- // 制图单位
- unitInputElm.value = data[1].text;
- unitCheckboxElm.checked = data[1].show;
- unitInputElm.addEventListener('input', function () {
- data[1].text = this.value;
- if (imgElm && imgElm.complete) {
- updateCanvas()
- }
- });
- unitCheckboxElm.addEventListener('change', function () {
- data[1].show = this.checked;
- if (imgElm && imgElm.complete) {
- updateCanvas()
- }
- })
-
- // 指北针
- compassCheckboxElm.checked = data[2].show;
- compassCheckboxElm.addEventListener('change', function () {
- data[2].show = this.checked;
- if (imgElm && imgElm.complete) {
- updateCanvas()
- }
- })
- for (let i = 0; i < compassRadiosElm.length; i++) {
- compassRadiosElm[i].addEventListener('change', function () {
- if (this.checked) {
- data[2].svg = null
- data[2].url = compassList[i]
- if (imgElm && imgElm.complete) {
- updateCanvas()
- }
- }
- })
- }
-
- // 比例尺
- plottingScaleCheckboxElm.checked = plottingScale.show;
- plottingScaleCheckboxElm.addEventListener('change', function () {
- plottingScale.show = this.checked;
- if (imgElm && imgElm.complete) {
- updateCanvas()
- }
- })
-
- // 图框
- mapBorderCheckboxElm.checked = border.show;
- mapBorderCheckboxElm.addEventListener('change', function () {
- border.show = this.checked;
- if (borderImage && borderImage.complete) {
- updateCanvas()
- }
- })
- let borderColorPicker = new YJColorPicker({
- el: contentElm.getElementsByClassName('border-color')[0],
- size: 'mini', //颜色box类型
- alpha: false, //是否开启透明度
- defaultColor: border.color,
- disabled: false, //是否禁止打开颜色选择器
- openPickerAni: 'opacity', //打开颜色选择器动画
- sure: color => {
- changeMapBorderColor(color)
- }, //点击确认按钮事件回调
- clear: () => {
- changeMapBorderColor('rgba(0,0,0,1)')
- } //点击清空按钮事件回调
- })
-
-
-
- let jeDateObject
-
-
- let printDateCheckboxElm
- let mapBorderDataLegpElm
- let mapBorderObject
- let iActiveElm
-
- let closeBtn
- let exportBtn
-
- setTimeout(() => {
- closeBtn = _DialogObject._element.foot.getElementsByClassName('close')[0]
- exportBtn = document.createElement('button')
- exportBtn.className = 'export';
- exportBtn.innerHTML = '打印';
- leftElm.appendChild(closeBtn)
- leftElm.appendChild(exportBtn)
- exportBtn.addEventListener('click', function () {
- if (exporting) {
- return
- }
- exporting = true
- exportBtn.innerHTML = '打印'
- exportMap()
- // exporting = true
- // exportBtn.innerHTML = '打印'
- // let imgBlobData = canvas.toDataURL();
- // let downloadElement = document.createElement('a');
- // downloadElement.href = imgBlobData;
- // downloadElement.download = `高清出图-${getDateTimeString()}.png`;
- // document.body.appendChild(downloadElement);
- // downloadElement.click();
- // document.body.removeChild(downloadElement);
- // URL.revokeObjectURL(imgBlobData);
- })
-
-
- // 时间
- let printDateElm = contentElm.getElementsByClassName('print-date')[0]
- printDateCheckboxElm = contentElm.getElementsByClassName('print-date-checkbox')[0]
-
- printDateCheckboxElm.checked = data[0].show;
- printDateCheckboxElm.addEventListener('change', function () {
- data[0].show = this.checked;
- if (imgElm.complete) {
- updateCanvas()
- }
- })
- jeDateObject = jeDate(printDateElm, {
- format: "YYYY-MM-DD",
- isinitVal: true,
- isClear: false,
- donefun: function (obj) {
- data[0].text = obj.val;
- if (imgElm.complete) {
- updateCanvas()
- }
- }
- });
- if (data[0].text) {
- jeDateObject.setValue(data[0].text)
- }
- else {
- jeDateObject.nowBtn && jeDateObject.nowBtn()
- data[0].text = jeDateObject.getValue()
- updateCanvas()
- }
-
-
- // 模板
- // let templateData = templateData
- let templateObject = legp(
- _DialogObject._element.content.getElementsByClassName(
- 'template-box'
- )[0],
- '.template'
- )
- if (templateObject) {
- templateObject.legp_search(templateData)
- let templateDataLegpElm = _DialogObject._element.content
- .getElementsByClassName('template')[0]
- .getElementsByTagName('input')[0]
- for (let i = 0; i < templateData.length; i++) {
- if (templateData[i].id == template) {
- templateDataLegpElm.value = templateData[i].value
- templateObject.legp_searchActive(
- templateData[i].value
- )
- break
- }
- }
- templateDataLegpElm.addEventListener('input', () => {
- for (let i = 0; i < templateData.length; i++) {
- if (templateData[i].value === templateDataLegpElm.value) {
- changeTemplate(templateData[i].id)
- break
- }
- }
- })
- }
-
- // 图框
- let mapBorderData = [
- {
- name: ``,
- value: '/custom/img/map-border1.svg',
- key: 0,
- },
- {
- name: ``,
- value: '/custom/img/map-border2.svg',
- key: 1,
- },
- {
- name: ``,
- value: '/custom/img/map-border3.svg',
- key: 2,
- },
- {
- name: ``,
- value: '/custom/img/map-border4.svg',
- key: 3,
- },
- {
- name: ``,
- value: '/custom/img/map-border5.svg',
- key: 4,
- },
- {
- name: ``,
- value: '/custom/img/map-border6.svg',
- key: 5,
- },
- ]
- mapBorderObject = legp(
- _DialogObject._element.content.getElementsByClassName(
- 'map-border-box'
- )[0],
- '.map-border'
- )
- if (mapBorderObject) {
- mapBorderObject.legp_search(mapBorderData)
- iActiveElm = document.createElement('span')
- iActiveElm.className = "icon icon-active"
- iActiveElm.style.width = 'calc(100% - 40px)'
- iActiveElm.style.height = 'calc(100% - 12px)'
- iActiveElm.style.position = 'absolute'
- iActiveElm.style.top = '6px'
- iActiveElm.style.left = '10px'
- iActiveElm.style.pointerEvents = 'none'
- iActiveElm.style.backgroundImage = `url(${tools.getSourceRootPath() + border.url})`
- iActiveElm.style.backgroundSize = 'auto 100%'
- iActiveElm.style.backgroundRepeat = 'repeat-x'
- _DialogObject._element.content
- .getElementsByClassName('map-border')[0].getElementsByClassName('cy_datalist')[0].appendChild(iActiveElm)
- mapBorderDataLegpElm = _DialogObject._element.content
- .getElementsByClassName('map-border')[0]
- .getElementsByTagName('input')[0]
- mapBorderDataLegpElm.style.fontSize = 0
- mapBorderDataLegpElm.style.color = 'transparent'
- for (let i = 0; i < mapBorderData.length; i++) {
- if (mapBorderData[i].value == border.url) {
- mapBorderDataLegpElm.value = mapBorderData[i].value
- mapBorderObject.legp_searchActive(
- mapBorderData[i].value
- )
- break
- }
- }
- mapBorderDataLegpElm.addEventListener('input', () => {
- for (let i = 0; i < mapBorderData.length; i++) {
- if (mapBorderData[i].value === mapBorderDataLegpElm.value) {
- iActiveElm.style.backgroundImage = `url(${tools.getSourceRootPath() + mapBorderData[i].value})`
- changeMapBorder(mapBorderData[i].value)
- break
- }
- }
- })
- }
- }, 0);
-
- function initData() {
- if (isLoad) {
- return
- }
- margin = margin * imgElm.width
- triggerRange = imgElm.height / 140;
-
- titleInputElm.value = title.text;
- titleCheckboxElm.checked = title.show;
- unitInputElm.value = data[1].text;
- unitCheckboxElm.checked = data[1].show;
- compassCheckboxElm.checked = data[2].show;
- for (let i = 0; i < compassList.length; i++) {
- if (compassList[i] === data[2].url) {
- compassRadiosElm[i].checked = true
- }
- }
- plottingScaleCheckboxElm.checked = plottingScale.show;
-
- border.width = imgElm.width * border.width
- let allmargin = margin
- if (border.show && borderImage && borderImage.complete) {
- allmargin = allmargin + border.width
- }
-
- canvas.width = imgElm.width + (allmargin * 2)
- canvas.height = imgElm.height + (allmargin * 2)
-
- printDateCheckboxElm && (printDateCheckboxElm.checked = data[0].show);
- if (jeDateObject) {
- if (data[0].text) {
- jeDateObject.setValue(data[0].text)
- }
- else {
- jeDateObject.nowBtn && jeDateObject.nowBtn()
- data[0].text = jeDateObject.getValue()
- }
- }
-
- // plottingScale.x = imgElm.width * plottingScale.x;
- // plottingScale.y = imgElm.height * plottingScale.y;
-
-
- if (mapBorderObject && mapBorderDataLegpElm && iActiveElm) {
- mapBorderDataLegpElm.value = border.url;
- mapBorderObject.legp_searchActive(
- border.url
- )
- iActiveElm.style.backgroundImage = `url(${tools.getSourceRootPath() + border.url})`
- }
- mapBorderCheckboxElm.checked = border.show;
- borderImage = null
- if (border && border.url) {
- changeMapBorder(border.url)
- }
- }
-
- function changeTemplate(v) {
- template = v
- templateData = getTemplateData(tools)
- for (let i = 0; i < templateData.length; i++) {
- if (templateData[i].id === template) {
- title = templateData[i].title || title
- margin = ((!templateData[i].margin && templateData[i].margin != 0) ? margin : templateData[i].margin)
- data = templateData[i].data || data
- border = templateData[i].border || border
- border.color = border.color || '#000000'
- plottingScale = templateData[i].plottingScale || plottingScale
- break
- }
- }
- initData()
- updateCanvas()
- }
-
- function changeMapBorder(v) {
- border.url = v
- if (!border.url) {
- return
- }
- borderImage = new Image();
- borderImage.setAttribute('crossOrigin', 'anonymous');
- if (border.url.endsWith('svg')) {
- fetch(tools.getSourceRootPath() + border.url).then(async (response) => {
- if (response.ok) {
- svgText = await response.text();
- changeMapBorderColor(border.color)
- }
- })
- }
- else {
- borderImage.src = tools.getSourceRootPath() + border.url;
- borderImage.onload = () => {
- if (border.show) {
- updateCanvas();
- }
- }
- }
- }
-
- function changeMapBorderColor(color) {
- border.color = color || '#000000'
- new YJColorPicker({
- el: contentElm.getElementsByClassName('border-color')[0],
- size: 'mini', //颜色box类型
- alpha: false, //是否开启透明度
- defaultColor: border.color,
- disabled: false, //是否禁止打开颜色选择器
- openPickerAni: 'opacity', //打开颜色选择器动画
- sure: color => {
- changeMapBorderColor(color)
- }, //点击确认按钮事件回调
- clear: () => {
- changeMapBorderColor('rgba(0,0,0,1)')
- } //点击清空按钮事件回调
- })
- let currentSvg
- let svgDataUrl
- if (color) {
- const colorRegex = /fill="[^"]+"/g;
- currentSvg = svgText.replace(colorRegex, `fill="${color}"`);
- }
- else {
- currentSvg = svgText
- }
- svgDataUrl = 'data:image/svg+xml;base64,' +
- btoa(Array.from(new TextEncoder().encode(currentSvg),
- (byte) => String.fromCharCode(byte)).join(''));
- borderImage = new Image();
- borderImage.setAttribute('crossOrigin', 'anonymous');
- borderImage.src = svgDataUrl;
- borderImage.onload = () => {
- if (border.show) {
- updateCanvas();
- }
- }
- }
-
-
-
- let isDragging = false;
- let triggerRange = 5;
- let selectedElement = null;
- let isDraggingElement = false;
- let isResizingElement = false;
- let resizeCorner = null;
- let startX, startY, startY2, startX2;
- let elementOffsetX, elementOffsetY;
- let elementWidth, elementHeight;
- let currentFontSize; // 记录当前字体大小
-
- function getCanvasMouseY(e) {
- const rect = canvas.getBoundingClientRect();
- const containerWidth = rect.width;
- const containerHeight = rect.height;
- const canvasWidth = canvas.width;
- const canvasHeight = canvas.height;
-
- let scale;
- if (canvasWidth / canvasHeight > containerWidth / containerHeight) {
- scale = containerWidth / canvasWidth;
- } else {
- scale = containerHeight / canvasHeight;
- }
-
- const scaledWidth = canvasWidth * scale;
- const scaledHeight = canvasHeight * scale;
- const offsetX = (containerWidth - scaledWidth) / 2;
- const offsetY = (containerHeight - scaledHeight) / 2;
-
- const clientY = e.clientY - rect.top - offsetY;
- return clientY / scale;
- }
-
- function getCanvasMouseX(e) {
- const rect = canvas.getBoundingClientRect();
- const containerWidth = rect.width;
- const containerHeight = rect.height;
- const canvasWidth = canvas.width;
- const canvasHeight = canvas.height;
-
- let scale;
- if (canvasWidth / canvasHeight > containerWidth / containerHeight) {
- scale = containerWidth / canvasWidth;
- } else {
- scale = containerHeight / canvasHeight;
- }
-
- const scaledWidth = canvasWidth * scale;
- const scaledHeight = canvasHeight * scale;
- const offsetX = (containerWidth - scaledWidth) / 2;
- const offsetY = (containerHeight - scaledHeight) / 2;
-
- const clientX = e.clientX - rect.left - offsetX;
- return clientX / scale;
- }
-
- function getCorners(element, allmargin) {
- let elementX = element.x * imgElm.width + allmargin;
- let elementY = element.y * imgElm.height + allmargin;
- let elementWidth = element.width * imgElm.height;
- let elementHeight = element.height * imgElm.height;
- if ('text' in element) {
- return [
- { x: elementX, y: elementY - elementHeight },
- { x: elementX + elementWidth, y: elementY - elementHeight },
- { x: elementX, y: elementY },
- { x: elementX + elementWidth, y: elementY }
- ];
- } else if ('url' in element) {
- return [
- { x: elementX, y: elementY },
- { x: elementX + elementWidth, y: elementY },
- { x: elementX, y: elementY + elementHeight },
- { x: elementX + elementWidth, y: elementY + elementHeight }
- ];
- } else {
- // 比例尺
- return [
- { x: elementX, y: elementY },
- { x: elementX + elementWidth, y: elementY },
- { x: elementX, y: elementY + elementHeight },
- { x: elementX + elementWidth, y: elementY + elementHeight }
- ]
- }
- }
-
- function updateCanvas() {
- if (isLoad) {
- return
- }
-
- let allmargin = margin
- if (border.show && borderImage && borderImage.complete) {
- allmargin = allmargin + border.width
- }
-
- canvas.width = imgElm.width + (allmargin * 2)
- canvas.height = imgElm.height + (allmargin * 2)
- ctx.clearRect(0, 0, canvas.width, canvas.height);
- ctx.rect(0, 0, canvas.width, canvas.height);
- ctx.fillStyle = "#ffffff";
- ctx.fill();
- ctx.drawImage(imgElm, allmargin, allmargin, imgElm.width, imgElm.height);
-
- // 标题内容
- if (title.show) {
- const text = title.text;
- const fontSize = Math.max(5, (title.height * imgElm.height) * 0.5);
- ctx.font = `${fontSize}px serif`;
- // const textWidth = ctx.measureText(text).width;
- ctx.fillStyle = title.bgColor || '#5d5d5d';
-
- ctx.fillRect(allmargin, allmargin, canvas.width - (allmargin * 2), (title.height * imgElm.height));
-
- ctx.fillStyle = title.color || 'white';
- ctx.textAlign = 'center';
- ctx.textBaseline = 'middle';
- ctx.fillText(text, canvas.width / 2, ((title.height * imgElm.height) / 2) + allmargin);
- }
-
- // 其他内容
- for (let i = 0; i < data.length; i++) {
- if (data[i].show) {
- if ('text' in data[i]) {
- ctx.font = `${imgElm.height * data[i].height}px serif`;
- ctx.fillStyle = data[i].color || 'white';
- ctx.textAlign = 'left';
- ctx.textBaseline = 'bottom';
- data[i].width = ctx.measureText(data[i].text).width / imgElm.height;
- ctx.fillText(data[i].text, (imgElm.width * data[i].x) + allmargin, (imgElm.height * data[i].y) + allmargin);
- if (data[i].isSelected) {
- drawSelectionBorder(data[i]);
- }
- }
- else if ('url' in data[i]) {
- if (data[i].svg && data[i].svg.complete) {
- ctx.drawImage(data[i].svg, (imgElm.width * data[i].x) + allmargin, (imgElm.height * data[i].y) + allmargin, imgElm.height * data[i].width, imgElm.height * data[i].height);
- if (data[i].isSelected) {
- drawSelectionBorder(data[i]);
- }
- }
- else {
- const svg = new Image();
- svg.src = tools.getSourceRootPath() + data[i].url;
- svg.onload = function () {
- data[i].svg = svg
- ctx.drawImage(svg, (imgElm.width * data[i].x) + allmargin, (imgElm.height * data[i].y) + allmargin, imgElm.height * data[i].width, imgElm.height * data[i].height);
- if (data[i].isSelected) {
- drawSelectionBorder(data[i]);
- }
- }
- }
- }
- }
- }
-
- // 比例尺
- if (plottingScale.show) {
- let allmargin = margin
- if (border.show && borderImage && borderImage.complete) {
- allmargin = allmargin + border.width
- }
- let plottingScaleX = imgElm.width * plottingScale.x + allmargin
- let plottingScaleY = imgElm.height * plottingScale.y + allmargin
- let unit = 'm'
- // const fontSize = plottingScale.width * 0.12;
- const fontSize = imgElm.width * 0.08 * 0.12;
- let spacing = imgElm.width * 0.08 / plottingScale.cell;
- let spacingDistance = Math.round(unitDistance * spacing);
- let spacingDistanceString = spacingDistance + ''
- if (spacingDistance < 10) {
- }
- else {
- spacingDistance = Number(spacingDistanceString[0])
- for (let i = 0; i < spacingDistanceString.length - 1; i++) {
- spacingDistance = spacingDistance * 10
- }
- spacing = spacingDistance / unitDistance
- }
- plottingScale.width = spacing * plottingScale.cell;
- plottingScale.height = plottingScale.width * 0.2;
- if (spacingDistance >= 1000) {
- unit = '㎞'
- spacingDistance = Math.round(spacingDistance / 1000);
- }
- const scaleY = plottingScaleY;
- ctx.beginPath();
- ctx.moveTo(plottingScaleX, scaleY);
- ctx.lineTo(plottingScaleX + plottingScale.width, scaleY);
- ctx.strokeStyle = plottingScale.color;
- ctx.lineWidth = plottingScale.width * 0.01;
- ctx.stroke();
-
- let tickX = 0
- for (let i = 0; i <= plottingScale.cell; i++) {
- tickX = plottingScaleX + i * spacing;
- ctx.beginPath();
- ctx.moveTo(tickX, scaleY - plottingScale.width * 0.1);
- ctx.lineTo(tickX, scaleY);
- ctx.strokeStyle = plottingScale.color;
- ctx.lineWidth = plottingScale.width * 0.01;
- ctx.stroke();
-
- ctx.font = `${fontSize}px Arial`;
- ctx.fillStyle = plottingScale.color;
- ctx.textAlign = 'center';
- ctx.textBaseline = 'bottom';
- ctx.fillText(i * spacingDistance, tickX, scaleY - plottingScale.width * 0.1);
- }
-
- ctx.font = `${fontSize}px Arial`;
- ctx.fillStyle = plottingScale.color;
- ctx.textAlign = 'left';
- ctx.textBaseline = 'bottom';
- ctx.fillText(unit, tickX + (fontSize * 1.2), scaleY - plottingScale.width * 0.1);
-
- if (plottingScale.isSelected) {
- drawSelectionBorder(plottingScale);
- }
- }
-
- // 边框
- if (border.show && borderImage && borderImage.complete) {
- // 绘制四个角(裁剪成45度角)
- drawBorder(ctx, borderImage, margin, margin, border.width, 'top', 1);
- drawBorder(ctx, borderImage, canvas.width - border.width - margin, margin, border.width, 'right', 1);
- drawBorder(ctx, borderImage, canvas.width - border.width - margin, canvas.height - border.width - margin, border.width, 'bottom', 1);
- drawBorder(ctx, borderImage, margin, canvas.height - border.width - margin, border.width, 'left', 1);
- }
- }
-
- // 绘制边框
- function drawBorder(ctx, img, x, y, size, position, isStart = 1) {
- ctx.save();
- ctx.translate(x + size / 2, y + size / 2);
-
- // 根据位置设置旋转角度
- switch (position) {
- case 'right':
- ctx.rotate(Math.PI / 2);
- break;
- case 'bottom':
- ctx.rotate(Math.PI);
- break;
- case 'left':
- ctx.rotate(3 * Math.PI / 2);
- break;
- }
- // 创建45度角的裁剪路径
- ctx.beginPath();
- ctx.moveTo((-size * isStart) / 2, -size / 2);
- if (position === 'top' || position === 'bottom') {
- ctx.lineTo(canvas.width - (margin * 2) - (size / 2), -size / 2);
- ctx.lineTo(canvas.width - (margin + size) * 2 + (size / 2), size / 2);
- }
- else {
- ctx.lineTo(canvas.height - (margin * 2) - (size / 2), -size / 2);
- ctx.lineTo(canvas.height - (margin + size) * 2 + (size / 2), size / 2);
- }
- ctx.lineTo((size * isStart) / 2, size / 2);
- ctx.closePath();
- ctx.clip();
-
- let imgWidth = img.width / img.height * size
-
- // 绘制图片
- ctx.drawImage(img, -size / 2, -size / 2, imgWidth, size);
-
- let count;
- if (position === 'top' || position === 'bottom') {
- count = Math.ceil((canvas.width - (margin * 2) - (border.width * 2)) / border.width);
- } else {
- count = Math.ceil((canvas.height - (margin * 2) - (border.width * 2)) / border.width);
- }
- count++
-
- for (let i = 1; i <= count; i++) {
- ctx.drawImage(img, -size / 2 + imgWidth * i, -size / 2, imgWidth, size);
- }
-
- ctx.restore();
- }
-
- function drawSelectionBorder(element) {
- let allmargin = margin
- if (border.show && borderImage && borderImage.complete) {
- allmargin = allmargin + border.width
- }
- const cornerRadius = canvas.height * 0.005;
- ctx.strokeStyle = 'red';
- ctx.lineWidth = canvas.height * 0.002;
- if ('text' in element) {
- ctx.strokeRect((imgElm.width * element.x + allmargin), (imgElm.height * element.y + allmargin) - (imgElm.height * element.height), (imgElm.height * element.width), (imgElm.height * element.height));
- } else if ('url' in element) {
- ctx.strokeRect((imgElm.width * element.x + allmargin), (imgElm.height * element.y + allmargin), (imgElm.height * element.width), (imgElm.height * element.height));
- }
- else if (element === plottingScale) {
- ctx.strokeRect((imgElm.width * element.x + allmargin) - (plottingScale.width * 0.2), (imgElm.height * element.y + allmargin) - element.height - (plottingScale.height * 0.5), element.width + (plottingScale.width * 0.6), element.height + (plottingScale.height));
- return
- }
- const corners = getCorners(element, allmargin);
- ctx.fillStyle = 'red';
- corners.forEach(corner => {
- ctx.beginPath();
- ctx.arc(corner.x, corner.y, cornerRadius, 0, 2 * Math.PI);
- ctx.fill();
- });
- }
-
- canvas.addEventListener('mousedown', function (e) {
- const x = getCanvasMouseX(e);
- const y = getCanvasMouseY(e);
- let allmargin = margin
- if (border.show && borderImage && borderImage.complete) {
- allmargin = allmargin + border.width
- }
-
- if (title.show) {
- // 检查是否点击了标题编辑触发区域
- if (y >= ((title.height * imgElm.height) + allmargin) - triggerRange && y <= ((title.height * imgElm.height) + allmargin) + triggerRange) {
- isDragging = true;
-
- // 先将所有元素的选中状态置为 false
- for (let i = 0; i < data.length; i++) {
- data[i].isSelected = false;
- }
- selectedElement = null;
- isDraggingElement = false;
- isResizingElement = false;
- resizeCorner = null;
- return
- }
- }
-
-
- // 检查是否点击了边框角上的小圆点
- if (selectedElement && selectedElement !== plottingScale) {
- const cornerRadius = canvas.height * 0.005;
- const corners = getCorners(selectedElement, allmargin);
- corners.forEach((corner, index) => {
- if (x >= corner.x - cornerRadius && x <= corner.x + cornerRadius &&
- y >= corner.y - cornerRadius && y <= corner.y + cornerRadius) {
- isResizingElement = true;
- isDraggingElement = false;
- resizeCorner = index;
- startX = x;
- startY = y;
- elementWidth = (selectedElement.width * imgElm.height);
- elementHeight = (selectedElement.height * imgElm.height);
- if ('text' in selectedElement) {
- elementWidth = (selectedElement.width * imgElm.height);
- currentFontSize = selectedElement.height;
- }
- }
- });
- }
- if (isResizingElement) {
- return
- }
-
- // 先将所有元素的选中状态置为 false
- for (let i = 0; i < data.length; i++) {
- data[i].isSelected = false;
- }
- plottingScale.isSelected = false;
- selectedElement = null;
- isDraggingElement = false;
- isResizingElement = false;
- resizeCorner = null;
-
- for (let i = data.length - 1; i >= 0; i--) {
- if (data[i].show) {
- if ('text' in data[i]) {
- if (x >= (imgElm.width * data[i].x) + allmargin && x <= (imgElm.width * data[i].x) + allmargin + (imgElm.height * data[i].width) &&
- y >= (imgElm.height * data[i].y) + allmargin - (imgElm.height * data[i].height) && y <= (imgElm.height * data[i].y) + allmargin) {
- selectedElement = data[i];
- data[i].isSelected = true;
- isDraggingElement = true;
- startX = x;
- startY = y;
- startY2 = (imgElm.height * data[i].y) - (imgElm.height * data[i].height)
- startX2 = (imgElm.width * data[i].x) + (imgElm.height * data[i].width)
- elementOffsetX = (imgElm.width * data[i].x) + allmargin;
- elementOffsetY = (imgElm.height * data[i].y) + allmargin;
- updateCanvas(); // 点击时重新绘制画布以显示边框
- break;
- }
- }
- if ('url' in data[i]) {
- if (data[i].svg && data[i].svg.complete && data[i].show) {
- if (x >= (imgElm.width * data[i].x) + allmargin && x <= (imgElm.width * data[i].x) + allmargin + (imgElm.height * data[i].width) &&
- y >= (imgElm.height * data[i].y) + allmargin && y <= (imgElm.height * data[i].y) + allmargin + (imgElm.height * data[i].height)) {
- selectedElement = data[i];
- data[i].isSelected = true;
- isDraggingElement = true;
- startX = x;
- startY = y;
- startY2 = (imgElm.height * data[i].y) + (imgElm.height * data[i].height)
- startX2 = (imgElm.width * data[i].x) + (imgElm.height * data[i].width);
- elementOffsetX = (imgElm.width * data[i].x) + allmargin;
- elementOffsetY = (imgElm.height * data[i].y) + allmargin;
- updateCanvas(); // 点击时重新绘制画布以显示边框
- break;
- }
- }
- }
- }
- }
-
- if (plottingScale.show) {
- if (x >= (imgElm.width * plottingScale.x + allmargin) - (plottingScale.width * 0.2) && x <= (imgElm.width * plottingScale.x + allmargin) - (plottingScale.width * 0.2) + plottingScale.width + (plottingScale.width * 0.6) &&
- y >= (imgElm.height * plottingScale.y + allmargin) - plottingScale.height - (plottingScale.height * 0.5) && y <= (imgElm.height * plottingScale.y + allmargin) - (plottingScale.height * 0.5) + (plottingScale.height)) {
- selectedElement = plottingScale;
- plottingScale.isSelected = true;
- isDraggingElement = true;
- startX = x;
- startY = y;
- startY2 = (imgElm.height * plottingScale.y + allmargin) + plottingScale.height;
- startX2 = (imgElm.width * plottingScale.x + allmargin) + plottingScale.width;
- elementOffsetX = (imgElm.width * plottingScale.x + allmargin);
- elementOffsetY = imgElm.height * plottingScale.y + allmargin;
- updateCanvas(); // 点击时重新绘制画布以显示边框
- }
- }
-
- // 如果点击在内容以外,重新绘制画布以移除边框
- if (!selectedElement) {
- updateCanvas();
- }
- });
-
- canvas.addEventListener('mousemove', function (e) {
- let allmargin = margin
- if (border.show && borderImage && borderImage.complete) {
- allmargin = allmargin + border.width
- }
- const x = getCanvasMouseX(e);
- const y = getCanvasMouseY(e);
- if (x < 0 || y < 0 || x > canvas.width || y > canvas.height) {
- return
- }
-
- if (title.show) {
- let allmargin = margin
- if (border.show && borderImage && borderImage.complete) {
- allmargin = allmargin + border.width
- }
- if (y >= ((title.height * imgElm.height) + allmargin) - triggerRange && y <= ((title.height * imgElm.height) + allmargin) + triggerRange) {
- canvas.style.cursor = 'n-resize';
- } else {
- canvas.style.cursor = 'default';
- }
-
- if (isDragging) {
- title.height = Math.min(Math.max(y - allmargin, 30) / imgElm.height, 1);
- updateCanvas();
- }
- }
-
-
- if (isDraggingElement) {
- const dx = x - startX;
- const dy = y - startY;
- selectedElement.x = ((elementOffsetX + dx) - allmargin) / imgElm.width;
- selectedElement.y = ((elementOffsetY + dy) - allmargin) / imgElm.height;
- updateCanvas();
- }
-
- if (isResizingElement) {
- const dx = x - startX;
- const dy = y - startY;
- let scaleFactor;
-
- switch (resizeCorner) {
- case 0: // 左上角
- if ('text' in selectedElement) {
- scaleFactor = (elementWidth - dx) / elementWidth;
- selectedElement.height = Math.max((10 / imgElm.height), currentFontSize * scaleFactor)
- selectedElement.x = (startX2 - (selectedElement.width * imgElm.height)) / imgElm.width;
- }
- else if ('url' in selectedElement) {
- selectedElement.x = (startX2 - (selectedElement.width * imgElm.height)) / imgElm.width;
- selectedElement.y = (startY2 - (selectedElement.height * imgElm.height)) / imgElm.height;
- selectedElement.width = Math.max(10, elementWidth - dx) / imgElm.height;
- selectedElement.height = Math.max(10, elementHeight - dy) / imgElm.height;
- }
- break;
- case 1: // 右上角
- if ('text' in selectedElement) {
- scaleFactor = (elementWidth + dx) / elementWidth;
- selectedElement.height = Math.max((10 / imgElm.height), currentFontSize * scaleFactor);
- }
- else if ('url' in selectedElement) {
- selectedElement.width = Math.max(10, elementWidth + dx) / imgElm.height;
- selectedElement.height = Math.max(10, elementHeight - dy) / imgElm.height;
- selectedElement.y = (startY2 - (selectedElement.height * imgElm.height)) / imgElm.height;
- }
- break;
- case 2: // 左下角
- if ('text' in selectedElement) {
- scaleFactor = (elementWidth - dx) / elementWidth;
- selectedElement.height = Math.max((10 / imgElm.height), currentFontSize * scaleFactor);
- selectedElement.x = (startX2 - (selectedElement.width * imgElm.height)) / imgElm.width;
- selectedElement.y = (startY2 + (selectedElement.height * imgElm.height)) / imgElm.height;
- }
- else if ('url' in selectedElement) {
- selectedElement.x = (startX2 - (selectedElement.width * imgElm.height)) / imgElm.width;
- selectedElement.width = Math.max(10, elementWidth - dx) / imgElm.height;
- selectedElement.height = Math.max(10, elementHeight + dy) / imgElm.height;
- }
- break;
- case 3: // 右下角
- if ('text' in selectedElement) {
- scaleFactor = (elementWidth + dx) / elementWidth;
- selectedElement.height = Math.max((10 / imgElm.height), currentFontSize * scaleFactor);
- selectedElement.y = (startY2 + (selectedElement.height * imgElm.height)) / imgElm.height;
- }
- else if ('url' in selectedElement) {
- selectedElement.width = Math.max(10, elementWidth + dx) / imgElm.height;
- selectedElement.height = Math.max(10, elementHeight + dy) / imgElm.height;
- }
- break;
- }
-
- updateCanvas();
- }
- });
-
- document.addEventListener('mouseup', function () {
- isDragging = false;
- let allmargin = margin
- if (border.show && borderImage && borderImage.complete) {
- allmargin = allmargin + border.width
- }
- for (let i = 0; i < data.length; i++) {
- if (data[i].show && data[i].isSelected) {
- startY2 = (imgElm.height * data[i].y) - (imgElm.height * data[i].height)
- startX2 = (imgElm.width * data[i].x) + (imgElm.height * data[i].width)
- if ('url' in data[i]) {
- startY2 = (imgElm.height * data[i].y) + (imgElm.height * data[i].height)
- startX2 = (imgElm.width * data[i].x) + (imgElm.height * data[i].width);
- }
- elementOffsetX = data[i].x;
- elementOffsetY = data[i].y;
- }
- }
- if (plottingScale.show && plottingScale.isSelected) {
- startY2 = plottingScale.y + plottingScale.height
- startX2 = plottingScale.x + plottingScale.width
- elementOffsetX = plottingScale.x;
- elementOffsetY = plottingScale.y;
- }
- isDraggingElement = false;
- isResizingElement = false;
- resizeCorner = null;
- });
-
- function getPlottingScale() {
- if (!rectangle) {
- return
- }
- let westLng = Cesium.Math.toDegrees(rectangle.west)
- let eastLng = Cesium.Math.toDegrees(rectangle.east)
- let northLat = Cesium.Math.toDegrees(rectangle.north)
- let southLat = Cesium.Math.toDegrees(rectangle.south)
-
- let from = turf.point([westLng, northLat]);
- let to = turf.point([eastLng, northLat]);
- let distance = turf.distance(from, to, { units: 'kilometers' });
-
- unitDistance = distance * 1000 / imgElm.width;
- }
-
- function getDateTimeString() {
- // 创建一个表示当前时间的 Date 对象
- const now = new Date();
- // 获取年份
- const year = now.getFullYear();
- // 获取月份(从 0 开始,所以要加 1),并将其转换为两位字符串,不足两位在前面补零
- const month = String(now.getMonth() + 1).padStart(2, '0');
- // 获取日期,并将其转换为两位字符串,不足两位在前面补零
- const day = String(now.getDate()).padStart(2, '0');
- // 获取小时,并将其转换为两位字符串,不足两位在前面补零
- const hours = String(now.getHours()).padStart(2, '0');
- // 获取分钟,并将其转换为两位字符串,不足两位在前面补零
- const minutes = String(now.getMinutes()).padStart(2, '0');
- // 获取秒,并将其转换为两位字符串,不足两位在前面补零
- const seconds = String(now.getSeconds()).padStart(2, '0');
- // 获取毫秒,并将其转换为三位字符串,不足三位在前面补零
- const milliseconds = String(now.getMilliseconds()).padStart(3, '0');
- // 将年、月、日、时、分、秒、毫秒拼接成所需的字符串
- return `${year}${month}${day}${hours}${minutes}${seconds}${milliseconds}`;
- }
-
- function exportMap() {
- let unitDistance2
- let canvas2 = document.createElement('canvas');
- let ctx2 = canvas2.getContext('2d');
- let imgElm2 = new Image();
- imgElm2.src = originalImg
- imgElm2.onload = function () {
- if (isLoad) {
- return
- }
- let title2 = { ...title }
- let data2 = JSON.parse(JSON.stringify(data))
- let plottingScale2 = { ...plottingScale }
- let border2 = { ...border }
- border2.width = border.width / imgElm.width * imgElm2.width
-
- let margin2 = margin / imgElm.width * imgElm2.width;
- let allmargin = margin2
- if (border2.show && borderImage && borderImage.complete) {
- allmargin = allmargin + border2.width
- }
-
- canvas2.width = imgElm2.width + (allmargin * 2);
- canvas2.height = imgElm2.height + (allmargin * 2);
-
- ctx2.clearRect(0, 0, canvas2.width, canvas2.height);
- ctx2.rect(0, 0, canvas2.width, canvas2.height);
- ctx2.fillStyle = "#ffffff";
- ctx2.fill();
- ctx2.drawImage(imgElm2, allmargin, allmargin, imgElm2.width, imgElm2.height);
- // 标题内容
- if (title2.show) {
- const text = title2.text;
- const fontSize = Math.max(5, (title2.height * imgElm2.height) * 0.5);
- ctx2.font = `${fontSize}px serif`;
- ctx2.fillStyle = title2.bgColor || '#5d5d5d';
-
- ctx2.fillRect(allmargin, allmargin, canvas2.width - (allmargin * 2), (title2.height * imgElm2.height));
-
- ctx2.fillStyle = title2.color || 'white';
- ctx2.textAlign = 'center';
- ctx2.textBaseline = 'middle';
- ctx2.fillText(text, canvas2.width / 2, ((title2.height * imgElm2.height) / 2) + allmargin);
- }
-
- // 其他内容
- for (let i = 0; i < data2.length; i++) {
- if (data2[i].show) {
- if ('text' in data2[i]) {
- ctx2.font = `${imgElm2.height * data2[i].height}px serif`;
- ctx2.fillStyle = data2[i].color || 'white';
- ctx2.textAlign = 'left';
- ctx2.textBaseline = 'bottom';
- data2[i].width = ctx2.measureText(data2[i].text).width / imgElm2.height;
- ctx2.fillText(data2[i].text, (imgElm2.width * data2[i].x) + allmargin, (imgElm2.height * data2[i].y) + allmargin);
- }
- else if ('url' in data2[i]) {
- if (data[i].svg && data[i].svg.complete) {
- ctx2.drawImage(data[i].svg, (imgElm2.width * data2[i].x) + allmargin, (imgElm2.height * data2[i].y) + allmargin, imgElm2.height * data2[i].width, imgElm2.height * data2[i].height);
- }
- else {
- const svg = new Image();
- svg.src = tools.getSourceRootPath() + data2[i].url;
- svg.onload = function () {
- data2[i].svg = svg
- ctx2.drawImage(svg, (imgElm2.width * data2[i].x) + allmargin, (imgElm2.height * data2[i].y) + allmargin, imgElm2.height * data2[i].width, imgElm2.height * data2[i].height)
- }
- }
- }
- }
- }
-
- // 比例尺
- if (plottingScale2.show) {
- getPlottingScale()
- let plottingScale2X = imgElm2.width * plottingScale2.x + allmargin
- let plottingScale2Y = imgElm2.height * plottingScale2.y + allmargin
- let unit = 'm'
- // const fontSize = plottingScale2.width * 0.12;
- const fontSize = imgElm2.width * 0.08 * 0.12;
- let spacing = imgElm2.width * 0.08 / plottingScale2.cell;
- let spacingDistance = Math.round(unitDistance2 * spacing);
- let spacingDistanceString = spacingDistance + ''
- if (spacingDistance < 10) {
- }
- else {
- spacingDistance = Number(spacingDistanceString[0])
- for (let i = 0; i < spacingDistanceString.length - 1; i++) {
- spacingDistance = spacingDistance * 10
- }
- spacing = spacingDistance / unitDistance2
- }
- plottingScale2.width = spacing * plottingScale2.cell;
- plottingScale2.height = plottingScale2.width * 0.2;
- if (spacingDistance >= 1000) {
- unit = '㎞'
- spacingDistance = Math.round(spacingDistance / 1000);
- }
- const scaleY = plottingScale2Y;
- ctx2.beginPath();
- ctx2.moveTo(plottingScale2X, scaleY);
- ctx2.lineTo(plottingScale2X + plottingScale2.width, scaleY);
- ctx2.strokeStyle = plottingScale2.color;
- ctx2.lineWidth = plottingScale2.width * 0.01;
- ctx2.stroke();
-
- let tickX = 0
- for (let i = 0; i <= plottingScale2.cell; i++) {
- tickX = plottingScale2X + i * spacing;
- ctx2.beginPath();
- ctx2.moveTo(tickX, scaleY - plottingScale2.width * 0.1);
- ctx2.lineTo(tickX, scaleY);
- ctx2.strokeStyle = plottingScale2.color;
- ctx2.lineWidth = plottingScale2.width * 0.01;
- ctx2.stroke();
-
- ctx2.font = `${fontSize}px Arial`;
- ctx2.fillStyle = plottingScale2.color;
- ctx2.textAlign = 'center';
- ctx2.textBaseline = 'bottom';
- ctx2.fillText(i * spacingDistance, tickX, scaleY - plottingScale2.width * 0.1);
- }
-
- ctx2.font = `${fontSize}px Arial`;
- ctx2.fillStyle = plottingScale2.color;
- ctx2.textAlign = 'left';
- ctx2.textBaseline = 'bottom';
- ctx2.fillText(unit, tickX + (fontSize * 1.2), scaleY - plottingScale2.width * 0.1);
- }
-
- // 边框
- if (border2.show && borderImage && borderImage.complete) {
- // 绘制四个角(裁剪成45度角)
- drawBorder2(ctx2, borderImage, margin2, margin2, border2.width, 'top', 1);
- drawBorder2(ctx2, borderImage, canvas2.width - border2.width - margin2, margin2, border2.width, 'right', 1);
- drawBorder2(ctx2, borderImage, canvas2.width - border2.width - margin2, canvas2.height - border2.width - margin2, border2.width, 'bottom', 1);
- drawBorder2(ctx2, borderImage, margin2, canvas2.height - border2.width - margin2, border2.width, 'left', 1);
- }
-
- function getPlottingScale() {
- if (!rectangle) {
- return
- }
- let westLng = Cesium.Math.toDegrees(rectangle.west)
- let eastLng = Cesium.Math.toDegrees(rectangle.east)
- let northLat = Cesium.Math.toDegrees(rectangle.north)
- let southLat = Cesium.Math.toDegrees(rectangle.south)
-
- let from = turf.point([westLng, northLat]);
- let to = turf.point([eastLng, northLat]);
- let distance = turf.distance(from, to, { units: 'kilometers' });
-
- unitDistance2 = distance * 1000 / imgElm2.width;
- }
-
- // 绘制边框
- function drawBorder2(ctx2, img, x, y, size, position, isStart = 1) {
- ctx2.save();
- ctx2.translate(x + size / 2, y + size / 2);
-
- // 根据位置设置旋转角度
- switch (position) {
- case 'right':
- ctx2.rotate(Math.PI / 2);
- break;
- case 'bottom':
- ctx2.rotate(Math.PI);
- break;
- case 'left':
- ctx2.rotate(3 * Math.PI / 2);
- break;
- }
- // 创建45度角的裁剪路径
- ctx2.beginPath();
- ctx2.moveTo((-size * isStart) / 2, -size / 2);
- if (position === 'top' || position === 'bottom') {
- ctx2.lineTo(canvas2.width - (margin2 * 2) - (size / 2), -size / 2);
- ctx2.lineTo(canvas2.width - (margin2 + size) * 2 + (size / 2), size / 2);
- }
- else {
- ctx2.lineTo(canvas2.height - (margin2 * 2) - (size / 2), -size / 2);
- ctx2.lineTo(canvas2.height - (margin2 + size) * 2 + (size / 2), size / 2);
- }
- ctx2.lineTo((size * isStart) / 2, size / 2);
- ctx2.closePath();
- ctx2.clip();
-
- let imgWidth = img.width / img.height * size
-
- // 绘制图片
- ctx2.drawImage(img, -size / 2, -size / 2, imgWidth, size);
-
- let count;
- if (position === 'top' || position === 'bottom') {
- count = Math.ceil((canvas2.width - (margin2 * 2) - (border2.width * 2)) / border2.width);
- } else {
- count = Math.ceil((canvas2.height - (margin2 * 2) - (border2.width * 2)) / border2.width);
- }
- count++
-
- for (let i = 1; i <= count; i++) {
- ctx2.drawImage(img, -size / 2 + imgWidth * i, -size / 2, imgWidth, size);
- }
-
- ctx2.restore();
- }
-
- // let dataURL = canvas2.toDataURL('image/jpeg', 0.95)
- // let downloadElement = document.createElement('a');
- // downloadElement.href = dataURL;
- // downloadElement.download = `高清出图-${getDateTimeString()}.jpg`;
- // document.body.appendChild(downloadElement);
- // downloadElement.click();
- // document.body.removeChild(downloadElement);
- // console.log('dataURL', dataURL)
- // URL.revokeObjectURL(dataURL);
-
- // 在释放资源后执行回调
-
- canvas2.toBlob(function (blob) {
- const url = URL.createObjectURL(blob);
- let downloadElement = document.createElement('a');
- downloadElement.href = url;
- downloadElement.download = `高清出图-${getDateTimeString()}.png`;
- document.body.appendChild(downloadElement);
- downloadElement.click();
- document.body.removeChild(downloadElement);
- }, 'image/png', 0.95);
- exporting = false;
- exportBtn.innerHTML = '打印';
- // canvas2.toBlob(function (blob) {
- // let imgBlobData = URL.createObjectURL(blob);
- // let downloadElement = document.createElement('a');
- // downloadElement.href = imgBlobData;
- // downloadElement.download = `高清出图-${getDateTimeString()}.png`;
- // document.body.appendChild(downloadElement);
- // downloadElement.click();
- // document.body.removeChild(downloadElement);
- // URL.revokeObjectURL(imgBlobData);
-
- // // 在释放资源后执行回调
- // exporting = false;
- // exportBtn.innerHTML = '打印';
- // });
- }
- }
-
-}
-
-export default MapPrint
diff --git a/src/renderer/src/icons/svg/inundationAnalysis.svg b/src/renderer/src/icons/svg/inundationAnalysis.svg
deleted file mode 100644
index 4c2abd0..0000000
--- a/src/renderer/src/icons/svg/inundationAnalysis.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/jct.svg b/src/renderer/src/icons/svg/jct.svg
deleted file mode 100644
index ca9ef48..0000000
--- a/src/renderer/src/icons/svg/jct.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/json.svg b/src/renderer/src/icons/svg/json.svg
deleted file mode 100644
index ce4a703..0000000
--- a/src/renderer/src/icons/svg/json.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/kenAnalysis.svg b/src/renderer/src/icons/svg/kenAnalysis.svg
deleted file mode 100644
index 87abb5e..0000000
--- a/src/renderer/src/icons/svg/kenAnalysis.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/kml.svg b/src/renderer/src/icons/svg/kml.svg
deleted file mode 100644
index b8fded1..0000000
--- a/src/renderer/src/icons/svg/kml.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/kmz.svg b/src/renderer/src/icons/svg/kmz.svg
deleted file mode 100644
index b8fded1..0000000
--- a/src/renderer/src/icons/svg/kmz.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/layer.svg b/src/renderer/src/icons/svg/layer.svg
deleted file mode 100644
index ba44d46..0000000
--- a/src/renderer/src/icons/svg/layer.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/layerLower.svg b/src/renderer/src/icons/svg/layerLower.svg
deleted file mode 100644
index ece0255..0000000
--- a/src/renderer/src/icons/svg/layerLower.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/layerRaise.svg b/src/renderer/src/icons/svg/layerRaise.svg
deleted file mode 100644
index c6c0c30..0000000
--- a/src/renderer/src/icons/svg/layerRaise.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/layerToBottom.svg b/src/renderer/src/icons/svg/layerToBottom.svg
deleted file mode 100644
index 5ccd1d4..0000000
--- a/src/renderer/src/icons/svg/layerToBottom.svg
+++ /dev/null
@@ -1,13 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/layerToTop.svg b/src/renderer/src/icons/svg/layerToTop.svg
deleted file mode 100644
index 4ea3de1..0000000
--- a/src/renderer/src/icons/svg/layerToTop.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/leading_in.svg b/src/renderer/src/icons/svg/leading_in.svg
deleted file mode 100644
index 9bddf1b..0000000
--- a/src/renderer/src/icons/svg/leading_in.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/leading_out.svg b/src/renderer/src/icons/svg/leading_out.svg
deleted file mode 100644
index 85cb229..0000000
--- a/src/renderer/src/icons/svg/leading_out.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/line.svg b/src/renderer/src/icons/svg/line.svg
deleted file mode 100644
index 76cdc16..0000000
--- a/src/renderer/src/icons/svg/line.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/linkImage.svg b/src/renderer/src/icons/svg/linkImage.svg
deleted file mode 100644
index 372b1f0..0000000
--- a/src/renderer/src/icons/svg/linkImage.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/loadTemp.svg b/src/renderer/src/icons/svg/loadTemp.svg
deleted file mode 100644
index 51cbd5d..0000000
--- a/src/renderer/src/icons/svg/loadTemp.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/location.svg b/src/renderer/src/icons/svg/location.svg
deleted file mode 100644
index ebc7e34..0000000
--- a/src/renderer/src/icons/svg/location.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/lopeDistanceMeasures.svg b/src/renderer/src/icons/svg/lopeDistanceMeasures.svg
deleted file mode 100644
index e50443f..0000000
--- a/src/renderer/src/icons/svg/lopeDistanceMeasures.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/map-border1.svg b/src/renderer/src/icons/svg/map-border1.svg
deleted file mode 100644
index 1d226f6..0000000
--- a/src/renderer/src/icons/svg/map-border1.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/map-border2.svg b/src/renderer/src/icons/svg/map-border2.svg
deleted file mode 100644
index b727f98..0000000
--- a/src/renderer/src/icons/svg/map-border2.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/map-border3.svg b/src/renderer/src/icons/svg/map-border3.svg
deleted file mode 100644
index aa380bd..0000000
--- a/src/renderer/src/icons/svg/map-border3.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/map-border4.svg b/src/renderer/src/icons/svg/map-border4.svg
deleted file mode 100644
index e2e38f6..0000000
--- a/src/renderer/src/icons/svg/map-border4.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/map-border5.svg b/src/renderer/src/icons/svg/map-border5.svg
deleted file mode 100644
index 02de935..0000000
--- a/src/renderer/src/icons/svg/map-border5.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/map-border6.svg b/src/renderer/src/icons/svg/map-border6.svg
deleted file mode 100644
index 630776d..0000000
--- a/src/renderer/src/icons/svg/map-border6.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/mbtiles.svg b/src/renderer/src/icons/svg/mbtiles.svg
deleted file mode 100644
index 849baa7..0000000
--- a/src/renderer/src/icons/svg/mbtiles.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/measure.svg b/src/renderer/src/icons/svg/measure.svg
deleted file mode 100644
index 8df9bac..0000000
--- a/src/renderer/src/icons/svg/measure.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/mif.svg b/src/renderer/src/icons/svg/mif.svg
deleted file mode 100644
index 0dd5c16..0000000
--- a/src/renderer/src/icons/svg/mif.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/military.svg b/src/renderer/src/icons/svg/military.svg
deleted file mode 100644
index 63e761f..0000000
--- a/src/renderer/src/icons/svg/military.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/model.svg b/src/renderer/src/icons/svg/model.svg
deleted file mode 100644
index 7db3edf..0000000
--- a/src/renderer/src/icons/svg/model.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/more.svg b/src/renderer/src/icons/svg/more.svg
deleted file mode 100644
index b0e45db..0000000
--- a/src/renderer/src/icons/svg/more.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/mouseLocation.svg b/src/renderer/src/icons/svg/mouseLocation.svg
deleted file mode 100644
index 4ff086f..0000000
--- a/src/renderer/src/icons/svg/mouseLocation.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/nightVision.svg b/src/renderer/src/icons/svg/nightVision.svg
deleted file mode 100644
index e03e58f..0000000
--- a/src/renderer/src/icons/svg/nightVision.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/out_login.svg b/src/renderer/src/icons/svg/out_login.svg
deleted file mode 100644
index 461735d..0000000
--- a/src/renderer/src/icons/svg/out_login.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/pak.svg b/src/renderer/src/icons/svg/pak.svg
deleted file mode 100644
index 217c30c..0000000
--- a/src/renderer/src/icons/svg/pak.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/panel.svg b/src/renderer/src/icons/svg/panel.svg
deleted file mode 100644
index 39c214a..0000000
--- a/src/renderer/src/icons/svg/panel.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/path.svg b/src/renderer/src/icons/svg/path.svg
deleted file mode 100644
index bf21173..0000000
--- a/src/renderer/src/icons/svg/path.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/pdf.svg b/src/renderer/src/icons/svg/pdf.svg
deleted file mode 100644
index 38c463d..0000000
--- a/src/renderer/src/icons/svg/pdf.svg
+++ /dev/null
@@ -1,16 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/peopleRoomLink.svg b/src/renderer/src/icons/svg/peopleRoomLink.svg
deleted file mode 100644
index 280bc5a..0000000
--- a/src/renderer/src/icons/svg/peopleRoomLink.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/perspective.svg b/src/renderer/src/icons/svg/perspective.svg
deleted file mode 100644
index 003dc09..0000000
--- a/src/renderer/src/icons/svg/perspective.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/pictureLocation.svg b/src/renderer/src/icons/svg/pictureLocation.svg
deleted file mode 100644
index 032f566..0000000
--- a/src/renderer/src/icons/svg/pictureLocation.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/pincerArrow.svg b/src/renderer/src/icons/svg/pincerArrow.svg
deleted file mode 100644
index f46d8d8..0000000
--- a/src/renderer/src/icons/svg/pincerArrow.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/pitchImport.svg b/src/renderer/src/icons/svg/pitchImport.svg
deleted file mode 100644
index eebca00..0000000
--- a/src/renderer/src/icons/svg/pitchImport.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/playTs.svg b/src/renderer/src/icons/svg/playTs.svg
deleted file mode 100644
index b505323..0000000
--- a/src/renderer/src/icons/svg/playTs.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/point.svg b/src/renderer/src/icons/svg/point.svg
deleted file mode 100644
index 932a40f..0000000
--- a/src/renderer/src/icons/svg/point.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/polygonStatistics.svg b/src/renderer/src/icons/svg/polygonStatistics.svg
deleted file mode 100644
index 95ce6d0..0000000
--- a/src/renderer/src/icons/svg/polygonStatistics.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/polyhedronObject.svg b/src/renderer/src/icons/svg/polyhedronObject.svg
deleted file mode 100644
index f9a6c4c..0000000
--- a/src/renderer/src/icons/svg/polyhedronObject.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/posiFly.svg b/src/renderer/src/icons/svg/posiFly.svg
deleted file mode 100644
index 5011eaf..0000000
--- a/src/renderer/src/icons/svg/posiFly.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/pressModel.svg b/src/renderer/src/icons/svg/pressModel.svg
deleted file mode 100644
index 0c8736b..0000000
--- a/src/renderer/src/icons/svg/pressModel.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/profileAnalysis.svg b/src/renderer/src/icons/svg/profileAnalysis.svg
deleted file mode 100644
index 2685e8f..0000000
--- a/src/renderer/src/icons/svg/profileAnalysis.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/projConvert.svg b/src/renderer/src/icons/svg/projConvert.svg
deleted file mode 100644
index 5461b46..0000000
--- a/src/renderer/src/icons/svg/projConvert.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/projectionArea.svg b/src/renderer/src/icons/svg/projectionArea.svg
deleted file mode 100644
index d45f9b2..0000000
--- a/src/renderer/src/icons/svg/projectionArea.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/projectionConvert.svg b/src/renderer/src/icons/svg/projectionConvert.svg
deleted file mode 100644
index 7cc7a95..0000000
--- a/src/renderer/src/icons/svg/projectionConvert.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/projectionDistanceMeasure.svg b/src/renderer/src/icons/svg/projectionDistanceMeasure.svg
deleted file mode 100644
index 65d877f..0000000
--- a/src/renderer/src/icons/svg/projectionDistanceMeasure.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/prompt.svg b/src/renderer/src/icons/svg/prompt.svg
deleted file mode 100644
index 1ec5971..0000000
--- a/src/renderer/src/icons/svg/prompt.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/pw.svg b/src/renderer/src/icons/svg/pw.svg
deleted file mode 100644
index cb29ef6..0000000
--- a/src/renderer/src/icons/svg/pw.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/qc.svg b/src/renderer/src/icons/svg/qc.svg
deleted file mode 100644
index c6eb5ac..0000000
--- a/src/renderer/src/icons/svg/qc.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/radarScan.svg b/src/renderer/src/icons/svg/radarScan.svg
deleted file mode 100644
index 84df4d3..0000000
--- a/src/renderer/src/icons/svg/radarScan.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/rain.svg b/src/renderer/src/icons/svg/rain.svg
deleted file mode 100644
index 61287fa..0000000
--- a/src/renderer/src/icons/svg/rain.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/rangeQuery.svg b/src/renderer/src/icons/svg/rangeQuery.svg
deleted file mode 100644
index f30d218..0000000
--- a/src/renderer/src/icons/svg/rangeQuery.svg
+++ /dev/null
@@ -1,21 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/rectangle.svg b/src/renderer/src/icons/svg/rectangle.svg
deleted file mode 100644
index 82bbaa8..0000000
--- a/src/renderer/src/icons/svg/rectangle.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/rename.svg b/src/renderer/src/icons/svg/rename.svg
deleted file mode 100644
index f042d6b..0000000
--- a/src/renderer/src/icons/svg/rename.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/rendezvous.svg b/src/renderer/src/icons/svg/rendezvous.svg
deleted file mode 100644
index 078c901..0000000
--- a/src/renderer/src/icons/svg/rendezvous.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/resetView.svg b/src/renderer/src/icons/svg/resetView.svg
deleted file mode 100644
index 7f3f30f..0000000
--- a/src/renderer/src/icons/svg/resetView.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/road_network.svg b/src/renderer/src/icons/svg/road_network.svg
deleted file mode 100644
index aa205a7..0000000
--- a/src/renderer/src/icons/svg/road_network.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/roam.svg b/src/renderer/src/icons/svg/roam.svg
deleted file mode 100644
index 7d1e06c..0000000
--- a/src/renderer/src/icons/svg/roam.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/routePlan.svg b/src/renderer/src/icons/svg/routePlan.svg
deleted file mode 100644
index 3f1d72d..0000000
--- a/src/renderer/src/icons/svg/routePlan.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/scanStereoscopic.svg b/src/renderer/src/icons/svg/scanStereoscopic.svg
deleted file mode 100644
index f5eac40..0000000
--- a/src/renderer/src/icons/svg/scanStereoscopic.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/screenShot.svg b/src/renderer/src/icons/svg/screenShot.svg
deleted file mode 100644
index abd4787..0000000
--- a/src/renderer/src/icons/svg/screenShot.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/search.svg b/src/renderer/src/icons/svg/search.svg
deleted file mode 100644
index ab7c475..0000000
--- a/src/renderer/src/icons/svg/search.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/sector.svg b/src/renderer/src/icons/svg/sector.svg
deleted file mode 100644
index 71d8ceb..0000000
--- a/src/renderer/src/icons/svg/sector.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/select.svg b/src/renderer/src/icons/svg/select.svg
deleted file mode 100644
index da5b316..0000000
--- a/src/renderer/src/icons/svg/select.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/setView.svg b/src/renderer/src/icons/svg/setView.svg
deleted file mode 100644
index 12a0465..0000000
--- a/src/renderer/src/icons/svg/setView.svg
+++ /dev/null
@@ -1,15 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/showAttr.svg b/src/renderer/src/icons/svg/showAttr.svg
deleted file mode 100644
index 4a62fc9..0000000
--- a/src/renderer/src/icons/svg/showAttr.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/shp.svg b/src/renderer/src/icons/svg/shp.svg
deleted file mode 100644
index 37860e5..0000000
--- a/src/renderer/src/icons/svg/shp.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/sightAnalysis.svg b/src/renderer/src/icons/svg/sightAnalysis.svg
deleted file mode 100644
index 59b03b0..0000000
--- a/src/renderer/src/icons/svg/sightAnalysis.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/sitting.svg b/src/renderer/src/icons/svg/sitting.svg
deleted file mode 100644
index e7e2984..0000000
--- a/src/renderer/src/icons/svg/sitting.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/situation.svg b/src/renderer/src/icons/svg/situation.svg
deleted file mode 100644
index 900b136..0000000
--- a/src/renderer/src/icons/svg/situation.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/skystarry.svg b/src/renderer/src/icons/svg/skystarry.svg
deleted file mode 100644
index c6bc5d4..0000000
--- a/src/renderer/src/icons/svg/skystarry.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/slopeDirection.svg b/src/renderer/src/icons/svg/slopeDirection.svg
deleted file mode 100644
index 3d63f10..0000000
--- a/src/renderer/src/icons/svg/slopeDirection.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/smoke.svg b/src/renderer/src/icons/svg/smoke.svg
deleted file mode 100644
index 11c789d..0000000
--- a/src/renderer/src/icons/svg/smoke.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/snow.svg b/src/renderer/src/icons/svg/snow.svg
deleted file mode 100644
index 794117a..0000000
--- a/src/renderer/src/icons/svg/snow.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/special.svg b/src/renderer/src/icons/svg/special.svg
deleted file mode 100644
index 584f86b..0000000
--- a/src/renderer/src/icons/svg/special.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/splitScreen.svg b/src/renderer/src/icons/svg/splitScreen.svg
deleted file mode 100644
index 5fb0d84..0000000
--- a/src/renderer/src/icons/svg/splitScreen.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/standText.svg b/src/renderer/src/icons/svg/standText.svg
deleted file mode 100644
index 15f2d63..0000000
--- a/src/renderer/src/icons/svg/standText.svg
+++ /dev/null
@@ -1,12 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/stop.svg b/src/renderer/src/icons/svg/stop.svg
deleted file mode 100644
index 8b6cfad..0000000
--- a/src/renderer/src/icons/svg/stop.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/subscript1.svg b/src/renderer/src/icons/svg/subscript1.svg
deleted file mode 100644
index 86f7f66..0000000
--- a/src/renderer/src/icons/svg/subscript1.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/subscript2.svg b/src/renderer/src/icons/svg/subscript2.svg
deleted file mode 100644
index f648550..0000000
--- a/src/renderer/src/icons/svg/subscript2.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/switch.svg b/src/renderer/src/icons/svg/switch.svg
deleted file mode 100644
index 73ce871..0000000
--- a/src/renderer/src/icons/svg/switch.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/sys_reset.svg b/src/renderer/src/icons/svg/sys_reset.svg
deleted file mode 100644
index ed6f943..0000000
--- a/src/renderer/src/icons/svg/sys_reset.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/sys_set.svg b/src/renderer/src/icons/svg/sys_set.svg
deleted file mode 100644
index a8ebb20..0000000
--- a/src/renderer/src/icons/svg/sys_set.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/tab.svg b/src/renderer/src/icons/svg/tab.svg
deleted file mode 100644
index 500b0fe..0000000
--- a/src/renderer/src/icons/svg/tab.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/tacticalCalculation.svg b/src/renderer/src/icons/svg/tacticalCalculation.svg
deleted file mode 100644
index 1e606a6..0000000
--- a/src/renderer/src/icons/svg/tacticalCalculation.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/terrainDig.svg b/src/renderer/src/icons/svg/terrainDig.svg
deleted file mode 100644
index b64cdda..0000000
--- a/src/renderer/src/icons/svg/terrainDig.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/text-bold.svg b/src/renderer/src/icons/svg/text-bold.svg
deleted file mode 100644
index 87c564a..0000000
--- a/src/renderer/src/icons/svg/text-bold.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/text-italic.svg b/src/renderer/src/icons/svg/text-italic.svg
deleted file mode 100644
index be65ba5..0000000
--- a/src/renderer/src/icons/svg/text-italic.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/text-line-bottom.svg b/src/renderer/src/icons/svg/text-line-bottom.svg
deleted file mode 100644
index ab119e3..0000000
--- a/src/renderer/src/icons/svg/text-line-bottom.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/text-line-through.svg b/src/renderer/src/icons/svg/text-line-through.svg
deleted file mode 100644
index a5e003b..0000000
--- a/src/renderer/src/icons/svg/text-line-through.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/textBox.svg b/src/renderer/src/icons/svg/textBox.svg
deleted file mode 100644
index 028852f..0000000
--- a/src/renderer/src/icons/svg/textBox.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/tilesetClipping.svg b/src/renderer/src/icons/svg/tilesetClipping.svg
deleted file mode 100644
index b01308e..0000000
--- a/src/renderer/src/icons/svg/tilesetClipping.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/tool.svg b/src/renderer/src/icons/svg/tool.svg
deleted file mode 100644
index 953c8f1..0000000
--- a/src/renderer/src/icons/svg/tool.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/transform.svg b/src/renderer/src/icons/svg/transform.svg
deleted file mode 100644
index 6003dc0..0000000
--- a/src/renderer/src/icons/svg/transform.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/triangleMeasure.svg b/src/renderer/src/icons/svg/triangleMeasure.svg
deleted file mode 100644
index 3c5ea81..0000000
--- a/src/renderer/src/icons/svg/triangleMeasure.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/turn.svg b/src/renderer/src/icons/svg/turn.svg
deleted file mode 100644
index 717ef5e..0000000
--- a/src/renderer/src/icons/svg/turn.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/src/renderer/src/icons/svg/video.svg b/src/renderer/src/icons/svg/video.svg
deleted file mode 100644
index d3d044a..0000000
--- a/src/renderer/src/icons/svg/video.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/videoRecord.svg b/src/renderer/src/icons/svg/videoRecord.svg
deleted file mode 100644
index 2d496cc..0000000
--- a/src/renderer/src/icons/svg/videoRecord.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/vrImage.svg b/src/renderer/src/icons/svg/vrImage.svg
deleted file mode 100644
index b887aa2..0000000
--- a/src/renderer/src/icons/svg/vrImage.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/wallStereoscopic.svg b/src/renderer/src/icons/svg/wallStereoscopic.svg
deleted file mode 100644
index 13d03b6..0000000
--- a/src/renderer/src/icons/svg/wallStereoscopic.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/water.svg b/src/renderer/src/icons/svg/water.svg
deleted file mode 100644
index 5f98fe1..0000000
--- a/src/renderer/src/icons/svg/water.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/waterL.svg b/src/renderer/src/icons/svg/waterL.svg
deleted file mode 100644
index c64f5b0..0000000
--- a/src/renderer/src/icons/svg/waterL.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/weather.svg b/src/renderer/src/icons/svg/weather.svg
deleted file mode 100644
index c95a14d..0000000
--- a/src/renderer/src/icons/svg/weather.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/weatherBase.svg b/src/renderer/src/icons/svg/weatherBase.svg
deleted file mode 100644
index 3b1fab3..0000000
--- a/src/renderer/src/icons/svg/weatherBase.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/xaxis.svg b/src/renderer/src/icons/svg/xaxis.svg
deleted file mode 100644
index e377f31..0000000
--- a/src/renderer/src/icons/svg/xaxis.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/yaxis.svg b/src/renderer/src/icons/svg/yaxis.svg
deleted file mode 100644
index ec16e6a..0000000
--- a/src/renderer/src/icons/svg/yaxis.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/icons/svg/zw.svg b/src/renderer/src/icons/svg/zw.svg
deleted file mode 100644
index f4dfdb2..0000000
--- a/src/renderer/src/icons/svg/zw.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/renderer/src/views/TS/cabin.vue b/src/renderer/src/views/TS/cabin.vue
index 412d0ba..e4511a8 100644
--- a/src/renderer/src/views/TS/cabin.vue
+++ b/src/renderer/src/views/TS/cabin.vue
@@ -186,7 +186,7 @@ const initTreeCallBack = () => {
});
if ((window as any).earth_ts) {
for (let i = 0; i < layers.length; i++) {
- // initMapData(layers[i].sourceType, layers[i].detail, null)
+ initMapData(layers[i].sourceType, layers[i].detail, null)
}
}
})
diff --git a/src/renderer/src/views/TS/components/MouseRight.vue b/src/renderer/src/views/TS/components/MouseRight.vue
new file mode 100644
index 0000000..7e9b7b3
--- /dev/null
+++ b/src/renderer/src/views/TS/components/MouseRight.vue
@@ -0,0 +1,112 @@
+
+
+
+
+ {{ item.name }}
+
+
+
+
+
+
+
diff --git a/src/renderer/src/views/TS/components/grid.vue b/src/renderer/src/views/TS/components/grid.vue
index b314fec..843141a 100644
--- a/src/renderer/src/views/TS/components/grid.vue
+++ b/src/renderer/src/views/TS/components/grid.vue
@@ -137,7 +137,10 @@ onMounted(() => {
for (let i = 0; i < doms.length; i++) {
doms[i].style.lineHeight = "19px"
}*/
- let panelHeight = window['tsObj']._Store.getDomElement(".chart", 0).getBoundingClientRect().height
+ let panel = window['tsObj']._Store.getDomElement(".chart", 0)
+ if (!panel)
+ return
+ let panelHeight = panel.getBoundingClientRect().height
// 转为字符串并按 "." 分割
const [whole, decimalStr] = String(panelHeight).split('.');
diff --git a/src/renderer/src/views/TS/components/rightMenuTs.vue b/src/renderer/src/views/TS/components/rightMenuTs.vue
index f2a348b..16b22bc 100644
--- a/src/renderer/src/views/TS/components/rightMenuTs.vue
+++ b/src/renderer/src/views/TS/components/rightMenuTs.vue
@@ -10,7 +10,7 @@
@click="itemClicks(item)"
>
-
+
{{ t(`rightMenu.${item.key}`) }}
diff --git a/src/renderer/src/views/TS/components/rightOperate.ts b/src/renderer/src/views/TS/components/rightOperate.ts
index 69e2380..286bcfd 100644
--- a/src/renderer/src/views/TS/components/rightOperate.ts
+++ b/src/renderer/src/views/TS/components/rightOperate.ts
@@ -128,6 +128,8 @@ export const useRightOperate = () => {
}
let detail = JSON.parse(res.data.detail)
let mapParams = {...detail, ...res.data.params}
+ if (res.data.sourceType)
+ sourceType = res.data.sourceType
initMapData(sourceType, mapParams, entity => {
entity.flyTo()
@@ -205,11 +207,12 @@ export const useRightOperate = () => {
},
addEvent: {
key: 'addEvent',
+ icon: 'addEventTs',
callback: addEvent
}
})
return {
- rightMenus
+ rightMenus, delNode, addEvent
}
}
diff --git a/src/renderer/src/views/TS/edit.vue b/src/renderer/src/views/TS/edit.vue
index a7f83cb..5555c72 100644
--- a/src/renderer/src/views/TS/edit.vue
+++ b/src/renderer/src/views/TS/edit.vue
@@ -39,6 +39,7 @@
+
@@ -110,13 +111,14 @@