cesium通过浏览文件添加kmz数据

来源:互联网 发布:志鸿优化系列丛书2017 编辑:程序博客网 时间:2024/06/07 05:34

在cesium中可以调用 Cesium.KmlDataSource.load(url,options)来添加kml和kmz数据,其中url为数据文件的路径,options为camera和canvas对象。
当通过浏览文件的方式添加本地文件时,使用FileReader对象来异步读取该文件内容。其中添加kml文件, 可以用readAsText的方式读取,不过读取时需要用$.parseXML(str)解析一下,也可以用readAsDataURL方式读取;但是读取kmz数据,目前只知道以readAsDataURL的方式读取是没问题的,具体代码如下:

browser(function(file){             readText(file,function(str){        var options = {            camera : Demo.map.scene.camera,            canvas : Demo.map.scene.canvas        }        Demo.map.dataSources.add(Cesium.KmlDataSource.load(str,options));    }); }); function readText(file,onComplete){    var reader = new FileReader();    reader.onload = function()    {        onComplete(reader.result);    }    reader.readAsDataURL(file);}function browser(onComplete){    var input = $("<input type='file'>");    input.trigger('click');    input.change(function(e){        var file = input.get(0).files[0];        onComplete(file);    });}

本文参考了天马3798的HTML5 FileReader读取Blob对象API详解,网址为http://www.cnblogs.com/tianma3798/p/5836484.html

原创粉丝点击