北京经济技术开发区经开区虚拟城市项目-【前端】-移动端Web
11
少年
2024-01-31 cf80a521d8300ab885aa213d90401b5e461246e6
11
已修改4个文件
520 ■■■■ 文件已修改
src/components/leftMenu/sousuo.vue 431 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/sideMenu/layerMenu/layerPanel.vue 53 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/sideMenu/sliderAlpha/alpha.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/map.js 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/leftMenu/sousuo.vue
@@ -282,6 +282,100 @@
      rectangle.maxy > 31.182515322 && (rectangle.maxy = 31.182515322);
      return `RECT(${rectangle.minx} ${rectangle.miny},${rectangle.maxx} ${rectangle.maxy})`;
    },
    getPoi() {
      axios
        .get(common.poiserve, {
          params: {
            request: "GdPoi",
            keywords: this.poi_text,
            output: "json",
            coord: "cgcs2000",
            offset: 20,
            page: 1,
          },
        })
        .then((res) => {
          // 高德
          if (res.data.status == 1) {
            res.data.pois &&
              res.data.pois
                .filter((item) => {
                  var reg = new RegExp("[\\u4E00-\\u9FFF]+", "g");
                  return (
                    item.pname.includes("北京") &&
                    item.name.includes(this.poi_text) &&
                    !reg.test(item.typecode)
                  );
                })
                .forEach((val) => {
                  let poiarr = val.location.split(",");
                  let poi = {
                    lon: parseFloat(poiarr[0]),
                    lat: parseFloat(poiarr[1]),
                  };
                  let obj = {
                    adcode: val.adcode,
                    address: val.address,
                    adname: val.area,
                    citycode: val.citycode,
                    cityname: val.cityname,
                    id: val.uid,
                    lat: poi.lat,
                    lng: poi.lon,
                    name: val.name,
                    pcode: val.pcode,
                    pname: val.province,
                    type: val.type,
                    typecode: val.typecode,
                  };
                  Allresults.push(obj);
                });
          }
          this.total = Allresults.length;
          this.poiList = Allresults;
          this.showList = true;
        });
    },
    getData() {
      axios
        .post(common.poiserve2, {
          adcode: "110115",
          address: {
            name: "",
            type: "",
          },
          adname: "大兴区",
          cityname: "北京市",
          name: {
            name: this.poi_text,
            type: "",
          },
          page: 1,
          perPageCount: 20,
          pcode: "110000",
          pname: "",
          resType: "",
        })
        .then((res) => {
          if (res.status == 200) {
            res.data.data.res &&
              res.data.data.res
                .filter((item) => {
                  // 判断地块是否有汉字
                  var reg = new RegExp("[\\u4E00-\\u9FFF]+", "g");
                  return (
                    item.name.includes(this.poi_text) && reg.test(item.typecode)
                  );
                })
                .forEach((val) => {
                  Allresults.push(val);
                });
          }
          this.total = Allresults.length;
          this.poiList = Allresults;
          this.showList = true;
        });
    },
    search() {
      if (this.poi_text === "") {
        this.poiList = [];
@@ -292,221 +386,136 @@
        this.poiList = [];
        switch (this.select) {
          case "全部":
            axios
              .all([
                // 115接口(可查地块名)
                axios.post(common.poiserve2, {
                  adcode: "110115",
                  address: {
                    name: "",
                    type: "",
                  },
                  adname: "大兴区",
                  cityname: "北京市",
                  name: {
                    name: this.poi_text,
                    type: "",
                  },
                  page: 1,
                  perPageCount: 20,
                  pcode: "110000",
                  pname: "",
                  resType: "",
                }),
                // // 市级平台(百度:会查到外地)
                // axios.get(common.poiserve, {
                //   params: {
                //     request: "bdPoi",
                //     query: this.poi_text,
                //     output: "json",
                //     coord: "cgcs2000",
                //     page_num: 0,
                //     page_size: 20,
                //   },
                // }),
                //  市级平台(高德)
                axios.get(common.poiserve, {
                  params: {
                    request: "GdPoi",
                    keywords: this.poi_text,
                    output: "json",
                    coord: "cgcs2000",
                    offset: 20,
                    page: 1,
                  },
                }),
              ])
              .then(
                (data) => {
                  // this.total = data.data.pois.length;
                  // this.poiList =
                  //   data.data && data.data.pois;
                  //115接口
                  if (data[0].status == 200) {
                    data[0].data.data.res &&
                      data[0].data.data.res
                        .filter((item) => {
                          return item.name.includes(this.poi_text);
                        })
                        .forEach((val) => {
                          Allresults.push(val);
                        });
                  }
                  // 市级平台
                  // // 百度
                  // if (data[1].data.status == 0) {
                  //   data[1].data.results.forEach((val) => {
                  //     let obj = {
                  //       address: val.address,
                  //       adname: val.area,
                  //       cityname: val.city,
                  //       id: val.uid,
                  //       lat: val.location.lat,
                  //       lng: val.location.lng,
                  //       name: val.name,
                  //       pname: val.province,
                  //     };
                  //     Allresults.push(obj);
                  //   });
                  // }
                  // 高德
                  if (data[1].data.status == 1) {
                    data[1].data.pois &&
                      data[1].data.pois
                        .filter((item) => {
                          return (
                            item.pname.includes("北京") &&
                            item.name.includes(this.poi_text)
                          );
                        })
                        .forEach((val) => {
                          let poiarr = val.location.split(",");
                          let poi = {
                            lon: parseFloat(poiarr[0]),
                            lat: parseFloat(poiarr[1]),
                          };
                          let obj = {
                            adcode: val.adcode,
                            address: val.address,
                            adname: val.area,
                            citycode: val.citycode,
                            cityname: val.cityname,
                            id: val.uid,
                            lat: poi.lat,
                            lng: poi.lon,
                            name: val.name,
                            pcode: val.pcode,
                            pname: val.province,
                            type: val.type,
                            typecode: val.typecode,
                          };
                          Allresults.push(obj);
                        });
                  }
                  this.total = Allresults.length;
                  this.poiList = Allresults;
                  this.showList = true;
                  console.log(Allresults);
                },
                (response) => {
                  console.log("error");
                }
              );
            this.getPoi();
            this.getData();
            // axios
            //   .all([
            //     // 115接口(可查地块名)
            //     axios.post(common.poiserve2, {
            //       adcode: "110115",
            //       address: {
            //         name: "",
            //         type: "",
            //       },
            //       adname: "大兴区",
            //       cityname: "北京市",
            //       name: {
            //         name: this.poi_text,
            //         type: "",
            //       },
            //       page: 1,
            //       perPageCount: 20,
            //       pcode: "110000",
            //       pname: "",
            //       resType: "",
            //     }),
            //     // // 市级平台(百度:会查到外地)
            //     // axios.get(common.poiserve, {
            //     //   params: {
            //     //     request: "bdPoi",
            //     //     query: this.poi_text,
            //     //     output: "json",
            //     //     coord: "cgcs2000",
            //     //     page_num: 0,
            //     //     page_size: 20,
            //     //   },
            //     // }),
            //     //  市级平台(高德)
            //     axios.get(common.poiserve, {
            //       params: {
            //         request: "GdPoi",
            //         keywords: this.poi_text,
            //         output: "json",
            //         coord: "cgcs2000",
            //         offset: 20,
            //         page: 1,
            //       },
            //     }),
            //   ])
            //   .then(
            //     (data) => {
            //       // this.total = data.data.pois.length;
            //       // this.poiList =
            //       //   data.data && data.data.pois;
            //       //115接口
            //       if (data[0].status == 200) {
            //         data[0].data.data.res &&
            //           data[0].data.data.res
            //             .filter((item) => {
            //               return item.name.includes(this.poi_text);
            //             })
            //             .forEach((val) => {
            //               Allresults.push(val);
            //             });
            //       }
            //       // 市级平台
            //       // // 百度
            //       // if (data[1].data.status == 0) {
            //       //   data[1].data.results.forEach((val) => {
            //       //     let obj = {
            //       //       address: val.address,
            //       //       adname: val.area,
            //       //       cityname: val.city,
            //       //       id: val.uid,
            //       //       lat: val.location.lat,
            //       //       lng: val.location.lng,
            //       //       name: val.name,
            //       //       pname: val.province,
            //       //     };
            //       //     Allresults.push(obj);
            //       //   });
            //       // }
            //       // 高德
            //       console.log(data, "数据");
            //       if (data[0].data.status == 1) {
            //         data[0].data.pois &&
            //           data[0].data.pois
            //             .filter((item) => {
            //               return (
            //                 item.pname.includes("北京") &&
            //                 item.name.includes(this.poi_text)
            //               );
            //             })
            //             .forEach((val) => {
            //               let poiarr = val.location.split(",");
            //               let poi = {
            //                 lon: parseFloat(poiarr[0]),
            //                 lat: parseFloat(poiarr[1]),
            //               };
            //               let obj = {
            //                 adcode: val.adcode,
            //                 address: val.address,
            //                 adname: val.area,
            //                 citycode: val.citycode,
            //                 cityname: val.cityname,
            //                 id: val.uid,
            //                 lat: poi.lat,
            //                 lng: poi.lon,
            //                 name: val.name,
            //                 pcode: val.pcode,
            //                 pname: val.province,
            //                 type: val.type,
            //                 typecode: val.typecode,
            //               };
            //               Allresults.push(obj);
            //             });
            //       }
            //       this.total = Allresults.length;
            //       this.poiList = Allresults;
            //       this.showList = true;
            //       console.log(Allresults);
            //     },
            //     (response) => {
            //       console.log("error");
            //     }
            //   );
            break;
          case "POI":
            axios
              .get(common.poiserve, {
                params: {
                  request: "GdPoi",
                  keywords: this.poi_text,
                  output: "json",
                  coord: "cgcs2000",
                  offset: 20,
                  page: 1,
                },
              })
              .then((res) => {
                // 高德
                if (res.data.status == 1) {
                  res.data.pois &&
                    res.data.pois
                      .filter((item) => {
                        var reg = new RegExp("[\\u4E00-\\u9FFF]+", "g");
                        return (
                          item.pname.includes("北京") &&
                          item.name.includes(this.poi_text) &&
                          !reg.test(item.typecode)
                        );
                      })
                      .forEach((val) => {
                        let poiarr = val.location.split(",");
                        let poi = {
                          lon: parseFloat(poiarr[0]),
                          lat: parseFloat(poiarr[1]),
                        };
                        let obj = {
                          adcode: val.adcode,
                          address: val.address,
                          adname: val.area,
                          citycode: val.citycode,
                          cityname: val.cityname,
                          id: val.uid,
                          lat: poi.lat,
                          lng: poi.lon,
                          name: val.name,
                          pcode: val.pcode,
                          pname: val.province,
                          type: val.type,
                          typecode: val.typecode,
                        };
                        Allresults.push(obj);
                      });
                }
                this.total = Allresults.length;
                this.poiList = Allresults;
                this.showList = true;
              });
            this.getPoi();
            break;
          case "地块":
            axios
              .post(common.poiserve2, {
                adcode: "110115",
                address: {
                  name: "",
                  type: "",
                },
                adname: "大兴区",
                cityname: "北京市",
                name: {
                  name: this.poi_text,
                  type: "",
                },
                page: 1,
                perPageCount: 20,
                pcode: "110000",
                pname: "",
                resType: "",
              })
              .then((res) => {
                if (res.status == 200) {
                  res.data.data.res &&
                    res.data.data.res
                      .filter((item) => {
                        // 判断地块是否有汉字
                        var reg = new RegExp("[\\u4E00-\\u9FFF]+", "g");
                        return (
                          item.name.includes(this.poi_text) &&
                          reg.test(item.typecode)
                        );
                      })
                      .forEach((val) => {
                        Allresults.push(val);
                      });
                }
                this.total = Allresults.length;
                this.poiList = Allresults;
                this.showList = true;
              });
            this.getData();
            break;
        }
      }
src/components/sideMenu/layerMenu/layerPanel.vue
@@ -128,7 +128,6 @@
  loadLayer,
  clearLayerByTypeId,
  clearLayerByTypeIdArr,
  loadAreaLayer
} from "@/utils/map.js";
import _GLOBAL from "@/assets/GLOBAL";
import store from "@/utils/store.js";
@@ -306,7 +305,7 @@
    // 二维底图选择
    handleEMapClick(result, index) {
      let p = sgworld.Navigate.getCameraInfo();
      let pitch ;
      let pitch;
      if (pitch !== -90) {
        pitch = -90;
        sgworld.Navigate.flyToPointsInterest({
@@ -325,10 +324,10 @@
      // 设置相机
      if (result.name == "二维地图") {
        window.Viewer.scene.globe.maximumScreenSpaceError = 4/3;
        window.Viewer.scene.globe.maximumScreenSpaceError = 4 / 3;
        this.changeLayerView(25000, false);
      } else if (result.name == "影像地图") {
        window.Viewer.scene.globe.maximumScreenSpaceError = 4/3;
        window.Viewer.scene.globe.maximumScreenSpaceError = 4 / 3;
        this.changeLayerView(50000, false);
      }
      // 切换图层
@@ -524,30 +523,28 @@
        switch (index) {
          case 0:
            store.setSliderShow(true);
            loadAreaLayer()
            // window. = sgworld.Creator.createImageryProvider(
            //   layers[8].name,
            //   "tms",
            //   {
            //     id: layers[8].children[0].id,
            //     url: layers[8].children[0].urls,
            //     fileExtension: layers[8].children[0].img || "png",
            //     enablePickFeatures: false,
            //     level: layers[8].children[0].Level,
            //     minimumLevel: layers[8].children[0].minimumLevel,
            //     maximumLevel: layers[8].children[0].maximumLevel,
            //     tilingScheme:
            //       layers[8].children[0].tileType === "Geo"
            //         ? new Cesium.GeographicTilingScheme()
            //         : new Cesium.WebMercatorTilingScheme(),
            //     // alpha: layers[8].children[0].alpha,
            //     alpha: 1,
            //   },
            //   "0",
            //   layers[8].children[0].zIndex,
            //   true,
            //   ""
            // );
            window.tdglLayer = sgworld.Creator.createImageryProvider(
              layers[8].name,
              "tms",
              {
                id: layers[8].children[0].id,
                url: layers[8].children[0].urls,
                fileExtension: layers[8].children[0].img || "png",
                enablePickFeatures: false,
                level: layers[8].children[0].Level,
                minimumLevel: layers[8].children[0].minimumLevel,
                maximumLevel: layers[8].children[0].maximumLevel,
                tilingScheme:
                  layers[8].children[0].tileType === "Geo"
                    ? new Cesium.GeographicTilingScheme()
                    : new Cesium.WebMercatorTilingScheme(),
                alpha: layers[8].children[0].alpha,
              },
              "0",
              layers[8].children[0].zIndex,
              true,
              ""
            );
            store.setTdglFlag(true);
            break;
          case 1:
src/components/sideMenu/sliderAlpha/alpha.vue
@@ -13,9 +13,6 @@
</template>
<script>
import store from "@/utils/store.js";
import _GLOBAL from "@/assets/GLOBAL";
import { loadAreaLayer } from "../../../utils/map.js";
export default {
  data() {
    return {
@@ -24,8 +21,7 @@
  },
  methods: {
    changeSlider(val) {
      _GLOBAL.alpha = val / 100;
      loadAreaLayer();
      window.tdglLayer.item.alpha = val / 100;
    },
  },
};
src/utils/map.js
@@ -4,7 +4,6 @@
import poiLayer from '@/components/poplayer/main';
import store from "@/utils/store";
import { Message } from 'element-ui';
import { layers } from "../../static/json/layer.js";
let tdglLine, qiyexinxi, qysl, ydbm, ydlx, cyfx, crzt, ydmj, crnx, crnf, rjl, jzxg, jzmd;
let objdata;
@@ -2191,32 +2190,3 @@
        })
    }
}
export function loadAreaLayer() {
    if (window.tdglLayer) {
        sgworld.Creator.DeleteObject(window.tdglLayer);
    }
    window.tdglLayer = sgworld.Creator.createImageryProvider(
        layers[8].name,
        "tms",
        {
            id: layers[8].children[0].id,
            url: layers[8].children[0].urls,
            fileExtension: layers[8].children[0].img || "png",
            enablePickFeatures: false,
            level: layers[8].children[0].Level,
            minimumLevel: layers[8].children[0].minimumLevel,
            maximumLevel: layers[8].children[0].maximumLevel,
            tilingScheme:
                layers[8].children[0].tileType === "Geo"
                    ? new Cesium.GeographicTilingScheme()
                    : new Cesium.WebMercatorTilingScheme(),
            alpha: _GLOBAL.alpha,
        },
        "0",
        layers[8].children[0].zIndex,
        true,
        ""
    );
}