【问题标题】:Why is my NetworkLink not working inside a nested KMZ?为什么我的 NetworkLink 在嵌套的 KMZ 中不起作用?
【发布时间】:2015-08-12 04:15:23
【问题描述】:

我的问题是我希望将一个 kmz 文件 (nest1.kmz) 嵌套在另一个 kmz 文件 (root.kmz) 中,并引用另一个嵌套的 .kml 文件 (nest2.kml)。

当我尝试实现这一点时,不会加载引用 kml 文件的网络链接。

Nesting KMZ files 的最佳答案看起来应该是可能的,所以我在这里做错了吗?

root.kmz    >root.kml
            >[nest1]    >
                        >nest1.kmz  >
                                    >nest1.kml
                                    >[nest2]    >
                                                >nest2.kml

3个文件的代码如下:

root.kml

<?xml version="1.0" encoding="utf-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
    <Document>
        <name>root.kmz</name>
        <NetworkLink>
            <name>nest1.kmz</name>
            <Link>
                <href>nest1/nest1.kmz</href>
            </Link>
        </NetworkLink>
    </Document>
</kml>

nest1.kml

<?xml version="1.0" encoding="utf-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
    <Document>
        <name>nest1.kmz</name>
        <NetworkLink>
            <name>nest2.kml</name>
            <Link>
                <href>nest2/nest2.kml</href>
            </Link>
        </NetworkLink>
            <Placemark>
                <Point>
                    <coordinates>175.589370309749,-39.5968230904137,0</coordinates>
                </Point>
            </Placemark>
    </Document>
</kml>

nest2.kml

<?xml version="1.0" encoding="utf-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
  <Document>
        <name>nest2.kml</name>
        <Placemark>
            <Point>
                <coordinates>176.589370309749,-39.5968230904137,0</coordinates>
            </Point>
        </Placemark>
    </Document>
</kml>

【问题讨论】:

  • 我已经修改了嵌套 KMZ 文件中的答案。 KML 2.2 规范对 KMZ 文件提供的指导很少。

标签: kml google-earth kmz


【解决方案1】:

如果您希望根 KMZ 文件引用其他子 KMZ 文件,则子 KMZ 文件不应是根 KMZ 文件的子条目,而应位于 Web 服务器或文件系统中的相同相对上下文中。

Google 地球支持 KMZ 文件中的大量嵌套 KML 文件,但支持父 KMZ 文件中的嵌套 KMZ 文件。将内容布局为文件结构,其中 1) 所有子 kml 文件都位于单个 root.kmz 文件中,或 2) 子 kmz 文件与根 kml 或 kmz 文件位于同一位置。

文件系统或网络服务器将具有以下结构:

结构1:

root.kmz
  nest1/nested1.kml
  nest2/nested2.kml

结构2:

root.kmz
nest1/nested1.kmz
nest2/nested2.kmz

root.kmz 可以引用nest1/nested1.kmz,然后nested1.kmz 可以引用nested2.kmz。

Google 地球还支持 KMZ 文件中的子文件引用,因此如果 root.kmz 包含在 nested1.kmz 中,它可以直接引用 nest2/nest2.kml。不推荐这种做法,因为它可能在 Google 地球以外的应用程序中不受支持。

 <Link>
     <href>nested1.kmz/nest2/nested2.kml</href>
 </Link>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多