| | |
| | | <div>{{ $t(item.label) }}</div> |
| | | </div> |
| | | <mapinfo ref="mapinfo" /> |
| | | <input type="file" accept=".kml" class="file" style="display: none" /> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | this.setMeasurement(res.id); |
| | | break; |
| | | case 'h': |
| | | sgworld.Creator.SimpleGraphic.edit(true, { editProp: true }); |
| | | this.setPlot(res.id); |
| | | break; |
| | | } |
| | |
| | | function (entity) {} |
| | | ); |
| | | break; |
| | | case 'h5': |
| | | this.handleOpenClick(); |
| | | break; |
| | | case 'h6': |
| | | this.handleSaveClick(); |
| | | break; |
| | | case 'h7': |
| | | sgworld.Creator.SimpleGraphic.clear(); |
| | | break; |
| | | } |
| | | }, |
| | | handleSaveClick() { |
| | | let funDownload = function (content, filename) { |
| | | let eleLink = document.createElement('a'); |
| | | eleLink.download = filename; |
| | | eleLink.style.display = 'none'; |
| | | // 字符内容转变成blob地址 |
| | | let blob = new Blob([content]); |
| | | eleLink.href = URL.createObjectURL(blob); |
| | | // 触发点击 |
| | | document.body.appendChild(eleLink); |
| | | eleLink.click(); |
| | | // 然后移除 |
| | | document.body.removeChild(eleLink); |
| | | }; |
| | | let entities = new Cesium.EntityCollection(); |
| | | let dataSources = sgworld.Viewer.dataSources; |
| | | for (let i = 0, j = dataSources.length; i < j; i++) { |
| | | for (let v of dataSources.get(i).entities.values) { |
| | | entities.add(v); |
| | | } |
| | | } |
| | | for (let v of sgworld.Viewer.entities.values) { |
| | | entities.add(v); |
| | | } |
| | | |
| | | if (entities.values.length) { |
| | | console.log(sgworld.Viewer.entities); |
| | | |
| | | let promise = Cesium.exportKml({ entities: sgworld.Viewer.entities }); |
| | | console.log(entities); |
| | | // let promise = Cesium.exportKml({ entities: entities }); |
| | | promise.then(function (e) { |
| | | funDownload(e.kml, new Date().getTime() + '.kml'); |
| | | }); |
| | | } else { |
| | | alert('当前场景没有entities实体'); |
| | | } |
| | | }, |
| | | handleOpenClick() { |
| | | // let that = this; |
| | | let fileInput = document.querySelector('.file'); |
| | | fileInput.onchange = function (evt) { |
| | | let files = evt.target.files; |
| | | if (files.length > 0) { |
| | | let file = evt.target.files[0]; |
| | | |
| | | let fileReader = new FileReader(); |
| | | fileReader.readAsDataURL(file); |
| | | fileReader.onload = () => { |
| | | sgworld.Viewer.dataSources |
| | | .add( |
| | | Cesium.KmlDataSource.load(fileReader.result, { |
| | | camera: sgworld.Viewer.scene.camera, |
| | | canvas: sgworld.Viewer.scene.canvas, |
| | | }) |
| | | ) |
| | | .then((KmlDataSource) => { |
| | | console.log(KmlDataSource); |
| | | // let entities = kmlDataSource.entities; |
| | | }); |
| | | }; |
| | | } |
| | | // fileInput.value = null; |
| | | }; |
| | | fileInput.click(); |
| | | }, |
| | | setMeasurement(res) { |
| | | switch (res) { |
| | |
| | | this.addterrainSectionAnalysis(); |
| | | } |
| | | break; |
| | | |
| | | case 'd5': |
| | | if (window.AnalysisFlood) { |
| | | this.clear(res.id); |
| | | this.clear(res); |
| | | } else { |
| | | this.addAnalysisFlood(); |
| | | } |
| | |
| | | } |
| | | ); |
| | | break; |
| | | case 'd10': |
| | | if (window.TerrainFlattening) { |
| | | window.TerrainFlattening.remove(); |
| | | window.TerrainFlattening = null; |
| | | } else { |
| | | sgworld.Creator.createSimpleGraphic( |
| | | 'polygon', |
| | | { |
| | | clampToGround: true, |
| | | }, |
| | | function (entity) { |
| | | var positions = entity.polygon.hierarchy.getValue().positions; |
| | | sgworld.Creator.SimpleGraphic.remove(entity.id); |
| | | window.TerrainFlattening = |
| | | sgworld.Creator.createTerrainModifier( |
| | | '地形压平', |
| | | positions, |
| | | 10, |
| | | {} |
| | | ); |
| | | } |
| | | ); |
| | | } |
| | | break; |
| | | case 'd11': |
| | | if (window.Excavation) { |
| | | window.Excavation.clear(); |
| | | window.Excavation = null; |
| | | } else { |
| | | window.Excavation = sgworld.Analysis.TerrainExcavation( |
| | | 10, |
| | | {}, |
| | | function () {} |
| | | ); |
| | | } |
| | | break; |
| | | } |
| | | }, |
| | | clear(res) { |
| | |
| | | } |
| | | break; |
| | | case 'd5': |
| | | window.AnalysisFlood && window.AnalysisFlood.endWater(); |
| | | window.AnalysisFlood.endWater(); |
| | | window.AnalysisFlood = undefined; |
| | | |
| | | break; |
| | | } |
| | | }, |
| | |
| | | skin: 'other-class', |
| | | content: '/SmartEarthSDK/Workers/analysis/AnalysisDXPM.html', |
| | | end: () => { |
| | | this.dxpmIndex && this.clear('4'); |
| | | this.dxpmIndex && this.clear('d4'); |
| | | }, |
| | | }); |
| | | } else { |