【发布时间】:2014-06-16 12:00:36
【问题描述】:
正在编写JavaScript 用于从本地文件夹添加 kmz、kml 和 csv 文件的代码。所有文件都将在 esri 地图上显示/添加。我可以添加 kml 和 csv,但不能添加 kmz。我不想要将完整的压缩/解压缩代码或库包含到我的代码中。我不需要全部。只需要一个小代码即可将 kmz 转换为 kml。
另外,我不想在任何本地文件夹中存储任何解压缩或转换后的文件(将是 kml)。
只想读取内容并将其即时传递给我的 add_kml() 函数。 只想从 kmz 文件中提取内容,该文件将是 kml。 随处可用的代码是将提取的文件存储在某个文件夹中。我不想要那个。
函数 unZipAndProcessKMZ(blob)
{
zip.createReader(新 zip.BlobReader(blob),
功能(读者)
{// 从 zip 中获取所有条目
reader.getEntries(函数(条目)
{ parseTransformKMZ(条目);}
);
},
function(error) {/* onerror 回调 */ }
);
}
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();
});
【问题讨论】:
-
我正在努力解压缩内容的代码。因为我在这里得到的唯一解决方案是将其解压缩到 kml。但是在解压缩内容后,kml 文件被添加到我的本地文件夹中。我没有想要。
-
我也尝试使用php代码解压缩kmz文件。与js代码相比,代码非常小。但需要使用js。再次将php代码文件保存在本地文件夹中。跨度>
标签: javascript kml kmz