在编写JavaScript
用于从本地文件夹添加 kmz、kml 和 csv 文件的代码。所有文件都将在 esri Maps 上显示/添加。我可以添加 kml 和 csv,但不能添加 kmz。我不想包含完整的 zip/解压缩代码或库到我的代码中。我不需要全部。只需要一个小代码来将 kmz 转换为 kml。
此外,我不想将任何解压缩或转换后的文件(将是 kml)存储在任何本地文件夹中。
只想阅读内容并将其传递给我的 add_kml() 函数。只想从 kmz 文件中提取内容,该文件将是 kml。随处可用的代码是将提取的文件存储在某个文件夹中。我不想要那个。
function unZipAndProcessKMZ(blob) {
zip.createReader(new zip.BlobReader(blob),
function(reader) {// 从 zip reader.getEntries(function(entries) { parseTransformKMZ(entries);} ); } 中获取所有条目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();
});