北京经济技术开发区经开区虚拟城市项目-【前端】-移动端Web
少年
2024-03-13 0cae92b7ed0a080f74df6a30c0d68d2d0b45ec70
Merge branch 'master' of http://103.135.160.14:9034/r/PM20221203225_MobileWeb
已修改6个文件
152 ■■■■ 文件已修改
src/assets/img/right/test01.png 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/img/right/test02.png 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/img/right/test03.png 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/img/right/test04.png 补丁 | 查看 | 原始文档 | blame | 历史
src/components/sideMenu/layerTreePanel/layerTreePanel2.vue 76 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/map2.js 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/img/right/test01.png

src/assets/img/right/test02.png

src/assets/img/right/test03.png

src/assets/img/right/test04.png

src/components/sideMenu/layerTreePanel/layerTreePanel2.vue
@@ -1855,6 +1855,7 @@
        layer.item.baseLayer = true;
      }
    },
    // 市政杆体聚合
    initLdgCluster(treeNode) {
      if (treeNode.checked == false) {
        window.mapapi.removeLayer(window.ldgclusterLayer);
@@ -1890,7 +1891,7 @@
          source: clusterSource,
          style: function (feature) {
            var size = feature.get("features").length;
            if (size <= 100) {
            if (size == 1) {
              return new ol.style.Style({
                image: new ol.style.Icon({
                  anchor: [0.5, 1],
@@ -1940,11 +1941,11 @@
        window.mapapi.addLayer(window.ldgclusterLayer);
      } else if (treeNode.name == "路名牌杆 ") {
        window.tldgclusterLayer = new  ol.layer.Vector({
        window.tldgclusterLayer = new ol.layer.Vector({
          source: clusterSource,
          style: function (feature) {
            var size = feature.get("features").length;
            if (size <= 100) {
            if (size == 1) {
              return new ol.style.Style({
                image: new ol.style.Icon({
                  anchor: [0.5, 1],
@@ -1999,7 +2000,20 @@
      window.mapapi.removeLayer(window.jkspclusterLayer);
      window.mapapi.removeLayer(window.qiyeclusterLayer);
      loading.close();
      window.mapapi.getView().on("change:resolution", function (event) {
        if (
          window.mapapi.getView().getZoom() ==
          window.mapapi.getView().getMaxZoom()
        ) {
          console.log("max");
          clusterSource.setDistance(0);
        } else {
          clusterSource.setDistance(40);
        }
      });
    },
    // 视频监控聚合
    initCluster(treeNode) {
      if (treeNode.checked == false) {
        window.mapapi.removeLayer(window.jkspclusterLayer);
@@ -2028,11 +2042,11 @@
      // 创建聚合显示样式
      var styleCache = {};
      window.jkspclusterLayer = new  ol.layer.Vector({
      window.jkspclusterLayer = new ol.layer.Vector({
        source: clusterSource,
        style: function (feature) {
          var size = feature.get("features").length;
          if (size <= 100) {
          if (size == 1) {
            return new ol.style.Style({
              image: new ol.style.Icon({
                anchor: [0.5, 1],
@@ -2087,6 +2101,18 @@
      window.mapapi.removeLayer(window.qiyeclusterLayer);
      window.mapapi.addLayer(window.jkspclusterLayer);
      loading.close();
      window.mapapi.getView().on("change:resolution", function (event) {
        if (
          window.mapapi.getView().getZoom() ==
          window.mapapi.getView().getMaxZoom()
        ) {
          console.log("max");
          clusterSource.setDistance(0);
        } else {
          clusterSource.setDistance(40);
        }
      });
      // new Cesium.GeoJsonDataSource.load(
      //   treeNode.urls +
      //     "?version=1.3.0&request=GetFeature&format=json&typename=" +
@@ -2274,7 +2300,7 @@
          // });
        });
    },
    //企业信息加载
    //企业信息聚合
    qiyeCluster(treeNode) {
      if (treeNode.checked == false) {
        window.mapapi.removeLayer(window.qiyeclusterLayer);
@@ -2294,21 +2320,20 @@
          "?version=1.3.0&request=GetFeature&format=json&typename=" +
          treeNode.layer,
      });
      // 创建聚合层
      var clusterSource = new ol.source.Cluster({
        distance: 200,
        distance: 40,
        source: vectorSource,
      });
      // 创建聚合显示样式
      var styleCache = {};
      window.qiyeclusterLayer = new  ol.layer.Vector({
      window.qiyeclusterLayer = new ol.layer.Vector({
        source: clusterSource,
        style: function (feature) {
          var size = feature.get("features").length;
          if (size <= 1300) {
          if (size == 1) {
            return new ol.style.Style({
              image: new ol.style.Icon({
                anchor: [0.5, 1],
@@ -2385,7 +2410,38 @@
      window.mapapi.removeLayer(window.jkspclusterLayer);
      window.mapapi.addLayer(window.qiyeclusterLayer);
      loading.close();
      window.mapapi.getView().on("change:resolution", function (event) {
        if (
          window.mapapi.getView().getZoom() ==
          window.mapapi.getView().getMaxZoom()
        ) {
          clusterSource.setDistance(0);
        } else {
          clusterSource.setDistance(40);
        }
      });
      // 监听地图单击事件
      // window.mapapi.on("singleclick", function (e) {
      //   var pixel = window.mapapi.getEventPixel(e.originalEvent);
      //   var currentFeature = window.mapapi.forEachFeatureAtPixel(
      //     pixel,
      //     function (feature, layer) {
      //       return feature;
      //     }
      //   );
      //   if (currentFeature) {
      //     var features = currentFeature.get("features");
      //     if (features.length > 1) {
      //       console.log(features);
      //       window.alert("当前聚合圈下共有" + features.length + "个要素");
      //     }
      //     if (features.length == 1) {
      //       console.log(features);
      //       window.alert("当前要素未被聚合,只有" + features.length + "个要素");
      //     }
      //   }
      // });
      // let dataSource;
      // if (treeNode.layer == "企业链企业") {
      //   // console.log(store.qiyeJsonInfo);
src/utils/map2.js
@@ -2384,41 +2384,57 @@
                let properties = feature.getProperties().features[0].values_;
                for (const propertyNames in properties) {
                    if (propertyNames.indexOf("监控名") !== -1) {
                        // objdata = {
                        //     POITYPE: "SPJK",
                        //     name: properties["JK名称"]._value,
                        //     type: properties["JK类型"]._value,
                        //     function: properties["功能"]._value,
                        //     area: properties["所在区"]._value,
                        //     number: properties["JK编号"]._value,
                        //     code: properties["JK内码"]._value,
                        //     lon: lon,
                        //     lat: lat,
                        // }
                        Message({
                            message: '连接状态查询中',
                        const infoM = Message({
                            message: '该点位视频监控查询中,请稍后',
                            type: 'info',
                            offset: 60,
                            offset: 75,
                            center: true,
                            duration: 1000,
                            duration: 0,
                        });
                        layerOpen(properties["JK名称"], {
                            width: "100%",
                            height: "40%",
                            // offset: [offsetTop + "px", "380px"],
                            url: "../../static/video/video.html?code=" + properties["JK内码"],
                            fn: {
                                success: (layero, index) => {
                                    SmartEarthPopupData.layerContainer = layero;
                                },
                                end: () => {
                        axios
                            .get(
                                // 请求在线状态
                                window.gisBaseUrl + "BEApi/getCameraDetails?cameraIndexCode=" +
                                properties["JK内码"]
                            ).then(res => {
                                if (res.data.data.status == 1) {
                                    infoM.close();
                                    Message({
                                        message: '视频监控在线中',
                                        type: 'success',
                                        offset: 75,
                                        center: true,
                                        duration: 2000,
                                    });
                                    layerOpen(properties["JK名称"], {
                                        width: "100%",
                                        height: "40%",
                                        // offset: [offsetTop + "px", "380px"],
                                        url: "../../static/video/video.html?code=" + properties["JK内码"],
                                        fn: {
                                            success: (layero, index) => {
                                                SmartEarthPopupData.layerContainer = layero;
                                            },
                                            end: () => {
                                },
                                cancel: () => {
                                            },
                                            cancel: () => {
                                },
                            },
                        });
                                            },
                                        },
                                    });
                                } else {
                                    infoM.close();
                                    Message({
                                        message: '该点位视频监控离线中',
                                        type: 'errer',
                                        offset: 75,
                                        center: true,
                                        duration: 2000,
                                    });
                                    return
                                }
                            })
                        return
                    } else if (propertyNames.indexOf("部件名称") !== -1) {
                        objdata = {