4

我居住的司法管辖区使用 Google 地球仪发布的数据。他们指向的 kml 文件包含

<?xml version='1.0' encoding='UTF-8'?>
<kml xmlns="http://www.opengis.net/kml/2.2"
     xmlns:gx="http://www.google.com/kml/ext/2.2">
         <gx:GoogleMapsEngineLink>
         <href>http://globe.information.qld.gov.au/qldglobe</href>
     </gx:GoogleMapsEngineLink>
</kml>

我在任何公共文档中都找不到对 gx:GoogleMapsEngineLink 的任何引用,并且在将其与其他标准 kml(例如 Place)一起使用时遇到了麻烦。我想要一个可以记录这个政府地球仪并添加一个地方的 kml。

我希望能够将此地点添加到上述 kml(即一个 kml 文件)

<?xml version='1.0' encoding='UTF-8'?>
<kml xmlns="http://www.opengis.net/kml/2.2"
<Placemark>
<description>Some nice place</description>
<Point>
<coordinates>153.0064595002,-27.4811714996,0</coordinates>
</Point>
<Style>
    <LabelStyle>
     <color>ff7fffff</color>
    </LabelStyle>
</Style>
</Placemark>
</kml>
4

2 回答 2

3

Google KML 扩展可以在 Google 的 KML 文档中找到: https ://developers.google.com/kml/documentation/kmlreference#kmlextensions

此扩展命名空间中元素的完整 XML 架构位于http://developers.google.com/kml/schema/kml22gx.xsd

gx:GoogleMapsEngineLink不是namespace中定义的Google KML 扩展的文档化部分http://www.google.com/kml/ext/2.2

为什么不创建一个KMZ文件,其中包含根 KML 文件和作为辅助文件嵌入在 KML 中的 gx:GoogleMapsEngineLink。

根 KML 文件 doc.kml:

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
    <Document>
        <NetworkLink>
            <Link>
                <href>engine.kml</href>
            </Link>
        </NetworkLink>

        <Placemark>
            <description>Some nice place</description>
            <Point>
                <coordinates>153.0064595002,-27.4811714996,0</coordinates>
            </Point>
            <Style>
                <LabelStyle>
                    <color>ff7fffff</color>
                </LabelStyle>
            </Style>
        </Placemark>
    </Document>
</kml>

而谷歌引擎KML(engine.kml)是这样的:

引擎.kml:

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2">

    <gx:GoogleMapsEngineLink>
        <href>http://globe.information.qld.gov.au/qldglobe</href>
    </gx:GoogleMapsEngineLink>

</kml>

更新:由于<gx:GoogleMapsEngineLink>是特殊且未记录的,因此它不能像其他 KML 元素那样工作,因此它不能作为元素的子<Document>元素或<NetworkLink>. 同样,如果此元素出现在根级别,并且在这些功能之后有文档或地标,则会被忽略。

谷歌宣布将于 2016 年 1 月停止使用谷歌地图引擎产品。

于 2013-04-05T00:11:18.673 回答
0

我无法让我的 KML验证为有效 XML,因为我的 KML 包含 gx(Google 扩展)标签(<gx:Tour>例如),而 www.google.com/kml/ext/2.2/ 是 404 错误。这是我经过一个小时的反复试验后最终验证的内容:

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2" 
xmlns:gx="http://www.google.com/kml/ext/2.2" 
xmlns:kml="http://www.opengis.net/kml/2.2" 
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.google.com/kml/ext/2.2 http://developers.google.com/kml/schema/kml22gx.xsd">

我真的不知道我在做什么,所以我不能声称这是一个犹太或合法的修复,或者这是否都是必要的。但这是我可以让它验证的唯一方法。

于 2015-01-24T02:28:13.780 回答