KMZ文件的良好/验证标准是什么?

时间:2017-05-14 12:16:24

标签: kml kmz jts

我有一个KMZ文件,其中包含一个KML文件,该文件又包含一个KMZ文件。我正在使用JTS来处理这个用java。当前的kml / kmz解析器功能与上述用例相同。

有人可以对此有所了解吗?

2 个答案:

答案 0 :(得分:0)

KMZ文件是一个zip存档,并且在其根级别应该只包含一个KML文件(通常命名为" doc.kml")。如果它包含多个KML文件,那么Earth(或另一个KML渲染器)将从KMZ中选择一个KML文件并渲染该文件,并忽略其他文件。

理论上你可以在zip中的子文件夹中有更多的KML文件,并通过主KML中的NetworkLinks引用它们,但我从未尝试过确认它是否有效。

由于KMZ文件是zip存档,而KML文件是XML文档,因此除非通过类似NetworkLink的引用,否则无法在KML中包含另一个KMZ文件。

以下是有关KMZ文件的KML文档: https://developers.google.com/kml/documentation/kmzarchives

答案 1 :(得分:0)

Google地球支持嵌套的KMZ文件(即KMZ文件中的KMZ文件条目),这很可能在JTS中不受支持。

KMZ文件"包含在" KMZ文件可以通过两种方式构建:

  1. 从另一个KMZ文件中引用的KMZ文件 KMZ文件test1.kmz包含一个带有NetworkLink的doc.kml,引用test2.kmz这是一个单独的文件。文件test2.kmz位于相同的"文件夹"作为test1.kmz。或者,test2.kmz可以在另一个Web服务器上,test1.kmz使用绝对URL test2.kmz。

  2. KMZ文件中的KMZ文件 - Google地球不支持
    KMZ文件包含两个条目:doc.kml + test2.kmz 和doc.kml有一个NetworkLink,参考" test2.kmz"

  3. 对于选项#2,建议将嵌套的KMZ文件移动到与外部KMZ文件相同的文件位置,或者解压缩嵌套的KMZ文件的内容并将它们直接添加到父KMZ文件。您可能需要为每个嵌套的KMZ文件创建一个文件夹,并更改引用它的NetworkLink中的URL引用。

    实际上,另一个KMZ文件(选项#1)中引用的外部KMZ文件并不常见,因为KMZ的推荐做法是拥有一个独立的KML场景,包括所有图标,图像,叠加层,子KML文件通过这种方式,KMZ文件是独立的,可以通过电子邮件发送,甚至可以在离线KML查看器中显示。

相关问题