suerprisePlus
2024-06-21 fde8e3bedaf5f883f38c3a0ec33d3c6a8748d1c9
src/assets/js/map/mapServer.js
@@ -1,12 +1,14 @@
import mapConfig from "./mapConfig";
var tileset;
const mapServer = {
  listData: [],
  sourceType: null,
  tileContent: null,
  init() {},
  addServer(res) {
    // this.remoServer(res);
    this.sourceType = res.sourceType;
    console.log(this.sourceType);
    switch (this.sourceType) {
      case "arcgis":
        this.addArcgisServer(res);
@@ -17,19 +19,73 @@
      case "tms":
        this.addTmsLayer(res);
        break;
      case "wfs":
        this.addWfsLayer(res);
        break;
      case "Tileset":
        this.addTileSetLayer(res);
        break;
    }
  },
  addTmsLayer(res) {
    console.log(res.url);
    var layer = earthCtrl.factory.createImageryLayer({
        sourceType: "tms",
        url: "http://test.smartearth.cn:9037/gisserver/tmsserver/SubicBayArea",
  remoServer(res) {
    for (var i in this.listData) {
      const obj = this.listData[i];
      if (obj.type == res.sourceType) {
        obj.layer.removeFromMap();
        this.listData.splice(i, 1);
      }
    }
  },
  addTileSetLayer(res) {
    const tileset = new Cesium.Cesium3DTileset({
      url: res.url
    });
    Viewer.scene.primitives.add(tileset);
    // const that = this;
    // tileset.readyPromise.then((tileObj) => {
    //   tileObj.tileVisible.addEventListener((tile) => {
    //     if (Cesium.defined(tile.content)) {
    //               var featuresLength = tile.content.featuresLength;
    //               for (var i = 0; i < featuresLength; i++) {
    //                 var feature = tile.content.getFeature(i);
    //                 // console.log(feature.getProperty("id"));
    //               }
    //     }
    //   });
    // });
    this.listData.push({
      layer: tileset,
      type: this.sourceType
    });
  },
  traverseVisibleTiles() {
    tileset.readyPromise.then((tileset) => {
      tileset.tileVisibility.forEachTile(function (tile) {});
    });
  },
  addWfsLayer(res) {
    const layer = earthCtrl.factory.createWfsLayer("polygon", {
      urls: res.url,
      layer: res.layer,
      outlineColor: res.outlineColor,
      alpha: res.alpha
    });
    this.listData.push({
      layer: layer,
      type: this.sourceType
    });
    mapConfig.flyToImageryLayer(layer)
  },
  addTmsLayer(res) {
    const layer = earthCtrl.factory.createImageryLayer({
      sourceType: "tms",
      url: res.url
    });
    this.listData.push({
      layer: layer,
      type: this.sourceType
    });
  },
  addArcgisServer(res) {
    const layer = earthCtrl.factory.createImageryLayer({
@@ -40,7 +96,6 @@
      layer: layer,
      type: this.sourceType
    });
  },
  addGeoServer(res) {
    const layer = earthCtrl.factory.createWfsLayer("polygon", {