@kq_npm/client3d_webgl_vue 3.4.3-beta → 3.4.4-beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.js CHANGED
@@ -1288,9 +1288,14 @@ class LayerManager {
1288
1288
  });
1289
1289
  this._promises = [];
1290
1290
  Promise.all(sourcePromises).then(() => {
1291
- layer.layerTreeData.forEach(data => {
1292
- this.setLayerInfo(data, layer.sources);
1293
- }, this);
1291
+ // layer.layerTreeData.forEach(data => {
1292
+ // this.setLayerInfo(data, layer.sources);
1293
+ // }, this);
1294
+ //倒序加载图层
1295
+ for (let i = layer.layerTreeData.length - 1; i >= 0; i--) {
1296
+ this.setLayerInfo(layer.layerTreeData[i], layer.sources);
1297
+ }
1298
+
1294
1299
  Promise.all(this._promises).then(() => {
1295
1300
  this._layerTreeData = layer.layerTreeData;
1296
1301
 
@@ -1316,10 +1321,14 @@ class LayerManager {
1316
1321
 
1317
1322
  setLayerInfo(layerData, sources) {
1318
1323
  if (layerData.children) {
1319
- layerData.guid = Cesium.createGuid();
1320
- layerData.children.forEach(child => {
1321
- this.setLayerInfo(child, sources);
1322
- }, this);
1324
+ layerData.guid = Cesium.createGuid(); // layerData.children.forEach(child => {
1325
+ // this.setLayerInfo(child, sources);
1326
+ // }, this);
1327
+ //倒序加载子图层
1328
+
1329
+ for (let i = layerData.children.length - 1; i >= 0; i--) {
1330
+ this.setLayerInfo(layerData.children[i], sources);
1331
+ }
1323
1332
  } else {
1324
1333
  if (layerData.sourceName) {
1325
1334
  var source = sources.find(item => {
@@ -1357,18 +1366,20 @@ class LayerManager {
1357
1366
  type = "kqgisimageserver";
1358
1367
  } else if (layerData.sourceType === "kq3dserver") {
1359
1368
  type = "kqgis3dserver";
1369
+ } else if (layerData.sourceType === "mvt") {
1370
+ type = "mvt";
1360
1371
  }
1361
1372
 
1362
1373
  layerData.addType = type;
1363
1374
 
1364
- this._layerListData.push(layerData);
1375
+ this._layerListData.push(layerData); //是否添加图层
1365
1376
 
1366
- if (!this._scenceShowLayers || this._scenceShowLayers.indexOf(layerData.name) > -1) {
1367
- var promise = this.addLayerData(layerData);
1368
1377
 
1369
- if (promise) {
1370
- this._promises.push(promise);
1371
- }
1378
+ let isAdd = !this._scenceShowLayers || this._scenceShowLayers.indexOf(layerData.name) > -1;
1379
+ var promise = this.addLayerData(layerData, isAdd);
1380
+
1381
+ if (promise) {
1382
+ this._promises.push(promise);
1372
1383
  }
1373
1384
  }
1374
1385
  }
@@ -1376,7 +1387,7 @@ class LayerManager {
1376
1387
  } //添加图层数据
1377
1388
 
1378
1389
 
1379
- addLayerData(layerData) {
1390
+ addLayerData(layerData, isAdd = true) {
1380
1391
  var type = layerData.addType;
1381
1392
  let url = layerData.url;
1382
1393
  type = type || "";
@@ -1401,6 +1412,10 @@ class LayerManager {
1401
1412
  }
1402
1413
  }
1403
1414
  }
1415
+ } else {
1416
+ if (!name || name === "") {
1417
+ name = layerData.layerType;
1418
+ }
1404
1419
  }
1405
1420
 
1406
1421
  layerData.name = name;
@@ -1410,65 +1425,80 @@ class LayerManager {
1410
1425
  switch (type) {
1411
1426
  case 'kq3dimageryfile':
1412
1427
  //影像瓦片文件
1413
- layer = this._viewer.imageryLayers.addImageryProvider(new Cesium.Kq3dFileImageryProvider({
1414
- name: name,
1415
- url: url,
1416
- ...params
1417
- }));
1418
- layer._guid = layerData.guid;
1419
- layerData.visible = true;
1428
+ layerData.visible = isAdd;
1420
1429
  layerData.serverType = "imagerylayer";
1430
+
1431
+ if (isAdd) {
1432
+ layer = this._viewer.imageryLayers.addImageryProvider(new Cesium.Kq3dFileImageryProvider({
1433
+ name: name,
1434
+ url: url,
1435
+ ...params
1436
+ }));
1437
+ layer._guid = layerData.guid;
1438
+ }
1439
+
1421
1440
  break;
1422
1441
 
1423
1442
  case 'obterrain':
1424
1443
  //ob地形瓦片文件
1425
- layer = new Cesium.Kq3dFileTerrainProvider({
1426
- name: name,
1427
- url: url,
1428
- ...params
1429
- });
1430
- layer.guid = layerData.guid;
1431
- layerData.visible = true;
1444
+ layerData.visible = isAdd;
1432
1445
  layerData.serverType = "terrainprovider";
1433
- this._viewer.terrainProvider = layer;
1434
1446
 
1435
- this._terrainProviders.push(layer);
1447
+ if (isAdd) {
1448
+ layer = new Cesium.Kq3dFileTerrainProvider({
1449
+ name: name,
1450
+ url: url,
1451
+ ...params
1452
+ });
1453
+ layer.guid = layerData.guid;
1454
+ this._viewer.terrainProvider = layer;
1455
+
1456
+ this._terrainProviders.push(layer);
1457
+ }
1436
1458
 
1437
1459
  break;
1438
1460
 
1439
1461
  case 'stkterrain':
1440
1462
  //stk地形瓦片文件
1441
- layer = new Cesium.CesiumTerrainProvider({
1442
- name: name,
1443
- url: url,
1444
- requestVertexNormals: true,
1445
- requestWaterMask: false,
1446
- ...params
1447
- });
1448
- layer.guid = layerData.guid;
1449
- this._viewer.terrainProvider = layer;
1463
+ layerData.visible = isAdd;
1464
+ layerData.serverType = "terrainprovider";
1450
1465
 
1451
- this._terrainProviders.push(layer);
1466
+ if (isAdd) {
1467
+ layer = new Cesium.CesiumTerrainProvider({
1468
+ name: name,
1469
+ url: url,
1470
+ requestVertexNormals: true,
1471
+ requestWaterMask: false,
1472
+ ...params
1473
+ });
1474
+ layer.guid = layerData.guid;
1475
+ this._viewer.terrainProvider = layer;
1476
+
1477
+ this._terrainProviders.push(layer);
1478
+ }
1452
1479
 
1453
- layerData.visible = true;
1454
- layerData.serverType = "terrainprovider";
1455
1480
  break;
1456
1481
 
1457
1482
  case "3dtiles":
1458
- layer = this._viewer.scene.primitives.add(new Cesium.Cesium3DTileset({
1459
- name: name,
1460
- url: url,
1461
- ...params
1462
- }));
1463
- if (layerData.style && layer) layer.style = layerData.style;
1464
- if (layerData.shader && layer) layer.kq3dCustomShader = layerData.shader;
1465
- layer._guid = layerData.guid;
1466
- layerData.visible = true;
1483
+ layerData.visible = isAdd;
1467
1484
  layerData.serverType = "3dtiles";
1485
+
1486
+ if (isAdd) {
1487
+ layer = this._viewer.scene.primitives.add(new Cesium.Cesium3DTileset({
1488
+ name: name,
1489
+ url: url,
1490
+ ...params
1491
+ }));
1492
+ if (layerData.style && layer) layer.style = layerData.style;
1493
+ if (layerData.shader && layer) layer.kq3dCustomShader = layerData.shader;
1494
+ layer._guid = layerData.guid;
1495
+ }
1496
+
1468
1497
  break;
1469
1498
 
1470
1499
  case "kqgis3dserver":
1471
1500
  var that = this;
1501
+ layerData.visible = isAdd;
1472
1502
  promise = this._viewer.addKq3dServerLayerGroupExt(url).then(group => {
1473
1503
  var layers = group._addedLayers || group._layers;
1474
1504
 
@@ -1478,34 +1508,48 @@ class LayerManager {
1478
1508
 
1479
1509
  if (layer instanceof Cesium.Cesium3DTileset) {
1480
1510
  serverType = "3dtiles";
1511
+ layer.show = isAdd;
1481
1512
  } else if (layer instanceof Cesium.ImageryLayer) {
1482
1513
  serverType = "imagerylayer";
1514
+ layer.show = isAdd;
1483
1515
  } else if (layer instanceof Cesium.Kq3dFileTerrainProvider || layer instanceof Cesium.CesiumTerrainProvider) {
1484
1516
  serverType = "terrainprovider";
1485
1517
  layer.guid = layerData.guid;
1486
1518
 
1487
1519
  that._terrainProviders.push(layer);
1520
+
1521
+ if (!isAdd) {
1522
+ layer.readyPromise.then(() => {
1523
+ that._viewer.terrainProvider = that._emptyTerrainProvider;
1524
+ });
1525
+ }
1488
1526
  } else if (layer instanceof Cesium.Kq3dGeoJsonDataSource) {
1489
1527
  serverType = "datasource";
1528
+ layer.show = isAdd;
1529
+ layerData.shapeType = that.getShapeType(layer);
1490
1530
  }
1491
1531
 
1492
1532
  layer._guid = layerData.guid;
1493
- layerData.visible = true;
1494
1533
  layerData.serverType = serverType;
1495
1534
  }
1496
1535
  });
1497
1536
  break;
1498
1537
 
1499
1538
  case "kqgisimageserver":
1500
- layer = this._viewer.imageryLayers.addImageryProvider(new Cesium.Kq3dKQGISServerImageryProviderExt({
1501
- name: name,
1502
- url: url,
1503
- layerName: layerData.layerName,
1504
- ...params
1505
- }));
1506
- layer._guid = layerData.guid;
1507
- layerData.visible = true;
1539
+ layerData.visible = isAdd;
1508
1540
  layerData.serverType = "imagerylayer";
1541
+ layerData.type = "Image"; // 图层树显示图标使用
1542
+
1543
+ if (isAdd) {
1544
+ layer = this._viewer.imageryLayers.addImageryProvider(new Cesium.Kq3dKQGISServerImageryProviderExt({
1545
+ name: name,
1546
+ url: url,
1547
+ layerName: layerData.layerName,
1548
+ ...params
1549
+ }));
1550
+ layer._guid = layerData.guid;
1551
+ }
1552
+
1509
1553
  break;
1510
1554
 
1511
1555
  case "kqgismapserver":
@@ -1523,125 +1567,145 @@ class LayerManager {
1523
1567
  }
1524
1568
  }
1525
1569
 
1526
- layerData.visible = true;
1527
- var imageryProvider = new Cesium.Kq3dKQGISMapServerImageryProviderExt({
1528
- url: url,
1529
- ua_token: layerData.token,
1530
- layers: layerData.id + "",
1531
- ...params
1532
- });
1533
- layer = new Cesium.ImageryLayer(imageryProvider);
1570
+ layerData.visible = isAdd;
1571
+ layerData.serverType = "imagerylayer";
1534
1572
 
1535
- this._viewer.imageryLayers.add(layer);
1573
+ if (isAdd) {
1574
+ var imageryProvider = new Cesium.Kq3dKQGISMapServerImageryProviderExt({
1575
+ url: url,
1576
+ ua_token: layerData.token,
1577
+ layers: layerData.id + "",
1578
+ ...params
1579
+ });
1580
+ layer = new Cesium.ImageryLayer(imageryProvider);
1581
+
1582
+ this._viewer.imageryLayers.add(layer);
1583
+
1584
+ layer._guid = layerData.guid;
1585
+ }
1536
1586
 
1537
- layer._guid = layerData.guid;
1538
- layerData.serverType = "imagerylayer";
1539
1587
  break;
1540
1588
 
1541
1589
  case "arcgismapserver":
1542
- layer = this._viewer.imageryLayers.addImageryProvider(new Cesium.Kq3dArcGISMapServerImageryProvider({
1543
- name: name,
1544
- url: url,
1545
- layers: layerData.id + "",
1546
- ...params
1547
- }));
1548
- layer._guid = layerData.guid;
1549
- layerData.visible = true;
1590
+ layerData.visible = isAdd;
1550
1591
  layerData.serverType = "imagerylayer";
1592
+
1593
+ if (isAdd) {
1594
+ layer = this._viewer.imageryLayers.addImageryProvider(new Cesium.Kq3dArcGISMapServerImageryProvider({
1595
+ name: name,
1596
+ url: url,
1597
+ layers: layerData.id + "",
1598
+ ...params
1599
+ }));
1600
+ layer._guid = layerData.guid;
1601
+ }
1602
+
1551
1603
  break;
1552
1604
 
1553
1605
  case "mvt":
1554
- layer = this._viewer.imageryLayers.addImageryProvider(new Cesium.Kq3dMvtImageryProviderExt({
1555
- name: name,
1556
- url: url,
1557
- ...params
1558
- }));
1559
- layer._guid = layerData.guid;
1560
- layerData.visible = true;
1606
+ layerData.visible = isAdd;
1561
1607
  layerData.serverType = "imagerylayer";
1608
+ layerData.renderType = "vectortile"; // 图层树显示图标使用
1609
+
1610
+ if (isAdd) {
1611
+ layer = this._viewer.imageryLayers.addImageryProvider(new Cesium.Kq3dMvtImageryProviderExt({
1612
+ name: name,
1613
+ style: url,
1614
+ ...params
1615
+ }));
1616
+ layer._guid = layerData.guid;
1617
+ }
1618
+
1562
1619
  break;
1563
1620
 
1564
1621
  case "wms":
1565
1622
  //配置id时只能是单个图层
1566
1623
  if (layerData.rect84) {
1567
- var options = {
1568
- url: url,
1569
- layers: layerData.id + "",
1570
- tilingScheme: layerData.epsg == 3857 ? new Cesium.WebMercatorTilingScheme() : new Cesium.GeographicTilingScheme(),
1571
- rectangle: Cesium.Rectangle.fromDegrees(layerData.rect84[0], layerData.rect84[1], layerData.rect84[2], layerData.rect84[3]),
1572
- parameters: {
1573
- transparent: 'true',
1574
- format: 'image/png'
1575
- },
1576
- ...params
1577
- };
1578
- if (layerData.styles) options.parameters.styles = layerData.styles;
1579
- layer = this._viewer.imageryLayers.addImageryProvider(new Cesium.WebMapServiceImageryProvider(options));
1580
- layer._guid = layerData.guid;
1581
- layerData.visible = true;
1624
+ layerData.visible = isAdd;
1582
1625
  layerData.serverType = "imagerylayer";
1583
- } else {
1584
- promise = this._viewer.addWMSLayerGroup(url, {
1585
- layers: layerData.id + ""
1586
- }).then(group => {
1587
- var layers = group._addedLayers || group._layers;
1588
1626
 
1589
- if (layers && layers.length > 0) {
1590
- //如果是kqserver类型,记录服务返回的图层信息
1591
- if (layerData.sourceLayers) {
1592
- var layerInfo = layerData.sourceLayers.find(item => {
1593
- return item.id + "" == layerData.id + "";
1594
- });
1627
+ if (isAdd) {
1628
+ var options = {
1629
+ url: url,
1630
+ layers: layerData.id + "",
1631
+ tilingScheme: layerData.epsg == 3857 ? new Cesium.WebMercatorTilingScheme() : new Cesium.GeographicTilingScheme(),
1632
+ rectangle: Cesium.Rectangle.fromDegrees(layerData.rect84[0], layerData.rect84[1], layerData.rect84[2], layerData.rect84[3]),
1633
+ parameters: {
1634
+ transparent: 'true',
1635
+ format: 'image/png'
1636
+ },
1637
+ ...params
1638
+ };
1639
+ if (layerData.styles) options.parameters.styles = layerData.styles;
1640
+ layer = this._viewer.imageryLayers.addImageryProvider(new Cesium.WebMapServiceImageryProvider(options));
1641
+ layer._guid = layerData.guid;
1642
+ }
1643
+ } else {
1644
+ //如果是kqserver类型,记录服务返回的图层信息
1645
+ if (layerData.sourceLayers) {
1646
+ var layerInfo = layerData.sourceLayers.find(item => {
1647
+ return item.id + "" == layerData.id + "";
1648
+ });
1595
1649
 
1596
- if (layerInfo) {
1597
- for (var key in layerInfo) {
1598
- if (!layerData[key]) {
1599
- layerData[key] = layerInfo[key];
1600
- }
1601
- }
1650
+ if (layerInfo) {
1651
+ for (var key in layerInfo) {
1652
+ if (!layerData[key]) {
1653
+ layerData[key] = layerInfo[key];
1602
1654
  }
1603
1655
  }
1604
-
1605
- layers[0]._guid = layerData.guid;
1606
- layerData.name = name || layers[0].name;
1607
- layerData.visible = true;
1608
- layerData.serverType = "imagerylayer";
1609
1656
  }
1610
- });
1657
+ }
1658
+
1659
+ layerData.visible = isAdd;
1660
+ layerData.serverType = "imagerylayer";
1661
+
1662
+ if (isAdd) {
1663
+ promise = this._viewer.addWMSLayerGroup(url, {
1664
+ layers: layerData.id + ""
1665
+ }).then(group => {
1666
+ var layers = group._addedLayers || group._layers;
1667
+
1668
+ if (layers && layers.length > 0) {
1669
+ layers[0]._guid = layerData.guid;
1670
+ }
1671
+ });
1672
+ }
1611
1673
  }
1612
1674
 
1613
1675
  break;
1614
1676
 
1615
1677
  case "wmts":
1616
1678
  case "kqgistileserver":
1617
- //配置id时只能是单个图层
1618
- promise = this._viewer.addWMTSLayerGroup(url, {
1619
- layers: layerData.id + ""
1620
- }).then(group => {
1621
- var layers = group._addedLayers || group._layers;
1622
-
1623
- if (layers && layers.length > 0) {
1624
- //如果是kqserver类型,记录服务返回的图层信息
1625
- if (layerData.sourceLayers) {
1626
- var layerInfo = layerData.sourceLayers.find(item => {
1627
- return item.id + "" == layerData.id + "";
1628
- });
1679
+ //如果是kqserver类型,记录服务返回的图层信息
1680
+ if (layerData.sourceLayers) {
1681
+ var layerInfo = layerData.sourceLayers.find(item => {
1682
+ return item.id + "" == layerData.id + "";
1683
+ });
1629
1684
 
1630
- if (layerInfo) {
1631
- for (var key in layerInfo) {
1632
- if (!layerData[key]) {
1633
- layerData[key] = layerInfo[key];
1634
- }
1635
- }
1685
+ if (layerInfo) {
1686
+ for (var key in layerInfo) {
1687
+ if (!layerData[key]) {
1688
+ layerData[key] = layerInfo[key];
1636
1689
  }
1637
1690
  }
1638
-
1639
- layers[0]._guid = layerData.guid;
1640
- layerData.name = name || layers[0].name;
1641
- layerData.visible = true;
1642
- layerData.serverType = "imagerylayer";
1643
1691
  }
1644
- });
1692
+ }
1693
+
1694
+ layerData.visible = isAdd;
1695
+ layerData.serverType = "imagerylayer"; //配置id时只能是单个图层
1696
+
1697
+ if (isAdd) {
1698
+ promise = this._viewer.addWMTSLayerGroup(url, {
1699
+ layers: layerData.id + ""
1700
+ }).then(group => {
1701
+ var layers = group._addedLayers || group._layers;
1702
+
1703
+ if (layers && layers.length > 0) {
1704
+ layers[0]._guid = layerData.guid;
1705
+ }
1706
+ });
1707
+ }
1708
+
1645
1709
  break;
1646
1710
  // case "wfs":
1647
1711
  // var wfsProvider = new Cesium.Kq3dWebFeatureServiceProvider({
@@ -1662,97 +1726,126 @@ class LayerManager {
1662
1726
  // break;
1663
1727
 
1664
1728
  case "geojson":
1665
- var ds = new Cesium.Kq3dGeoJsonDataSource(name);
1666
- var geojsonStyle = layerData.geojsonStyle || this._geojsonStyle;
1667
- promise = ds.load(url, geojsonStyle).then(ds => {
1668
- ds.entities.values.forEach(entity => {
1669
- if (entity.polygon) {
1670
- entity.polyline = {
1671
- positions: entity.polygon.hierarchy._value.positions,
1672
- width: geojsonStyle.polygon.outlineWidth,
1673
- material: geojsonStyle.polygon.outlineColor
1674
- };
1675
- }
1676
- }, this);
1729
+ layerData.visible = isAdd;
1730
+ layerData.serverType = "datasource";
1677
1731
 
1678
- this._viewer.dataSources.add(ds);
1732
+ if (isAdd) {
1733
+ var ds = new Cesium.Kq3dGeoJsonDataSource(name);
1734
+ var geojsonStyle = layerData.geojsonStyle || this._geojsonStyle;
1735
+ promise = ds.load(url, geojsonStyle).then(ds => {
1736
+ ds.entities.values.forEach(entity => {
1737
+ if (entity.polygon) {
1738
+ entity.polyline = {
1739
+ positions: entity.polygon.hierarchy._value.positions,
1740
+ width: geojsonStyle.polygon.outlineWidth,
1741
+ material: geojsonStyle.polygon.outlineColor
1742
+ };
1743
+ }
1744
+ }, this);
1745
+
1746
+ this._viewer.dataSources.add(ds);
1747
+
1748
+ ds.autoAvoid(this._viewer);
1749
+ ds._guid = layerData.guid;
1750
+ layerData.shapeType = this.getShapeType(ds);
1751
+ });
1752
+ }
1679
1753
 
1680
- ds.autoAvoid(this._viewer);
1681
- ds._guid = layerData.guid;
1682
- layerData.visible = true;
1683
- layerData.serverType = "datasource";
1684
- });
1685
1754
  break;
1686
1755
 
1687
1756
  case "kml":
1688
- var ds = new Cesium.KmlDataSource({
1689
- name: name,
1690
- camera: this._viewer.camera,
1691
- canvas: this._viewer.scene.canvas,
1692
- ...params
1693
- });
1694
- promise = ds.load(url).then(ds => {
1695
- this._viewer.dataSources.add(ds);
1757
+ layerData.visible = isAdd;
1758
+ layerData.serverType = "datasource";
1759
+
1760
+ if (isAdd) {
1761
+ var ds = new Cesium.KmlDataSource({
1762
+ name: name,
1763
+ camera: this._viewer.camera,
1764
+ canvas: this._viewer.scene.canvas,
1765
+ ...params
1766
+ });
1767
+ promise = ds.load(url).then(ds => {
1768
+ this._viewer.dataSources.add(ds);
1769
+
1770
+ ds._guid = layerData.guid;
1771
+ });
1772
+ }
1696
1773
 
1697
- ds._guid = layerData.guid;
1698
- layerData.visible = true;
1699
- layerData.serverType = "datasource";
1700
- });
1701
1774
  break;
1702
1775
 
1703
1776
  case "czml":
1704
- var ds = new Cesium.CzmlDataSource(name);
1705
- promise = ds.load(url).then(ds => {
1706
- this._viewer.dataSources.add(ds);
1777
+ layerData.visible = isAdd;
1778
+ layerData.serverType = "datasource";
1779
+
1780
+ if (isAdd) {
1781
+ var ds = new Cesium.CzmlDataSource(name);
1782
+ promise = ds.load(url).then(ds => {
1783
+ this._viewer.dataSources.add(ds);
1784
+
1785
+ ds._guid = layerData.guid;
1786
+ });
1787
+ }
1707
1788
 
1708
- ds._guid = layerData.guid;
1709
- layerData.visible = true;
1710
- layerData.serverType = "datasource";
1711
- });
1712
1789
  break;
1713
1790
 
1714
1791
  case "tianditu":
1715
- layer = this._viewer.imageryLayers.addImageryProvider(new Cesium.Kq3dTiandituImageryProvider({
1716
- name: name,
1717
- mapStyle: layerData.layerType + "_c",
1718
- ...params
1719
- }));
1720
- layer._guid = layerData.guid;
1721
- layerData.visible = true;
1792
+ layerData.visible = isAdd;
1722
1793
  layerData.serverType = "imagerylayer";
1794
+
1795
+ if (isAdd) {
1796
+ layer = this._viewer.imageryLayers.addImageryProvider(new Cesium.Kq3dTiandituImageryProvider({
1797
+ name: name,
1798
+ mapStyle: layerData.layerType + "_c",
1799
+ ...params
1800
+ }));
1801
+ layer._guid = layerData.guid;
1802
+ }
1803
+
1723
1804
  break;
1724
1805
 
1725
1806
  case "baidu":
1726
- layer = this._viewer.imageryLayers.addImageryProvider(new Cesium.Kq3dBaiduMapsImageryProvider({
1727
- name: name,
1728
- mapStyle: layerData.layerType,
1729
- ...params
1730
- }));
1731
- layer._guid = layerData.guid;
1732
- layerData.visible = true;
1807
+ layerData.visible = isAdd;
1733
1808
  layerData.serverType = "imagerylayer";
1809
+
1810
+ if (isAdd) {
1811
+ layer = this._viewer.imageryLayers.addImageryProvider(new Cesium.Kq3dBaiduMapsImageryProvider({
1812
+ name: name,
1813
+ mapStyle: layerData.layerType,
1814
+ ...params
1815
+ }));
1816
+ layer._guid = layerData.guid;
1817
+ }
1818
+
1734
1819
  break;
1735
1820
 
1736
1821
  case "gaode":
1737
- layer = this._viewer.imageryLayers.addImageryProvider(new Cesium.Kq3dAMapsImageryProvider({
1738
- name: name,
1739
- mapStyle: layerData.layerType,
1740
- ...params
1741
- }));
1742
- layer._guid = layerData.guid;
1743
- layerData.visible = true;
1822
+ layerData.visible = isAdd;
1744
1823
  layerData.serverType = "imagerylayer";
1824
+
1825
+ if (isAdd) {
1826
+ layer = this._viewer.imageryLayers.addImageryProvider(new Cesium.Kq3dAMapsImageryProvider({
1827
+ name: name,
1828
+ mapStyle: layerData.layerType,
1829
+ ...params
1830
+ }));
1831
+ layer._guid = layerData.guid;
1832
+ }
1833
+
1745
1834
  break;
1746
1835
 
1747
1836
  case "tencent":
1748
- layer = this._viewer.imageryLayers.addImageryProvider(new Cesium.Kq3dQQMapsImageryProvider({
1749
- name: name,
1750
- mapStyle: layerData.layerType,
1751
- ...params
1752
- }));
1753
- layer._guid = layerData.guid;
1754
- layerData.visible = true;
1837
+ layerData.visible = isAdd;
1755
1838
  layerData.serverType = "imagerylayer";
1839
+
1840
+ if (isAdd) {
1841
+ layer = this._viewer.imageryLayers.addImageryProvider(new Cesium.Kq3dQQMapsImageryProvider({
1842
+ name: name,
1843
+ mapStyle: layerData.layerType,
1844
+ ...params
1845
+ }));
1846
+ layer._guid = layerData.guid;
1847
+ }
1848
+
1756
1849
  break;
1757
1850
 
1758
1851
  default:
@@ -1760,6 +1853,25 @@ class LayerManager {
1760
1853
  }
1761
1854
 
1762
1855
  return promise;
1856
+ } // 获取geojson数据类型
1857
+
1858
+
1859
+ getShapeType(ds) {
1860
+ let shapeType = "";
1861
+
1862
+ if (ds.entities.values.length > 0) {
1863
+ let entity = ds.entities.values[0];
1864
+
1865
+ if (entity.polygon) {
1866
+ shapeType = 'polygon';
1867
+ } else if (entity.polyline) {
1868
+ shapeType = 'polyline';
1869
+ } else if (entity.billboard || entity.point) {
1870
+ shapeType = 'point';
1871
+ }
1872
+ }
1873
+
1874
+ return shapeType;
1763
1875
  } //添加服务数据
1764
1876
 
1765
1877
 
@@ -21749,7 +21861,8 @@ class AddDataViewModel {
21749
21861
  serverType: "datasource",
21750
21862
  lsType: "ls",
21751
21863
  url: res,
21752
- addType: "geojson"
21864
+ addType: "geojson",
21865
+ shapeType: that._layerManager.getShapeType(ds)
21753
21866
  };
21754
21867
 
21755
21868
  that._layerManager.addTempLayerNode(layer);
@@ -21791,7 +21904,8 @@ class AddDataViewModel {
21791
21904
  serverType: "datasource",
21792
21905
  lsType: "ls",
21793
21906
  url: res,
21794
- addType: "geojson"
21907
+ addType: "geojson",
21908
+ shapeType: that._layerManager.getShapeType(ds)
21795
21909
  };
21796
21910
 
21797
21911
  that._layerManager.addTempLayerNode(layer);
@@ -21854,7 +21968,8 @@ class AddDataViewModel {
21854
21968
  serverType: "datasource",
21855
21969
  lsType: "ls",
21856
21970
  url: ret,
21857
- addType: "geojson"
21971
+ addType: "geojson",
21972
+ shapeType: that._layerManager.getShapeType(ds)
21858
21973
  };
21859
21974
 
21860
21975
  that._layerManager.addTempLayerNode(layer);
@@ -22246,7 +22361,9 @@ class AddDataViewModel {
22246
22361
  lsType: "ls",
22247
22362
  url: url,
22248
22363
  addType: type,
22249
- layerName: name
22364
+ layerName: name,
22365
+ type: "Image" // 图层树显示图标使用
22366
+
22250
22367
  };
22251
22368
 
22252
22369
  this._layerManager.addTempLayerNode(node);
@@ -22353,7 +22470,9 @@ class AddDataViewModel {
22353
22470
  serverType: "imagerylayer",
22354
22471
  lsType: "ls",
22355
22472
  url: url,
22356
- addType: type
22473
+ addType: type,
22474
+ renderType: "vectortile" // 图层树显示图标使用
22475
+
22357
22476
  };
22358
22477
 
22359
22478
  this._layerManager.addTempLayerNode(node);
@@ -22367,7 +22486,9 @@ class AddDataViewModel {
22367
22486
  guid: group.guid,
22368
22487
  name: name || "wms",
22369
22488
  children: [],
22370
- lsType: "ls"
22489
+ lsType: "ls",
22490
+ serverType: 'ogcwms' //图层树显示图标使用
22491
+
22371
22492
  };
22372
22493
  var layers = group._addedLayers || group._layers;
22373
22494
 
@@ -22399,12 +22520,20 @@ class AddDataViewModel {
22399
22520
  case "wmts":
22400
22521
  case "kqgistileserver":
22401
22522
  this._viewer.addWMTSLayerGroup(url).then(group => {
22523
+ var defaultName = 'wmts';
22524
+ if (type === "kqgistileserver") defaultName = 'tile';
22402
22525
  node = {
22403
22526
  guid: group.guid,
22404
- name: name || "wmts",
22527
+ name: name || defaultName,
22405
22528
  children: [],
22406
22529
  lsType: "ls"
22407
22530
  };
22531
+
22532
+ if (type === "wmts") {
22533
+ //图层树显示图标使用
22534
+ node.serverType = "ogcwmts";
22535
+ }
22536
+
22408
22537
  var layers = group._addedLayers || group._layers;
22409
22538
 
22410
22539
  if (layers) {
@@ -22490,7 +22619,8 @@ class AddDataViewModel {
22490
22619
  serverType: "datasource",
22491
22620
  lsType: "ls",
22492
22621
  url: url,
22493
- addType: type
22622
+ addType: type,
22623
+ shapeType: this._layerManager.getShapeType(ds)
22494
22624
  };
22495
22625
 
22496
22626
  this._layerManager.addTempLayerNode(node);