北京经济技术开发区经开区虚拟城市项目-【前端】-移动端Web
lixuliang
2024-03-22 5206e7a4f4c5b71c9ddeccdbbe5e7fba5b3eeb9b
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);
@@ -1940,7 +1941,7 @@
        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;
@@ -1999,7 +2000,18 @@
      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()
        ) {
          clusterSource.setDistance(0);
        } else {
          clusterSource.setDistance(40);
        }
      });
    },
    // 视频监控聚合
    initCluster(treeNode) {
      if (treeNode.checked == false) {
        window.mapapi.removeLayer(window.jkspclusterLayer);
@@ -2028,7 +2040,7 @@
      // 创建聚合显示样式
      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;
@@ -2036,7 +2048,7 @@
            return new ol.style.Style({
              image: new ol.style.Icon({
                anchor: [0.5, 1],
                src: "./static/SmartEarthSDK/Workers/image/xzspj/spjk.png",
                src: "./static/SmartEarthSDK/Workers/image/xzspj/camera.png",
              }),
            });
          }
@@ -2087,6 +2099,16 @@
      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()
        ) {
          clusterSource.setDistance(0);
        } else {
          clusterSource.setDistance(40);
        }
      });
      // new Cesium.GeoJsonDataSource.load(
      //   treeNode.urls +
      //     "?version=1.3.0&request=GetFeature&format=json&typename=" +
@@ -2244,36 +2266,8 @@
      //     loading.close();
      //   });
    },
    testSDKcluster() {
      let clusterLayer1 = new SmartEarth.ClusterLayer(Viewer, {
        style: "clustering",
      });
      axios
        .get(
          window.gisBaseUrl +
            "/gisserver/wfsserver/qiyelianqiye?version=1.3.0&request=GetFeature&format=json&typename=企业链企业"
        )
        .then((res) => {
          let positions = generatePosition(20000);
          positions.forEach((item) => {
            clusterLayer1.add(item, {
              image: "./static/SmartEarthSDK/Workers/image/xzspj/qiye.png",
            });
          });
          // res.data.features.forEach((item) => {
          // clusterLayer1.add(
          //   new SmartEarth.Degrees(
          //     item.geometry.coordinates[0],
          //     item.geometry.coordinates[1]
          //   ),
          //   {
          //     name: `QY&${item.properties.ID}&${item.properties["QYMC"]}&${item.properties["DZ"]}&${item.properties["BZDZ"]}&${item.properties["XYDM"]}&${item.geometry.coordinates[0]}&${item.geometry.coordinates[1]}`,
          //     image: SmartEarthRootUrl + "Workers/image/mark.png",
          //   }
          // );
          // });
        });
    },
    //企业信息聚合
    qiyeCluster(treeNode) {
      if (treeNode.checked == false) {
        window.mapapi.removeLayer(window.qiyeclusterLayer);
@@ -2293,8 +2287,6 @@
          "?version=1.3.0&request=GetFeature&format=json&typename=" +
          treeNode.layer,
      });
      console.log(vectorSource,'11111')
      // 创建聚合层
      var clusterSource = new ol.source.Cluster({
@@ -2304,7 +2296,7 @@
      // 创建聚合显示样式
      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;
@@ -2385,7 +2377,41 @@
      window.mapapi.removeLayer(window.jkspclusterLayer);
      window.mapapi.addLayer(window.qiyeclusterLayer);
      loading.close();
      //监听最大层级 聚合距离为0 取消聚合
      window.mapapi.getView().on("change:resolution", function (event) {
        if (
          window.mapapi.getView().getZoom() ==
          window.mapapi.getView().getMaxZoom()
        ) {
          clusterSource.setDistance(0);
          // clusterSource.getSource().clear()
          // console.log("企业");
        } 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);
@@ -2481,6 +2507,37 @@
      //   }
      // });
    },
    testSDKcluster() {
      let clusterLayer1 = new SmartEarth.ClusterLayer(Viewer, {
        style: "clustering",
      });
      axios
        .get(
          window.gisBaseUrl +
            "/gisserver/wfsserver/qiyelianqiye?version=1.3.0&request=GetFeature&format=json&typename=企业链企业"
        )
        .then((res) => {
          let positions = generatePosition(20000);
          positions.forEach((item) => {
            clusterLayer1.add(item, {
              image: "./static/SmartEarthSDK/Workers/image/xzspj/qiye.png",
            });
          });
          // res.data.features.forEach((item) => {
          // clusterLayer1.add(
          //   new SmartEarth.Degrees(
          //     item.geometry.coordinates[0],
          //     item.geometry.coordinates[1]
          //   ),
          //   {
          //     name: `QY&${item.properties.ID}&${item.properties["QYMC"]}&${item.properties["DZ"]}&${item.properties["BZDZ"]}&${item.properties["XYDM"]}&${item.geometry.coordinates[0]}&${item.geometry.coordinates[1]}`,
          //     image: SmartEarthRootUrl + "Workers/image/mark.png",
          //   }
          // );
          // });
        });
    },
    // initCluster(treeNode) {
    //   let that = this;
    //   let imgUrl;