var source = [] const mapGeo = { init(res) { switch (res.type) { case "WangGe": this.addWangGeGeoJson(res); break; case "ZhuangHao": this.addZhuangHaoGeoJson(res) break; case "PingQuXian": this.addPingQuXianGeoJson(res) break; case "ZhongQuXian": this.addZhongQuXianGeoJson(res) break; case "zhaiHai": this.addzhaiHaiGeoJson(res) break; } }, delGeoSource(res) { if (res.type == "zhaiHai") { Viewer.dataSources.remove(Viewer.dataSources.getByName("zhaiHai2")[0]) Viewer.dataSources.remove(Viewer.dataSources.getByName("zhaiHai1")[0]) Viewer.dataSources.remove(Viewer.dataSources.getByName("zhaiHai3")[0]) } else { Viewer.dataSources.remove(Viewer.dataSources.getByName(res.type)[0]) } }, addzhaiHaiGeoJson(res) { var url1 = layerData.config.Model_URL + res.urls[0]; var url2 = layerData.config.Model_URL + res.urls[1]; var url3 = layerData.config.Model_URL + res.urls[2]; var color = Cesium.Color.fromCssColorString("rgb(255,0,255)") var data1 = Cesium.GeoJsonDataSource.load(url1, //要加载的 url、GeoJSON 对象或 TopoJSON 对象。 { stroke: color, //折线和多边形轮廓的默认颜色。 fill: Cesium.Color.WHITE.withAlpha(0.2), //多边形内部的默认颜色。 strokeWidth: 3, //折线和多边形轮廓的默认宽度。 } ) data1.then((dataSource) => { dataSource.name = "zhaiHai1" Viewer.dataSources.add( dataSource ); }) var data2 = Cesium.GeoJsonDataSource.load(url2, //要加载的 url、GeoJSON 对象或 TopoJSON 对象。 { stroke: color, //折线和多边形轮廓的默认颜色。 fill: Cesium.Color.WHITE.withAlpha(0.2), //多边形内部的默认颜色。 strokeWidth: 3, //折线和多边形轮廓的默认宽度。 } ) data2.then((dataSource) => { dataSource.name = "zhaiHai2" Viewer.dataSources.add( dataSource ); }) var data3 = Cesium.GeoJsonDataSource.load(url3, //要加载的 url、GeoJSON 对象或 TopoJSON 对象。 { stroke: color, //折线和多边形轮廓的默认颜色。 fill: Cesium.Color.WHITE.withAlpha(0.2), //多边形内部的默认颜色。 strokeWidth: 3, //折线和多边形轮廓的默认宽度。 } ) data3.then((dataSource) => { dataSource.name = "zhaiHai3" Viewer.dataSources.add( dataSource ); }) }, addZhongQuXianGeoJson(res) { var url = layerData.config.Model_URL + res.urls; var data = Cesium.GeoJsonDataSource.load(url, //要加载的 url、GeoJSON 对象或 TopoJSON 对象。 { stroke: Cesium.Color.ORANGE, //折线和多边形轮廓的默认颜色。 fill: Cesium.Color.WHITE.withAlpha(0.2), //多边形内部的默认颜色。 strokeWidth: 3, //折线和多边形轮廓的默认宽度。 } ) data.then((dataSource) => { dataSource.name = res.type Viewer.dataSources.add( dataSource ); }) }, addPingQuXianGeoJson(res) { var url = layerData.config.Model_URL + res.urls; var data = Cesium.GeoJsonDataSource.load(url, //要加载的 url、GeoJSON 对象或 TopoJSON 对象。 { stroke: Cesium.Color.SKYBLUE, //折线和多边形轮廓的默认颜色。 fill: Cesium.Color.WHITE.withAlpha(0.2), //多边形内部的默认颜色。 strokeWidth: 3, //折线和多边形轮廓的默认宽度。 } ) data.then((dataSource) => { dataSource.name = res.type Viewer.dataSources.add( dataSource ); }) }, addWangGeGeoJson(res) { var url = layerData.config.Model_URL + res.urls; var data = Cesium.GeoJsonDataSource.load(url, //要加载的 url、GeoJSON 对象或 TopoJSON 对象。 { stroke: Cesium.Color.RED, //折线和多边形轮廓的默认颜色。 fill: Cesium.Color.WHITE.withAlpha(0.2), //多边形内部的默认颜色。 strokeWidth: 3, //折线和多边形轮廓的默认宽度。 } ) data.then((dataSource) => { dataSource.name = res.type Viewer.dataSources.add( dataSource ); }) }, addZhuangHaoGeoJson(res) { var url = layerData.config.Model_URL + res.urls; var img = layerData.config.Model_URL + '/Data/img/img1.png'; var source1 = Cesium.GeoJsonDataSource.load(url) source1.then((dataSource) => { dataSource.name = res.type Viewer.dataSources.add( dataSource ); const entities = dataSource.entities.values; // 设置聚合参数 dataSource.clustering.enabled = true; dataSource.clustering.pixelRange = 20; dataSource.clustering.minimumClusterSize = 2; for (var i = 0; i < entities.length; i++) { const entity = entities[i]; entity.billboard = { image: img, color: Cesium.Color.AQUA, width: 32, height: 32, pixelOffset: new Cesium.Cartesian3(0, -40, 0), }; entity.label = { text: entity.name, font: '14px', pixelOffset: new Cesium.Cartesian3(0, -80, 0), fillColor: Cesium.Color.BLIUE, }; } // 添加监听函数 dataSource.clustering.clusterEvent.addEventListener( function (clusteredEntities, cluster) { // 关闭自带的显示聚合数量的标签 cluster.label.show = false; cluster.billboard.show = false; cluster.billboard.verticalOrigin = Cesium.VerticalOrigin.BOTTOM; } ) }) }, } export default mapGeo;