为什么我的NetworkLink无法在嵌套的KMZ中工作?

时间:2015-08-12 04:15:23

标签: kml google-earth kmz

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

当我尝试实现此目的时,不会加载引用kml文件的网络链接。 enter image description here

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>

1 个答案:

答案 0 :(得分:1)

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

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

文件系统或Web服务器具有以下结构:

结构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可以直接引用nest2 / nest2.kml(如果它包含在nested1.kmz中)。不推荐这种做法,因为Google Earth以外的应用程序可能不支持这种做法。

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