kml google扩展程序不在架构中

时间:2013-04-04 01:40:33

标签: kml

我所居住的管辖权使用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(即一公里文件)

<?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>

2 个答案:

答案 0 :(得分:3)

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

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

gx:GoogleMapsEngineLink <{3}}的文档部分,如命名空间http://www.google.com/kml/ext/2.2中所定义。

为什么不创建一个带有根KML文件的Google KML extensions文件,并将嵌入在KMZ文件中的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)就像这样:

<强> engine.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>。同样,如果此元素出现在根级别,并且文档或地标后面会忽略这些功能。

Google宣布将于2016年1月停止使用Google Maps Engine产品。

答案 1 :(得分:0)

我无法将我的KML发送到Validate as valid 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">

我真的不知道自己到底做了什么,所以我无法做出任何声称,这是犹太教或合法的解决方案,或者是否一切都是必要的。但这是我能够验证它的唯一方法。