北京经济技术开发区经开区虚拟城市项目-【前端】-Web
lixuliang
2023-12-13 fcb9ad20cfb4f1d691f76f575e3bcf09729be7c9
最新
已添加2个文件
已修改6个文件
763 ■■■■ 文件已修改
config/index.js 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/left/left-ztfx.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/left/leftmenu.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/map/history.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/map/viewer1.vue 230 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/menu/tools/special.vue 487 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/poiKeys.js 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
static/NameConf.js 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
config/index.js
@@ -65,7 +65,10 @@
     * Source Maps
     */
    productionSourceMap: true,
    productionSourceMap: true,//浏览器源代码可以看到
    // productionSourceMap: false,
    // https://webpack.js.org/configuration/devtool/#production
    devtool: '#source-map',
src/components/left/left-ztfx.vue
@@ -405,7 +405,7 @@
            }
            pickFeature = nPickFeature;
            imgUrl = nPickFeature.primitive.image;
            nPickFeature.primitive.image = "http://10.10.4.116:8080/YZXNCS/static/SmartEarthSDK/Workers/image/red.png"
            nPickFeature.primitive.image = window.SmartEarthRootUrl + "Workers/image/point.png";
            // console.log(nPickFeature);
            this.$store.commit("description", nPickFeature.id.attributes);
          }
src/components/left/leftmenu.vue
@@ -2682,8 +2682,7 @@
    // },
    initCluster(treeNode) {
      this.$set(treeNode, "disabled", true); //给treeNode添加disabled属性
      // this.$set(treeNode, "disabled", true); //给treeNode添加disabled属性
      let that = this;
      let imgUrl;
      new Cesium.GeoJsonDataSource.load(
@@ -2691,7 +2690,7 @@
          "?version=1.3.0&request=GetFeature&format=json&typename=" +
          treeNode.layer
      ).then((dataSource) => {
        that.$set(treeNode, "disabled", false);
        // that.$set(treeNode, "disabled", false);
        Viewer.dataSources.add(dataSource);
        clusterItemList.push({ name: treeNode.id, dataSource: dataSource });
        // window.clusterItem = dataSource;
src/components/map/history.vue
@@ -54,7 +54,7 @@
}
let LwSource = new Tile({
  source: new WMTS({
    url: "http://172.26.64.84:80/service/ImageEngine/picdis/abc?user=jjjskfq&password=Jjjskfq@2022",
    url: "http://172.26.64.84/service/ImageEngine/picdis/abc?user=jjjskfq&password=Jjjskfq@2022",
    layer: "Shiliang_Lw_2019",
    style: "",
    format: "image/png",
src/components/map/viewer1.vue
@@ -3,12 +3,19 @@
    <div id="sdkContainer1" style="height: 100%"></div>
    <div class="listBox" v-show="!isLand">
      <ul id="viewer1_lsyx">
        <li v-for="(item, index) in arr" :key="index" @click="changeLeftMap($event, item, index)">
        <li
          v-for="(item, index) in arr"
          :key="index"
          @click="changeLeftMap($event, item, index)"
        >
          {{ item }}
        </li>
      </ul>
    </div>
    <layerTreeTwoScreenRight v-if="layerTreeTwoScreen" id="layerTreeTwoScreen111" />
    <layerTreeTwoScreenRight
      v-if="layerTreeTwoScreen"
      id="layerTreeTwoScreen111"
    />
    <div class="tdInfo" v-if="showTDinfo">
      <div class="tdInfo_close" @click="tdInfoClose">×</div>
      <p v-if="dikuanxinxi" class="noInfo">暂无该地块信息</p>
@@ -45,7 +52,12 @@
        <div v-else class="title">
          <li>
            ä¼ä¸š
            <el-tooltip class="item" effect="dark" content="点击查看企业信息" placement="bottom">
            <el-tooltip
              class="item"
              effect="dark"
              content="点击查看企业信息"
              placement="bottom"
            >
              <a @click="showYZCQY"> {{ qysl }}</a>
            </el-tooltip>
            å®¶
@@ -82,11 +94,19 @@
              :model="queryForm"
              :inline="true"
            >
              <el-form-item label="查询内容" prop="name">
                <el-input v-model="queryForm.content" placeholder="请输入查询内容" />
              <el-form-item label="查询条件" prop="name">
                <el-input
                  v-model="queryForm.content"
                  placeholder="请输入要查询的企业名称"
                />
              </el-form-item>
              <el-form-item>
                <el-button @click="queryInfo('queryForm')" icon="el-icon-search" class="primary">查询</el-button>
                <el-button
                  @click="queryInfo('queryForm')"
                  icon="el-icon-search"
                  class="primary"
                  >查询</el-button
                >
              </el-form-item>
            </el-form>
          </div>
@@ -101,34 +121,35 @@
            <el-table-column
              property="企业名称"
              label="企业名称"
              min-width="240"
              min-width="220"
            ></el-table-column>
            <el-table-column
              property="企业类型"
              label="企业类型"
              min-width="240"
              min-width="220"
            ></el-table-column>
            <el-table-column
              property="成立时间"
              label="成立时间"
              width="120"
              min-width="90"
            ></el-table-column>
            <!-- <el-table-column
              property="所属行业"
              label="所属行业"
            ></el-table-column> -->
            <el-table-column
              property="法人"
              label="法人"
              width="80"
            ></el-table-column>
            <el-table-column property="法人" label="法人"></el-table-column>
            <!-- <el-table-column
              property="注册地址"
              label="注册地址"
            ></el-table-column> -->
            <el-table-column label="操作" width="80">
            <el-table-column label="操作" width="60">
              <template slot-scope="scope">
                <el-button @click="handleClick(scope.row)" type="text" size="small">详情</el-button>
                <el-button
                  @click="handleClick(scope.row)"
                  type="text"
                  size="small"
                  >详情</el-button
                >
              </template>
            </el-table-column>
          </el-table>
@@ -219,7 +240,7 @@
      offset: "0%",
    };
  },
  created() { },
  created() {},
  computed: {
    ...mapState(["viewer1Show", "isLand", "layerTreeTwoScreen"]),
  },
@@ -240,8 +261,6 @@
            );
          }
        }, 2000);
      },
    },
    isLand(newvalue, oldvalue) {
@@ -309,8 +328,7 @@
          );
          if (this.isLand) {
            this.loadTDGLLayer();
          }
          else {
          } else {
            this.initLSYX();
          }
          var p = {
@@ -354,7 +372,7 @@
  methods: {
    initLSYX() {
      let ul = document.getElementById("viewer1_lsyx");
      let lis = ul.getElementsByTagName('li');
      let lis = ul.getElementsByTagName("li");
      lis[9].click();
    },
    setImageComparison(isStart) {
@@ -395,8 +413,7 @@
      nLayer = this.loadBJ54ImageLayer(year);
      if (!LWLayer1 || Viewer1.imageryLayers.indexOf(LWLayer1) < 0) {
        if(LWLayer1)
        {
        if (LWLayer1) {
          LWLayer1.destroy();
        }
        LWLayer1 = this.loadBJ54LWLayer1();
@@ -512,8 +529,6 @@
          } else {
            p = sgworld1.Navigate.getMousePosition(event);
          }
          // alert(JSON.stringify(p))
          // console.log(p);
          if (p) {
            if (line) {
              sgworld.Creator.DeleteObject(line);
@@ -534,10 +549,10 @@
            axios
              .get(
                "http://10.10.4.115:8022/geowinmap_xncs/ds?r=0.9158559377752831&serviceproviderid=map.vectorserviceprovider&serviceid=queryfeature&featcls=225%25E8%258C%2583%25E5%259B%25B4%25E5%2588%2586%25E5%258C%25BA%25E8%25A7%2584%25E5%2588%2592.geojson&lng=" +
                p.lon +
                "&lat=" +
                p.lat +
                "&geom=true&requesttype=json"
                  p.lon +
                  "&lat=" +
                  p.lat +
                  "&geom=true&requesttype=json"
              )
              .then((response) => {
                let center = { lon: 0, lat: 0 };
@@ -582,7 +597,7 @@
                  axios
                    .get(
                      "http://10.10.4.115:8022//poisearch/guihuacon/getInfo?ydbm=" +
                      response.data.NO
                        response.data.NO
                    )
                    .then(
                      (info) => {
@@ -618,10 +633,10 @@
                          }
                          try {
                            this.ydlx = data.yongdishuju["ydlxmc"];
                          } catch (e) { }
                          } catch (e) {}
                          try {
                            this.cyfx = data.yongdishuju["cyfx"];
                          } catch (e) { }
                          } catch (e) {}
                          try {
                            // this.crzt = response.data["ZT"];
                            switch (response.data["ZT"]) {
@@ -632,28 +647,28 @@
                                this.crzt = "未出让";
                                break;
                            }
                          } catch (e) { }
                          } catch (e) {}
                          try {
                            this.ydmj = parseFloat(
                              "" + data.yongdishuju["ydmj"]
                            ).toFixed(0);
                          } catch (e) { }
                          } catch (e) {}
                          try {
                            this.crnx = data.churangxinxi["crnx"];
                          } catch (e) { }
                          } catch (e) {}
                          try {
                            this.crnf = data.churangxinxi["crnf"];
                          } catch (e) { }
                          } catch (e) {}
                          try {
                            this.rjl = data.yongdishuju["rjl"];
                          } catch (e) { }
                          } catch (e) {}
                          try {
                            this.jzxg = data.yongdishuju["jzxg"];
                          } catch (e) { }
                          } catch (e) {}
                          try {
                            this.jzmd = data.yongdishuju["jzmd"];
                          } catch (e) { }
                        } catch (e) { }
                          } catch (e) {}
                        } catch (e) {}
                      },
                      (info) => {
                        this.$notify.error({
@@ -737,8 +752,8 @@
    handleClick(row) {
      window.open(
        "https://qylweb.bda.gov.cn/alldetails/#/newEnterprisedetails?uscc=" +
        row["统一社会信用代码"] +
        "&systemName=中小微"
          row["统一社会信用代码"] +
          "&systemName=中小微"
      );
    },
    detectZoom() {
@@ -1256,7 +1271,7 @@
  box-shadow: 0px 1px 10px 0px rgba(3, 10, 26, 0.38);
}
.aboutDialog>>>.el-dialog__body {
.aboutDialog >>> .el-dialog__body {
  height: 77%;
  padding: 0px !important;
  padding: 10px 10px 8px !important;
@@ -1271,30 +1286,32 @@
  background: transparent;
}
.aboutDialog>>>.el-dialog__title {
.aboutDialog >>> .el-dialog__title {
  color: #fff;
  font-size: 1.1rem;
  font-size: 18px;
}
.aboutDialog>>>.el-dialog__headerbtn .el-dialog__close {
.aboutDialog >>> .el-dialog__headerbtn .el-dialog__close {
  color: #fff;
}
.aboutDialog>>>.el-dialog__headerbtn:hover .el-dialog__close {
.aboutDialog >>> .el-dialog__headerbtn:hover .el-dialog__close {
  color: #fff;
}
.aboutDialog>>>.el-dialog__headerbtn {
.aboutDialog >>> .el-dialog__headerbtn {
  top: 13px;
}
.aboutDialog>>>.el-form-item {
.aboutDialog >>> .el-form-item {
  margin-top: 5px;
  margin-bottom: 10px;
}
.el-form>>>.el-form-item__label {
.el-form >>> .el-form-item__label {
  color: #fff;
  margin-left: 10px;
  font-size: 16px;
}
.aboutDialog .el-dialog-div {
@@ -1350,41 +1367,42 @@
  background-color: transparent;
}
.el-table /deep/ .el-table__body tr.current-row>td {
.el-table /deep/ .el-table__body tr.current-row > td {
  background-color: transparent;
}
.el-table--enable-row-hover /deep/ .el-table__body tr:hover>td {
.el-table--enable-row-hover /deep/ .el-table__body tr:hover > td {
  background-color: rgba(0, 32, 70, 0.7) !important;
}
.el-table__body /deep/ tr.current-row>td {
.el-table__body /deep/ tr.current-row > td {
  background-color: rgba(0, 32, 70, 0.7) !important;
}
.aboutDialog .el-dialog-div .dialog-footer {}
.aboutDialog .el-dialog-div .dialog-footer {
}
.el-pagination {
  color: #fff;
}
.el-pagination>>>.el-pagination__total,
.el-pagination>>>.btn-next,
.el-pagination>>>.btn-prev {
.el-pagination >>> .el-pagination__total,
.el-pagination >>> .btn-next,
.el-pagination >>> .btn-prev {
  background: transparent;
  color: #fff;
  font-size: 1rem;
  font-size: 14px;
}
.el-pagination>>>.el-pager li {
.el-pagination >>> .el-pager li {
  line-height: 27px;
  background-color: transparent;
  font-size: 1rem;
  font-size: 14px;
}
.el-pagination>>>.el-pager li.btn-quicknext,
.el-pagination>>>.el-pager li.btn-quickprev {
  font-size: 1rem;
.el-pagination >>> .el-pager li.btn-quicknext,
.el-pagination >>> .el-pager li.btn-quickprev {
  font-size: 14px;
  line-height: 28px;
  color: #fff;
}
@@ -1411,13 +1429,95 @@
/* å±å¹•分辨率放大为 125 */
@media (-webkit-min-device-pixel-ratio: 1.25) {
  .tdInfo_close {
    position: absolute;
    right: 10px;
    top: 8px;
    border-radius: 3px;
    width: 20px;
    height: 20px;
    background-color: rgba(0, 0, 0, 0.2);
    cursor: pointer;
    text-align: center;
    line-height: 19px;
    font-size: 20px;
  }
  .tdInfo .title li {
    margin-left: 25px;
    line-height: 25px;
    font-size: 15px;
    font-weight: bold;
    background: linear-gradient(0deg, #9cd2ff 0%, #ffffff 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
  }
  .content1,
  .content2,
  .content3 {
    /* width: 100%; */
    box-sizing: border-box;
    /* margin-left: 42px; */
    min-width: 220px;
    max-width: 280px;
    margin: 0 25px;
    display: flex;
    padding: 10px 0;
  }
  .content1 li,
  .content2 li,
  .content3 li {
    font-size: 13px;
  }
  .tdInfo a {
    font-size: 16px;
  }
  .listBox li {
    font-size: 12px;
  }
  .aboutDialog >>> .el-dialog__title {
    color: #fff;
    font-size: 14px;
  }
  .el-table {
    font-size: 12px;
  }
  .el-table /deep/ .el-button--text {
    font-size: 12px;
  }
  .el-form >>> .el-form-item__label {
    font-size: 13px;
  }
  .el-pagination >>> .el-pager li {
    font-size: 13px;
  }
  .el-pagination >>> .el-pagination__total,
  .el-pagination >>> .btn-next,
  .el-pagination >>> .btn-prev {
    font-size: 12px;
  }
  .el-pagination >>> .el-pager li.btn-quicknext,
  .el-pagination >>> .el-pager li.btn-quickprev {
    font-size: 12px;
  }
  .inquire >>> .el-form-item--mini .el-form-item__content,
  .inquire >>> .el-form-item--mini .el-form-item__label {
    line-height: 24px;
  }
  .inquire >>> .el-input__inner {
    height: 26px;
    line-height: 26px;
  }
  .inquire >>> .el-button--mini {
    padding: 6px 11px;
  }
  .inquire >>> .el-form-item {
    margin-right: 5px;
  }
}
.listBox li:hover {
src/components/menu/tools/special.vue
@@ -2,28 +2,52 @@
  <div class="special" id="special">
    <div class="specialTools">
      <div class="specialTool" @click="tdglHandle">
        <el-tooltip class="item" effect="dark" content="土地管理" placement="top-start" popper-class="item_tooltip">
        <el-tooltip
          class="item"
          effect="dark"
          content="土地管理"
          placement="top-start"
          popper-class="item_tooltip"
        >
          <el-button>
            <img src="@/assets/img/left/ztfx/tdgl.png" />
          </el-button>
        </el-tooltip>
      </div>
      <div class="specialTool" @click="stdsj">
        <el-tooltip class="item" effect="dark" content="视图大数据平台" placement="top-start" popper-class="item_tooltip">
        <el-tooltip
          class="item"
          effect="dark"
          content="视图大数据平台"
          placement="top-start"
          popper-class="item_tooltip"
        >
          <el-button>
            <img src="@/assets/img/left/ztfx/dashuju.png" />
          </el-button>
        </el-tooltip>
      </div>
      <div class="specialTool" @click="spjkHandle">
        <el-tooltip class="item" effect="dark" content="视频监控" placement="top-start" popper-class="item_tooltip">
        <el-tooltip
          class="item"
          effect="dark"
          content="视频监控"
          placement="top-start"
          popper-class="item_tooltip"
        >
          <el-button>
            <img src="@/assets/img/left/ztfx/spjk.png" />
          </el-button>
        </el-tooltip>
      </div>
      <div class="specialTool" @click="jjHandle">
        <el-tooltip class="item" effect="dark" content="街景" placement="top-start" popper-class="item_tooltip">
        <el-tooltip
          class="item"
          effect="dark"
          content="街景"
          placement="top-start"
          popper-class="item_tooltip"
        >
          <el-button>
            <img src="@/assets/img/left/ztfx/jiejing.png" />
          </el-button>
@@ -31,12 +55,26 @@
      </div>
      <div class="specialTool" @click="qytj">
        <el-tooltip class="item" effect="dark" content="数据汇聚" placement="top-start" popper-class="item_tooltip">
          <el-button> <img src="@/assets/img/left/ztfx/yqfk.png" /> </el-button></el-tooltip>
        <el-tooltip
          class="item"
          effect="dark"
          content="数据汇聚"
          placement="top-start"
          popper-class="item_tooltip"
        >
          <el-button> <img src="@/assets/img/left/ztfx/yqfk.png" /> </el-button
        ></el-tooltip>
      </div>
      <div class="specialTool" @click="rangeQuery()">
        <el-tooltip class="item" effect="dark" content="范围查询" placement="top-start" popper-class="item_tooltip">
          <el-button> <img src="@/assets/img/left/ztfx/sjxq.png" /> </el-button></el-tooltip>
        <el-tooltip
          class="item"
          effect="dark"
          content="范围查询"
          placement="top-start"
          popper-class="item_tooltip"
        >
          <el-button> <img src="@/assets/img/left/ztfx/sjxq.png" /> </el-button
        ></el-tooltip>
      </div>
      <!-- <div class="specialTool" @click="guanxian(openGX)">
        <el-tooltip
@@ -186,25 +224,35 @@
  background: rgba(0, 168, 255, 0.16);
}
</style>
<style>
#pointInfoBox {
  /* width: 350px; */
  padding: 20px;
  text-align: left;
  background-image: url("~@/assets/img/new/listbg.png");
  /* border: 5px #08235f solid; */
  /* border-radius: 7px; */
  box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.5);
  color: #fff;
}
</style>
<script>
import axios from "axios";
import { mapState, mapMutations } from "vuex";
import Bus from "../../tools/Bus";
import { roman } from "../../../assets/json/index.js";
import URLInCode from "@/assets/js/urlInCode";
import keyName from "@/utils/poiKeys";
let handler;
let pickFeature;
let tooltipHTML;
let divPoint1;
let imgUrl;
let scale;
window.divPoint1 = null;
window.pickFeature = null;
window.imgUrl = null;
window.scale = null;
let buildingPolygon;
let tooltip;
let lineArr = [];
let video;
let video2;
let video3;
let video4;
let promiseS3M;
//交通图层
let panoramaLayer;
@@ -318,7 +366,7 @@
    ...mapState(["viewer1Show", "yqfk", "cesiumInit"]),
    ...mapState(["viewer1Show", "yqfk", "qyEchartsShow"]),
  },
  mounted() { },
  mounted() {},
  watch: {
    cesiumInit: {
      handler(newVal, oldVal) {
@@ -393,7 +441,7 @@
              sgworld.drawObj &&
                (sgworld.drawObj.drawHandler &&
                  sgworld.drawObj.drawHandler.destroy(),
                  sgworld.drawObj.end && sgworld.drawObj.end());
                sgworld.drawObj.end && sgworld.drawObj.end());
              let props = pick.id.properties;
              let screenHeight =
@@ -472,7 +520,7 @@
          {},
          "0",
          true,
          function () { }
          function () {}
        );
        window.panoramaHandler = new Cesium.ScreenSpaceEventHandler(
          Viewer.scene.canvas
@@ -484,7 +532,7 @@
          panorama.open({
            id: "qjMap",
            closeId: "panoramaClose",
            lng: p.lon,
            lon: p.lon,
            lat: p.lat,
          });
@@ -498,7 +546,7 @@
      } else {
        try {
          window.panoramaLayer.deleteObject();
        } catch (e) { }
        } catch (e) {}
        window.panoramaHandler.destroy();
        window.panoramaHandler = undefined;
      }
@@ -521,26 +569,34 @@
      }
    },
    clearSelectObject() {
      if (pickFeature && pickFeature.primitive) {
        pickFeature.primitive.image = imgUrl;
        pickFeature.primitive.scale = scale;
        pickFeature = null;
      if (window.pickFeature && window.pickFeature.primitive) {
        window.pickFeature.primitive.image = imgUrl;
        window.pickFeature.primitive.scale = scale;
        window.pickFeature = null;
      }
    },
    setCesuimHandle() {
      var that = this;
      Bus.$on("clearSelectObject", this.clearSelectObject);
      handler && handler.destroy();
      handler = new Cesium.ScreenSpaceEventHandler(Viewer.scene.canvas);
      handler.setInputAction((event) => {
        let nPickFeature = sgworld.Viewer.scene.pick(event.position);
        if (Cesium.defined(nPickFeature)) {
          this.resetImg();
          if (buildingPolygon) {
            sgworld.Creator.DeleteObject(buildingPolygon);
            buildingPolygon = null;
          }
          if (nPickFeature.primitive instanceof Cesium.Billboard) {
            if (nPickFeature.id.length > 0) {
              return;
            }
            this.resetImg();
            this.resetBorder();
            pickFeature = nPickFeature;
            // this.resetBorder();
            window.pickFeature = nPickFeature;
            // console.log(nPickFeature);
            imgUrl = nPickFeature.primitive.image;
            scale = nPickFeature.primitive.scale;
            nPickFeature.primitive.scale = 1;
@@ -548,7 +604,7 @@
              window.SmartEarthRootUrl + "Workers/image/point.png";
            //点击弹框
            let obj = {};
            let lng;
            let lon;
            let lat;
            let isCamera = false;
            if (nPickFeature.id.tag) {
@@ -572,55 +628,136 @@
                window.Viewer.scene.globe.ellipsoid.cartesianToCartographic(
                  nPickFeature.id.position._value
                );
              lng = Cesium.Math.toDegrees(cartographic.longitude);
              lon = Cesium.Math.toDegrees(cartographic.longitude);
              lat = Cesium.Math.toDegrees(cartographic.latitude);
            } else {
              obj = nPickFeature.id.attributes;
              lng = nPickFeature.id.positions[0];
              lon = nPickFeature.id.positions[0];
              lat = nPickFeature.id.positions[1];
            }
            if (divPoint1) {
              divPoint1.deleteObject();
            }
            if (!isCamera) {
              tooltipHTML = "";
              // console.log(obj);
              for (let i in obj) {
                let value = obj[i];
                value && (tooltipHTML += `<p>${i}:${value || "无"}</p>`);
              // åˆ é™¤å­—段
              let { OBJECTID, ID, BZDZ, Latitude, Longtitude, ...userData } =
                obj;
              for (let i in userData) {
                let value = userData[i];
                let name = keyName[i] || i;
                value && (tooltipHTML += `<p>${name}:${value || "无"}</p>`);
                console.log(tooltipHTML);
              }
              if (tooltip) {
                tooltip.show(false);
                tooltip = null;
              }
              tooltip = sgworld.Core.CreateResultTooltip(window.Viewer, {
                color: "black",
                addY: -40,
                far: 200000,
                closeBtn: true,
                close: () => {
                  this.resetImg();
                  this.resetBorder();
              let description = `
                   <div id="pointInfoBox" class="pointInfoBox" style="pointer-events:auto;">
                    <span style="position: absolute; right: 12px; top: 6px;">×</span>
                    ${tooltipHTML}
                  </div>
                `;
              divPoint1 = sgworld.Creator.createDivPoint(
                "详细信息",
                {
                  lon: lon,
                  lat: lat,
                  height: 50,
                },
              });
              let description = `<div style='background:
                                      rgba(14, 50, 143, 0.6);
                                      border: 1px solid #205fbc;
                                       border-radius: 5px;
                                       color: #fff;
                                       padding: 15px;
                                       box-shadow: 0px 1px 10px 0px rgba(3, 10, 26, 0.38);
                                       '>${tooltipHTML}</div>`;
              tooltip.showAt(
                Cesium.Cartesian3.fromDegrees(lng, lat, 0),
                description
                {
                  type: "custom",
                  offset: ["c", 50],
                  description,
                  onclick(data) {
                    // sgworld.Creator.DeleteObject(divPoint1);
                    divPoint1 && divPoint1.deleteObject();
                    if (window.pickFeature && window.pickFeature.primitive) {
                      window.pickFeature.primitive.image = imgUrl;
                      window.pickFeature.primitive.scale = scale;
                      window.pickFeature = null;
                    }
                  },
                }
              );
              // if (tooltip) {
              //   tooltip.show(false);
              //   tooltip = null;
              // }
              // tooltip = sgworld.Core.CreateResultTooltip(window.Viewer, {
              //   color: "black",
              //   addY: -40,
              //   far: 200000,
              //   closeBtn: true,
              //   close: () => {
              //     this.resetImg();
              //   },
              // });
              // let description = `<div style='background:
              //                         rgba(14, 50, 143, 0.6);
              //                         border: 1px solid #205fbc;
              //                          border-radius: 5px;
              //                          color: #fff;
              //                          padding: 15px;
              //                          box-shadow: 0px 1px 10px 0px rgba(3, 10, 26, 0.38);
              //                          '>${tooltipHTML}</div>`;
              // tooltip.showAt(
              //   Cesium.Cartesian3.fromDegrees(lon, lat, 0),
              //   description
              // );
            }
            //关闭地块信息弹窗
            Bus.$emit("closeLandInfoPop", true);
            layuiLayer.close(SmartEarthPopupData.layerProp);
            this.$store.commit("description", obj);
          } else if (nPickFeature.primitive instanceof Cesium.Cesium3DTileset) {
            // let cartographic =
            //   window.Viewer.scene.globe.ellipsoid.cartesianToCartographic(
            //     nPickFeature.content.tile.boundingSphere.center
            //   );
            // let lon = Cesium.Math.toDegrees(cartographic.longitude);
            // let lat = Cesium.Math.toDegrees(cartographic.latitude);
            let p = sgworld.Navigate.getMouseDegrees(event);
            let lon = p.lon;
            let lat = p.lat;
            axios
              .get(
                "http://10.10.4.121:8070/gisserver/wfsserver/yizhuang-building-wfs-1207",
                {
                  params: {
                    version: "1.3.0",
                    request: "GetFeature",
                    typename: `亦庄建筑外轮廓4326`,
                    propertyname: "*",
                    format: "json",
                    filter: `<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml"><ogc:Intersects><ogc:PropertyName>SAHEP</ogc:PropertyName><gml:Point > <gml:pos>${lon} ${lat}</gml:pos></gml:Point></ogc:Intersects></ogc:Filter>`,
                  },
                }
              )
              .then((response) => {
                if (response.data.features.length > 0) {
                  var geometry = [];
                  let POIs = response.data.features[0].geometry.coordinates[0];
                  for (let i = 0; i < POIs.length; i++) {
                    geometry.push({
                      x: parseFloat(POIs[i][0]),
                      y: parseFloat(POIs[i][1]),
                      z: 0,
                    });
                  }
                  buildingPolygon = sgworld.Creator.createPolygon(
                    geometry,
                    {
                      fillColor: "#00ff0050",
                      outlineColor: "#ff0000",
                      outlineWidth: 2,
                    },
                    1,
                    0,
                    "面"
                  );
                }
              });
          }
          // else if (nPickFeature.primitive instanceof Cesium.GroundPrimitive) {
          //   let wmsLayer = this.$store.state.selectedLayers.filter((item) => {
@@ -718,20 +855,20 @@
      this.$parent.$parent.$parent.isShowSpeAnalyse = false;
    },
    resetImg() {
      if (pickFeature && pickFeature.primitive) {
        pickFeature.primitive.image = imgUrl;
        pickFeature.primitive.scale = scale;
        pickFeature = null;
      if (window.pickFeature && window.pickFeature.primitive) {
        window.pickFeature.primitive.image = imgUrl;
        window.pickFeature.primitive.scale = scale;
        window.pickFeature = null;
      }
    },
    resetBorder() {
      lineArr.forEach((item, index) => {
        if (lineArr[index]) {
          sgworld.Creator.DeleteObject(lineArr[index]);
          lineArr[index] = null;
        }
      });
    },
    // resetBorder() {
    //   lineArr.forEach((item, index) => {
    //     if (lineArr[index]) {
    //       sgworld.Creator.DeleteObject(lineArr[index]);
    //       lineArr[index] = null;
    //     }
    //   });
    // },
    stdsjHandle() {
      window.open(
        "http://10.9.2.29:8080/#/login?token=1ed14c5157acb8088efe65bc93a032c3"
@@ -873,6 +1010,206 @@
        });
      }
    },
    read(wkt) {
      var regExes = {
        typeStr: /^\s*(\w+)\s*\(\s*(.*)\s*\)\s*$/,
        emptyTypeStr: /^\s*(\w+)\s*EMPTY\s*$/,
        spaces: /\s+/,
        parenComma: /\)\s*,\s*\(/,
        doubleParenComma: /\)\s*\)\s*,\s*\(\s*\(/, // can't use {2} here
        trimParens: /^\s*\(?(.*?)\)?\s*$/,
      };
      /**
       * Object with properties corresponding to the geometry types. Property values
       * are functions that do the actual parsing.
       * @private
       */
      var parse$1 = {
        /**
         * Return point geometry given a point WKT fragment.
         *
         * @param {String} str A WKT fragment representing the point.
         * @return {Point} A point geometry.
         * @private
         */
        point: function point(str) {
          if (str === undefined) {
            return [];
          }
          var coords = str.trim().split(regExes.spaces);
          return [Number.parseFloat(coords[0]), Number.parseFloat(coords[1])];
        },
        /**
         * Return a multipoint geometry given a multipoint WKT fragment.
         *
         * @param {String} str A WKT fragment representing the multipoint.
         * @return {Point} A multipoint feature.
         * @private
         */
        multipoint: function multipoint(str) {
          var this$1 = this;
          if (str === undefined) {
            return [];
          }
          var point;
          var points = str.trim().split(",");
          var components = [];
          for (var i = 0, len = points.length; i < len; ++i) {
            point = points[i].replace(regExes.trimParens, "$1");
            components.push(parse$1.point(point));
          }
          return components;
        },
        /**
         * Return a linestring geometry given a linestring WKT fragment.
         *
         * @param {String} str A WKT fragment representing the linestring.
         * @return {LineString} A linestring geometry.
         * @private
         */
        linestring: function linestring(str) {
          if (str === undefined) {
            return [];
          }
          var points = str.trim().split(",");
          var components = [];
          var coords;
          for (var i = 0, len = points.length; i < len; ++i) {
            coords = points[i].trim().split(regExes.spaces);
            components.push([
              Number.parseFloat(coords[0]),
              Number.parseFloat(coords[1]),
            ]);
          }
          return components;
        },
        /**
         * Return a linearring geometry given a linearring WKT fragment.
         *
         * @param {String} str A WKT fragment representing the linearring.
         * @return {LinearRing} A linearring geometry.
         * @private
         */
        linearring: function linearring(str) {
          if (str === undefined) {
            return [];
          }
          var points = str.trim().split(",");
          var components = [];
          var coords;
          for (var i = 0, len = points.length; i < len; ++i) {
            coords = points[i].trim().split(regExes.spaces);
            components.push([
              Number.parseFloat(coords[0]),
              Number.parseFloat(coords[1]),
            ]);
          }
          return components;
        },
        /**
         * Return a multilinestring geometry given a multilinestring WKT fragment.
         *
         * @param {String} str A WKT fragment representing the multilinestring.
         * @return {MultiLineString} A multilinestring geometry.
         * @private
         */
        multilinestring: function multilinestring(str) {
          var this$1 = this;
          if (str === undefined) {
            return [];
          }
          var line;
          var lines = str.trim().split(regExes.parenComma);
          var components = [];
          for (var i = 0, len = lines.length; i < len; ++i) {
            line = lines[i].replace(regExes.trimParens, "$1");
            components.push(parse$1.linestring(line));
          }
          return components;
        },
        /**
         * Return a polygon geometry given a polygon WKT fragment.
         *
         * @param {String} str A WKT fragment representing the polygon.
         * @return {Polygon} A polygon geometry.
         * @private
         */
        polygon: function polygon(str) {
          var this$1 = this;
          if (str === undefined) {
            return [];
          }
          var ring, linestring, linearring;
          var rings = str.trim().split(regExes.parenComma);
          var shell;
          var holes = [];
          //for (var i = 0, len = rings.length; i < len; ++i) {
          ring = rings[0].replace(regExes.trimParens, "$1");
          linestring = ring;
          //}
          return linestring;
        },
        /**
         * Return a multipolygon geometry given a multipolygon WKT fragment.
         *
         * @param {String} str A WKT fragment representing the multipolygon.
         * @return {MultiPolygon} A multipolygon geometry.
         * @private
         */
        multipolygon: function multipolygon(str) {
          var this$1 = this;
          if (str === undefined) {
            return [];
          }
          var polygon;
          var polygons = str.trim().split(regExes.doubleParenComma);
          var components = [];
          for (var i = 0, len = polygons.length; i < len; ++i) {
            polygon = polygons[i].replace(regExes.trimParens, "$1");
            components.push(parse$1.polygon(polygon));
          }
          return components;
        },
      };
      var geometry, type, str;
      wkt = wkt.replace(/[\n\r]/g, " ");
      var matches = regExes.typeStr.exec(wkt);
      if (wkt.search("EMPTY") !== -1) {
        matches = regExes.emptyTypeStr.exec(wkt);
        matches[2] = undefined;
      }
      if (matches) {
        type = matches[1].toLowerCase();
        str = matches[2];
        if (parse$1[type]) {
          geometry = parse$1[type].apply(this, [str]);
        }
      }
      if (geometry === undefined) {
        throw new Error("Could not parse WKT " + wkt);
      }
      return geometry;
    },
  },
};
</script>
src/utils/poiKeys.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
const keyName = {
    SSDW: "所属单位",
    LXR: "联系人",
    DIZHI: "地址",
    DZ: "地址",
    QYMC: "企业名称",
    XYDM: "信用代码",
    Name: "名称",
}
export default keyName
static/NameConf.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
const LayerField = {
    ID: 0,
    äº•名称: 0,
    äº•编号: 0,
    æ ‡æ®µå¤‡: 0,
    ä½ç½®: 0,
    è¡Œæ”¿åŒº: 0,
    éƒ¨ä»¶åç§°: 0,
    éƒ¨ä»¶ç¼–码: 0,
    å®‰è£…地址: 0,
    è·¯å: 0,
    è®¾å¤‡æƒå±ž: 0,
    éƒ¨ä»¶ç±»åž‹: 0,
    æ‰€å±žåŒºåŸŸ: 0,
    ç»åº¦: 0,
    çº¬åº¦: 0
}
export default LayerField