温红权 3 år sedan
förälder
incheckning
daaef1e32e
51 ändrade filer med 161 tillägg och 16 borttagningar
  1. BIN
      ruoyi-ui/src/assets/images/icon/cdz.png
  2. BIN
      ruoyi-ui/src/assets/images/icon/cdz@2x.png
  3. BIN
      ruoyi-ui/src/assets/images/icon/cdz_1.png
  4. BIN
      ruoyi-ui/src/assets/images/icon/cdz_1@2x.png
  5. BIN
      ruoyi-ui/src/assets/images/icon/ditie.png
  6. BIN
      ruoyi-ui/src/assets/images/icon/ditie@2x.png
  7. BIN
      ruoyi-ui/src/assets/images/icon/gjxl.png
  8. BIN
      ruoyi-ui/src/assets/images/icon/gjxl@2x.png
  9. BIN
      ruoyi-ui/src/assets/images/icon/gjzd.png
  10. BIN
      ruoyi-ui/src/assets/images/icon/gjzd@2x.png
  11. BIN
      ruoyi-ui/src/assets/images/icon/gjzt.png
  12. BIN
      ruoyi-ui/src/assets/images/icon/gjzt@2x.png
  13. BIN
      ruoyi-ui/src/assets/images/icon/jqz.png
  14. BIN
      ruoyi-ui/src/assets/images/icon/jqz@2x.png
  15. BIN
      ruoyi-ui/src/assets/images/icon/jqz_1.png
  16. BIN
      ruoyi-ui/src/assets/images/icon/jqz_1@2x.png
  17. BIN
      ruoyi-ui/src/assets/images/icon/jyz.png
  18. BIN
      ruoyi-ui/src/assets/images/icon/jyz@2x.png
  19. BIN
      ruoyi-ui/src/assets/images/icon/jyz_1.png
  20. BIN
      ruoyi-ui/src/assets/images/icon/jyz_1@2x.png
  21. BIN
      ruoyi-ui/src/assets/images/icon/ld.png
  22. BIN
      ruoyi-ui/src/assets/images/icon/ld@2x.png
  23. BIN
      ruoyi-ui/src/assets/images/icon/lundu.png
  24. BIN
      ruoyi-ui/src/assets/images/icon/lundu@2x.png
  25. BIN
      ruoyi-ui/src/assets/images/icon/qcjcz.png
  26. BIN
      ruoyi-ui/src/assets/images/icon/qcjcz@2x.png
  27. BIN
      ruoyi-ui/src/assets/images/icon/qiaoliang.png
  28. BIN
      ruoyi-ui/src/assets/images/icon/qiaoliang@2x.png
  29. BIN
      ruoyi-ui/src/assets/images/icon/qiaoliang_1.png
  30. BIN
      ruoyi-ui/src/assets/images/icon/qiaoliang_1@2x.png
  31. BIN
      ruoyi-ui/src/assets/images/icon/qichejcz.png
  32. BIN
      ruoyi-ui/src/assets/images/icon/qichejcz@2x.png
  33. BIN
      ruoyi-ui/src/assets/images/icon/sglpd.png
  34. BIN
      ruoyi-ui/src/assets/images/icon/sglpd@2x.png
  35. BIN
      ruoyi-ui/src/assets/images/icon/stop.png
  36. BIN
      ruoyi-ui/src/assets/images/icon/stop@2x.png
  37. BIN
      ruoyi-ui/src/assets/images/icon/stop_1.png
  38. BIN
      ruoyi-ui/src/assets/images/icon/stop_1@2x.png
  39. BIN
      ruoyi-ui/src/assets/images/icon/suidao.png
  40. BIN
      ruoyi-ui/src/assets/images/icon/suidao@2x.png
  41. BIN
      ruoyi-ui/src/assets/images/icon/suidao_1.png
  42. BIN
      ruoyi-ui/src/assets/images/icon/suidao_1@2x.png
  43. BIN
      ruoyi-ui/src/assets/images/icon/tcc.png
  44. BIN
      ruoyi-ui/src/assets/images/icon/tcc@2x.png
  45. BIN
      ruoyi-ui/src/assets/images/icon/wzcfd.png
  46. BIN
      ruoyi-ui/src/assets/images/icon/wzcfd@2x.png
  47. BIN
      ruoyi-ui/src/assets/images/icon/ygdc.png
  48. BIN
      ruoyi-ui/src/assets/images/icon/ygdc@2x.png
  49. BIN
      ruoyi-ui/src/assets/images/icon/zxcz.png
  50. BIN
      ruoyi-ui/src/assets/images/icon/zxcz@2x.png
  51. 161 16
      ruoyi-ui/src/components/map/index.vue

BIN
ruoyi-ui/src/assets/images/icon/cdz.png


BIN
ruoyi-ui/src/assets/images/icon/cdz@2x.png


BIN
ruoyi-ui/src/assets/images/icon/cdz_1.png


BIN
ruoyi-ui/src/assets/images/icon/cdz_1@2x.png


BIN
ruoyi-ui/src/assets/images/icon/ditie.png


BIN
ruoyi-ui/src/assets/images/icon/ditie@2x.png


BIN
ruoyi-ui/src/assets/images/icon/gjxl.png


BIN
ruoyi-ui/src/assets/images/icon/gjxl@2x.png


BIN
ruoyi-ui/src/assets/images/icon/gjzd.png


BIN
ruoyi-ui/src/assets/images/icon/gjzd@2x.png


BIN
ruoyi-ui/src/assets/images/icon/gjzt.png


BIN
ruoyi-ui/src/assets/images/icon/gjzt@2x.png


BIN
ruoyi-ui/src/assets/images/icon/jqz.png


BIN
ruoyi-ui/src/assets/images/icon/jqz@2x.png


BIN
ruoyi-ui/src/assets/images/icon/jqz_1.png


BIN
ruoyi-ui/src/assets/images/icon/jqz_1@2x.png


BIN
ruoyi-ui/src/assets/images/icon/jyz.png


BIN
ruoyi-ui/src/assets/images/icon/jyz@2x.png


BIN
ruoyi-ui/src/assets/images/icon/jyz_1.png


BIN
ruoyi-ui/src/assets/images/icon/jyz_1@2x.png


BIN
ruoyi-ui/src/assets/images/icon/ld.png


BIN
ruoyi-ui/src/assets/images/icon/ld@2x.png


BIN
ruoyi-ui/src/assets/images/icon/lundu.png


BIN
ruoyi-ui/src/assets/images/icon/lundu@2x.png


BIN
ruoyi-ui/src/assets/images/icon/qcjcz.png


BIN
ruoyi-ui/src/assets/images/icon/qcjcz@2x.png


BIN
ruoyi-ui/src/assets/images/icon/qiaoliang.png


BIN
ruoyi-ui/src/assets/images/icon/qiaoliang@2x.png


BIN
ruoyi-ui/src/assets/images/icon/qiaoliang_1.png


BIN
ruoyi-ui/src/assets/images/icon/qiaoliang_1@2x.png


BIN
ruoyi-ui/src/assets/images/icon/qichejcz.png


BIN
ruoyi-ui/src/assets/images/icon/qichejcz@2x.png


BIN
ruoyi-ui/src/assets/images/icon/sglpd.png


BIN
ruoyi-ui/src/assets/images/icon/sglpd@2x.png


BIN
ruoyi-ui/src/assets/images/icon/stop.png


BIN
ruoyi-ui/src/assets/images/icon/stop@2x.png


BIN
ruoyi-ui/src/assets/images/icon/stop_1.png


BIN
ruoyi-ui/src/assets/images/icon/stop_1@2x.png


BIN
ruoyi-ui/src/assets/images/icon/suidao.png


BIN
ruoyi-ui/src/assets/images/icon/suidao@2x.png


BIN
ruoyi-ui/src/assets/images/icon/suidao_1.png


BIN
ruoyi-ui/src/assets/images/icon/suidao_1@2x.png


BIN
ruoyi-ui/src/assets/images/icon/tcc.png


BIN
ruoyi-ui/src/assets/images/icon/tcc@2x.png


BIN
ruoyi-ui/src/assets/images/icon/wzcfd.png


BIN
ruoyi-ui/src/assets/images/icon/wzcfd@2x.png


BIN
ruoyi-ui/src/assets/images/icon/ygdc.png


BIN
ruoyi-ui/src/assets/images/icon/ygdc@2x.png


BIN
ruoyi-ui/src/assets/images/icon/zxcz.png


BIN
ruoyi-ui/src/assets/images/icon/zxcz@2x.png


+ 161 - 16
ruoyi-ui/src/components/map/index.vue

@@ -9,9 +9,15 @@ import TileLayer from "ol/layer/Tile";
 import View from "ol/View";
 import WMTS from "ol/source/WMTS";
 import WMTSTileGrid from "ol/tilegrid/WMTS";
-import { fromLonLat, get as getProjection } from "ol/proj";
+import { fromLonLat, get as getProjection, transform } from "ol/proj";
 import { getWidth } from "ol/extent";
 
+import { Vector as SourceVec, OSM } from "ol/source";
+import { Feature } from "ol";
+import { Point,LineString } from "ol/geom";
+import { Style, Icon,Stroke } from "ol/style";
+import { Vector as LayerVec } from "ol/layer";
+
 export default {
   props: {
     src: {
@@ -21,19 +27,62 @@ export default {
   },
   data() {
     return {
-      map: null
+      map: null,
+      drawLayer: null,
+      draw: null
     };
   },
   mounted() {
-    if(process.env.NODE_ENV === "production"){
-        this.initprod();
-    }else{
-       this.initdev();
+    var that = this;
+    if (process.env.NODE_ENV === "production") {
+      this.initprod();
+    } else {
+      this.initdev();
     }
 
+    this.map.on("click", function(e) {
+      var feature = that.map.forEachFeatureAtPixel(e.pixel,
+          function(feature) {
+            return feature;
+          });
+        if (feature) { //这里说明我们点击的是点标记,
+          let tadata = feature.get("tadata");//我们可以通过给点标记传不同的值,来判断点击不同的点标记触发的事件。
+           if (tadata) {
+             if(tadata.sectionId=="line"){
+               alert("我是线:"+tadata.towerNumber)
+             }
+             if(tadata.sectionId=="point"){
+               alert("我是点:"+tadata.towerNumber)
+             }
+          //含有lnglat 参数的点标记触发事件
+          }
+        }
+    });
 
+    this.addpoint();
+    this.addline();
   },
   methods: {
+    //[[1111,1111]]
+    transpoints: function(points, type) {
+      if (process.env.NODE_ENV === "production") {
+        return points;
+      } else {
+        if (type == 1) {
+          var pp = [];
+          points.forEach(point => {
+            pp.push(transform(point, "EPSG:3857", "EPSG:4326"));
+          });
+          return pp;
+        } else {
+          var pp = [];
+          points.forEach(point => {
+            pp.push(transform(point, "EPSG:4326", "EPSG:3857"));
+          });
+          return pp;
+        }
+      }
+    },
     initdev: function() {
       const proj3857 = getProjection("EPSG:3857");
       const tileGrid = new WMTSTileGrid({
@@ -87,19 +136,67 @@ export default {
           ],
           map.getSize()
         );
+      this.map = map;
     },
     initprod: function() {
       const proj3857 = getProjection("EPSG:4326");
       const tileGrid = new WMTSTileGrid({
         tileSize: [256, 256],
         origin: [-180.0, 90.0],
-        extent: [-180.0,-90.0,180.0,90.0],
-        resolutions: [0.703125, 0.3515625, 0.17578125, 0.087890625, 0.0439453125, 0.02197265625, 0.010986328125, 0.0054931640625, 0.00274658203125, 0.001373291015625, 6.866455078125E-4, 3.4332275390625E-4, 1.71661376953125E-4, 8.58306884765625E-5, 4.291534423828125E-5, 2.1457672119140625E-5, 1.0728836059570312E-5, 5.364418029785156E-6, 2.682209014892578E-6, 1.341104507446289E-6, 6.705522537231445E-7, 3.3527612686157227E-7],
-        matrixIds: ['EPSG:4326:0', 'EPSG:4326:1', 'EPSG:4326:2', 'EPSG:4326:3', 'EPSG:4326:4', 'EPSG:4326:5', 'EPSG:4326:6', 'EPSG:4326:7', 'EPSG:4326:8', 'EPSG:4326:9', 'EPSG:4326:10', 'EPSG:4326:11', 'EPSG:4326:12', 'EPSG:4326:13', 'EPSG:4326:14', 'EPSG:4326:15', 'EPSG:4326:16', 'EPSG:4326:17', 'EPSG:4326:18', 'EPSG:4326:19', 'EPSG:4326:20', 'EPSG:4326:21']
+        extent: [-180.0, -90.0, 180.0, 90.0],
+        resolutions: [
+          0.703125,
+          0.3515625,
+          0.17578125,
+          0.087890625,
+          0.0439453125,
+          0.02197265625,
+          0.010986328125,
+          0.0054931640625,
+          0.00274658203125,
+          0.001373291015625,
+          6.866455078125e-4,
+          3.4332275390625e-4,
+          1.71661376953125e-4,
+          8.58306884765625e-5,
+          4.291534423828125e-5,
+          2.1457672119140625e-5,
+          1.0728836059570312e-5,
+          5.364418029785156e-6,
+          2.682209014892578e-6,
+          1.341104507446289e-6,
+          6.705522537231445e-7,
+          3.3527612686157227e-7
+        ],
+        matrixIds: [
+          "EPSG:4326:0",
+          "EPSG:4326:1",
+          "EPSG:4326:2",
+          "EPSG:4326:3",
+          "EPSG:4326:4",
+          "EPSG:4326:5",
+          "EPSG:4326:6",
+          "EPSG:4326:7",
+          "EPSG:4326:8",
+          "EPSG:4326:9",
+          "EPSG:4326:10",
+          "EPSG:4326:11",
+          "EPSG:4326:12",
+          "EPSG:4326:13",
+          "EPSG:4326:14",
+          "EPSG:4326:15",
+          "EPSG:4326:16",
+          "EPSG:4326:17",
+          "EPSG:4326:18",
+          "EPSG:4326:19",
+          "EPSG:4326:20",
+          "EPSG:4326:21"
+        ]
       });
 
       const ign_source = new WMTS({
-        url: "http://198.17.1.146:9999/geoserver/gwc/service/wmts?CJAUTH=CJUSER",
+        url:
+          "http://198.17.1.146:9999/geoserver/gwc/service/wmts?CJAUTH=CJUSER",
         layer: "CJ:G_CJ",
         matrixSet: "EPSG:4326",
         format: "image/png",
@@ -118,12 +215,60 @@ export default {
           zoom: 10
         })
       });
-      map
-        .getView()
-        .fit(
-          [75.0,20.0,135.0,50.0],
-          map.getSize()
-        );
+      map.getView().fit([75.0, 20.0, 135.0, 50.0], map.getSize());
+      this.map = map;
+    },
+
+    addline:function(){
+
+      var points = this.transpoints([[118.78, 32.04],[118.88, 32.14]], 0)
+
+      let line= new Feature({
+        tadata: {
+          sectionId: "line",
+          towerNumber: 22
+        },
+        geometry:new LineString(points)});//这里要注意写fromLonLat,很重要
+      line.setStyle(new Style({
+             stroke: new Stroke({
+              width: 3,
+               color: "#008000"
+             })
+       }));
+        this.linevectorLayer = new LayerVec({
+            source: new SourceVec({
+              features: [line] //要绘制多段线,直接push到这里面就行了
+            })
+          });
+          this.map.addLayer(this.linevectorLayer);//这里是执行,执行之后点就出来了
+
+    },
+
+    addpoint: function() {
+      var lnglat = this.transpoints([[118.78, 32.04]], 0)[0];
+
+      let tamarker = new Feature({
+        tadata: {
+          sectionId: "point",
+          towerNumber: 22
+        }, //这里是用来传值用的,在接下来的一章里(事件)中我会讲到。
+        geometry: new Point(lnglat) //这里是点坐标的位置,这里要注意fromLonLat
+      });
+      tamarker.setStyle(
+        new Style({
+          image: new Icon({
+            color: "#eee",
+            crossOrigin: "anonymous",
+            src: require("../../assets/images/icon/qiaoliang_1@2x.png") //本地的样式
+          })
+        })
+      ); //这里是样式
+      var markerta = new LayerVec({
+        source: new SourceVec({
+          features: [tamarker] //这里放的就是之前的那个点,如果要放置多个点直接push到这里面就行了
+        })
+      });
+      this.map.addLayer(markerta); //这里是执行,执行之后点就出来了
     }
   }
 };