import axios from "axios"; import mapConfig from "./mapConfig"; import mapServer from "./mapServer"; import modelLayer from "./modelLayer"; import wfsConfig from "./wfsConfig"; import mapInfo from "./mapInfo"; import layerJson from "./mapJsonLayer"; import * as turf from "@turf/turf"; import mapModel from "./mapModel"; const mapViewer = { configTooles: null, layer: null, initMap() { window.earthCtrl = new SmartEarth.EarthCtrl("sdkContainer", { // 隐藏默认底图 defaultImagery: false, // 隐藏logo printLog: false // maxViewHeight: 1200000 // sceneMode: SmartEarth.Cesium.SceneMode.SCENE2D }); window.Cesium = SmartEarth.Cesium; window.Viewer = earthCtrl.viewer; Viewer.scene.globe.baseColor = Cesium.Color.fromCssColorString("#A9A9A9"); //设置地球颜色 var handler = new Cesium.ScreenSpaceEventHandler(Viewer.scene.canvas); handler.setInputAction(function (clickEvent) { var pickedObject = Viewer.scene.pick(clickEvent.position); if (Cesium.defined(pickedObject)) { // 这里可以获取到点击的实体或其他对象 var featureId = pickedObject.getProperty("id"); console.log(featureId); // pickedObject.color = Cesium.Color.RED; console.log("点击的对象:", pickedObject); } }, Cesium.ScreenSpaceEventType.LEFT_CLICK); // earthCtrl.factory.createTerrainLayer({ // sourceType: "ctb", // url: "https://tiles1.geovisearth.com/base/v1/terrain?token=486dac3bec56d7d7c2a581c150be2bd937462f1e8f3bc9c78b5658b396122405" // }); this.addImageLayer(); // this.addqqmap(); let now2 = new Date(); let todayNoon = new Date( now2.getFullYear(), now2.getMonth(), now2.getDate(), 12, 0, 0 ); var res = { longitude: 121.5898036178841, latitude: 23.93799083591751, height: 2732.163687177577 }; Viewer.clock.currentTime = Cesium.JulianDate.fromDate(todayNoon); earthCtrl.camera.flyTo( res.longitude, res.latitude, res.height, 4.501790216143808, -32.230361363631324, 0.001313831409284339, 2 ); // setTimeout(() => { // mapModel.init(); // }, 5000); // mapServer.addServer({ // sourceType: "Tileset", // url: "http://103.135.160.14:9038/gisserver/c3dserver/JiashanBase/tileset.json", // id: "c8f3f75d-8730-44ec-81b7-f8ae4c5fd742" // }); // this.addGlBModel({ // url: "http://localhost/pwyth/modles/通讯设施.glb", // // url: "http://localhost/pwyth/glb/BDZ.glb", // lon: 121.614202387521061, // lat: 23.990136825668284, // alt: 100 // }); // this.addTetrahedron({ // lon: 121.614202387521061, // lat: 23.990136825668284, // alt: 150 // }) // this.addTetrahedron({ // lon: 121.58663347489937, // lat: 24.024697711615325, // alt: 100 // }) // Viewer.scene.postRender.addEventListener(() => { // var cameraHeight = Viewer.camera.positionCartographic.height; // if (cameraHeight / 1000 < 5) { // if (this.layer) { // this.layer.show = false; // } // } else { // if (this.layer) { // this.layer.show = true; // } else { // this.addqqmap(); // } // } // }); // mapInfo.setEntityQueryInput(); }, addTetrahedron(res) { earthCtrl.factory.addTetrahedron({ position: { lon: res.lon, lat: res.lat, height: res.alt }, multiple: 0.05, scale: new SmartEarth.Cesium.Cartesian3(100, 100, 100), color: "#FF0000", outlineColor: "#FF0000" }); }, addGlBModel(res) { var style = { longitude: res.lon, latitude: res.lat, altitude: 100, heading: 0, pitch: 0, roll: 0 }; const modelMatrix = mapConfig.getModelMatrix(style); const modelLayer = new Cesium.PrimitiveCollection(); Viewer.scene.primitives.add(modelLayer); modelLayer.add( Cesium.Model.fromGltf({ id: res, url: res.url, scale: 1, minimumPixelSize: 20, maximumScale: 20, modelMatrix: modelMatrix }) ); }, createPolygonGeoJsonFeatureLayer() { const obj = mapConfig.setCartesian3To84( -3053189.741118935, 4965028.148318093, 2581134.003585035 ); var buffered = turf.circle(obj, 140, { units: "kilometers", steps: 200, properties: { foo: "bar" } }); const data = { outline: true, outlineColor: "#0f0", outlineWidth: 5, material: "#0000ff80", mask: true }; const geom = { type: "FeatureCollection", features: [ { type: "Feature", properties: { adcode: 340100, name: "合肥市", center: [117.283042, 31.86119], centroid: [117.360447, 31.762594], childrenNum: 9, level: "city", acroutes: [100000, 340000], parent: { adcode: 340000 } }, geometry: { type: "MultiPolygon", coordinates: buffered.geometry.coordinates } } ] }; const url = config.localUrl + "/data/hefei.json"; earthCtrl.factory.createPolygonGeoJsonFeatureLayer( "", [url], data, "0", true, function (data) { console.log("456", data); } ); }, addImageLayer() { mapServer.addServer({ sourceType: "arcgis", url: "https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer" }); }, addqqmap() { this.layer = earthCtrl.factory.createImageryLayer({ sourceType: "qqmap", url: "https://rt0.map.gtimg.com/tile?z={z}&x={x}&y={reverseY}&styleid=4&scene=0", tilingScheme: earthCtrl.core.getOffsetTilingScheme() // 偏移纠正 }); } }; export default mapViewer;