获取上传文件的本地路径
在Cesium上显示要导入的航线区域,要导入的格式是.kml,用到Cesium中的Cesium.KmlDataSource.load()方法,
方法参数如下:
方法1:使用url
在参数data中需要传入 url ,目前在项目中使用的是el-upload,获取不到上传文件的本地路径。后期找到方法使用FileReader 来读取,方法返回的是一个DataURL,在fileChange方法里面写:
let reader = new FileReader()
reader.readAsDataURL(file.raw);
// 转换成功后的操作,reader.result即为转换后的DataURL
reader.οnlοad=()=>{ console.log(reader.result) }
方法2:使用blob
let URL = window.URL || window.webkitURL;
let blob = URL.createObjectURL(file.raw);
上传后,获取kml中数据:
let viewer = new Cesium.Viewer('cesiumContainer');
let options = {
camera : viewer.scene.camera,
canvas : viewer.scene.canvas
};
viewer.dataSources.add(Cesium.KmlDataSource.load(blob, options)).then(function (dataSource) {
let rider = dataSource.entities.values[0];
thisObj.viewer.flyTo(rider);
});