【发布时间】:2021-08-09 18:02:41
【问题描述】:
基本上,我一直在尝试让图像显示在 KMZ 文件的属性下。我当前的设置创建了一个具有以下结构的解压缩目录:
主文件夹/ 文档.kml 文件/ img1.jpeg img2.jpeg img3.jpeg ... 然后我使用以下代码将所有内容压缩到 KMZ 中
void zipFile(File directory, File file, ZipOutputStream zip) {
if (!file.isDirectory()){
def input = new FileInputStream(file)
String name = file.getPath()
name = name.replace(kmzDir.path+"\\", "")
zip.putNextEntry(new ZipEntry(name))
IOUtils.copy(input, zip)
zip.closeEntry()
}
}
void zipKMZDirectory() {
BufferedOutputStream fileWriter = new BufferedOutputStream(new FileOutputStream(new File(kmzDir.path + ".kmz")))
ZipOutputStream zip = new ZipOutputStream(fileWriter)
resourceDir.listFiles().each { file ->
zipFile(resourceDir, file, zip)
}
kmzDir.listFiles().each { file ->
zipFile(kmzDir, file, zip)
}
zip.close()
fileWriter.close()
}
在 KMZ 之外打开 doc.kml 文件效果很好(在 google earth 中加载图像),但打开 KMZ 文件并尝试查看任何图像只会显示一个蓝色问号代替图像。
当它尝试加载图像(右键单击 -> 检查 -> 网络)时,我尝试查看网络数据,它说它成功地在主文件夹/文件/image.jpeg 下找到了图像。此外,我尝试删除存储在 kmz 存档中的所有图像,然后通过 7zip 手动将所有图像添加回 zip 中,确实显示图像。这告诉我在 zip 压缩阶段(?)出现了问题,不允许谷歌打开图像(尽管我只是尝试自己查看图像并且它们没有损坏或任何东西)。
编辑:我在桌面上使用 Google 地球专业版
【问题讨论】:
标签: java groovy kml google-earth kmz