如何使用javascript将KMZ文件转换为KML? [英] How to convert KMZ file to KML using javascript?

查看:998
本文介绍了如何使用javascript将KMZ文件转换为KML?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

正在编写 JavaScript 代码,用于从本地文件夹添加kmz,kml和csv文件。所有文件都将显示/添加到esri Maps.I我能够添加kml和csv,但不是kmz。我不想在我的代码中包含完整的zip / unzip代码或库。我不需要全部。只需要一个小代码将kmz转换为kml。

In am writing JavaScript code for adding kmz,kml and csv file from local folder.All the files will be displayed/added on esri Maps.I am able to add kml and csv, but not kmz.I dont want to include full zip/unzip code or library into my code.I dont need that all.Only need a small code for converting kmz to kml.

此外,我不想在任何本地文件夹中存储任何解压缩或转换的文件(将是kml)。

Also I don't want to store any unzipped or converted file(which will be kml) in any local folder.

只想阅读内容并动态传递给我的add_kml()函数。
只想从kmz文件中提取内容,这将是kml。
到处可用的代码是将提取的文件存储在某个文件夹中。我不想这样。

Just want to read the contents and pass it to my add_kml() function on the fly. Only want to extract the contents from kmz file which will be kml. The code available everywhere is to store the extracted file in some folder.I dont want that.

function unZipAndProcessKMZ(blob)
{

zip.createReader(new zip.BlobReader(blob),

function(reader)
{//从zip
reader.getEntries获取所有条目(函数) (条目)
{parseTransformKMZ(条目);}
);
},
函数(错误){/ * onerror回调* /}
);
}

function unZipAndProcessKMZ(blob) {
zip.createReader(new zip.BlobReader(blob),
function(reader) {// get all entries from the zip reader.getEntries( function(entries) { parseTransformKMZ(entries);} ); }, function(error) {/* onerror callback */ } ); }

    function parseTransformKMZ(entries) 
    {
        //Step 1: find doc.kml
        var docKMLentry = findFileByName(entries, '.kml', false);
        console.log('in Parse file: ', docKMLentry.filename);       
        docKMLentry.getData(    new zip.BlobWriter('text/xml'),
        function(kmlText) 
        {

    var fileReader = new FileReader();

                                       fileReader.addEventListener("loadend",  function() 
{                                                docKML = fileReader.result;

if (typeof docKML == 'string') {
docKML = ( new window.DOMParser() ).parseFromString(docKML, "text/xml");
                       }   
    var geojson = toGeoJSON[extension](docKML);                    
            //send data to esri converter
                  feats = geojson.features;
                 if (!feats || (feats.length === 0)) {
                 alert("No features found");
                 return;
        }     convertTo_esri();                                     

});

推荐答案

得到了解决方案on-
只是将作为输入文件的blob对象传递给zip.js中的zip.blobReader函数

Got the solution- simply passed blob object taken as input file to the zip.blobReader function in zip.js

这篇关于如何使用javascript将KMZ文件转换为KML?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆