0

我没有使用 KML 或 XSD 的经验。我了解 KML 是什么。它是用于生成谷歌地图的 XML。

此站点提供 KML 的 XSD 信息。

我打开了 XSD 文件,我将只发布其中的一小部分,因为它很大:

<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
  xmlns:kml="http://www.opengis.net/kml/2.2"
  xmlns:atom="http://www.w3.org/2005/Atom"
  xmlns:xal="urn:oasis:names:tc:ciq:xsdschema:xAL:2.0"
  targetNamespace="http://www.opengis.net/kml/2.2"
  elementFormDefault="qualified"
  version="2.2.0">

  <annotation>
    <appinfo>ogckml22.xsd 2008-01-23</appinfo>
    <documentation>XML Schema Document for OGC KML version 2.2. Copyright (c)
      2008 Open Geospatial Consortium, Inc. All Rights Reserved.
    </documentation>
  </annotation>  

  <!-- import atom:author and atom:link -->
  <import namespace="http://www.w3.org/2005/Atom"
    schemaLocation="atom-author-link.xsd"/>

  <!-- import xAL:Address -->
  <import namespace="urn:oasis:names:tc:ciq:xsdschema:xAL:2.0"
    schemaLocation="http://docs.oasis-open.org/election/external/xAL.xsd"/>

  <!-- KML field types (simple content) -->

  <simpleType name="anglepos90Type">
    <restriction base="double">
      <minInclusive value="0.0"/>
      <maxInclusive value="90.0"/>
    </restriction>
  </simpleType>

  <simpleType name="angle90Type">
    <restriction base="double">
      <minInclusive value="-90"/>
      <maxInclusive value="90.0"/>
    </restriction>
  </simpleType>

  <simpleType name="anglepos180Type">
    <restriction base="double">
      <minInclusive value="0.0"/>
      <maxInclusive value="180.0"/>
    </restriction>
  </simpleType>

  <simpleType name="angle180Type">
    <restriction base="double">
      <minInclusive value="-180.0"/>
      <maxInclusive value="180.0"/>
    </restriction>
  </simpleType>

  <simpleType name="angle360Type">
    <restriction base="double">
      <minInclusive value="-360.0"/>
      <maxInclusive value="360.0"/>
    </restriction>
  </simpleType>

  <simpleType name="altitudeModeEnumType">
    <restriction base="string">
      <enumeration value="clampToGround"/>
      <enumeration value="relativeToGround"/>
      <enumeration value="absolute"/>
    </restriction>
  </simpleType>

  <simpleType name="colorType">
    <annotation>
      <documentation><![CDATA[

        aabbggrr

        ffffffff: opaque white
        ff000000: opaque black

        ]]></documentation>
    </annotation>
    <restriction base="hexBinary">
      <length value="4"/>
    </restriction>
  </simpleType>

  <simpleType name="coordinatesType">
    <list itemType="string"/>
  </simpleType>

  <simpleType name="colorModeEnumType">
    <restriction base="string">
      <enumeration value="normal"/>
      <enumeration value="random"/>
    </restriction>
  </simpleType>

  <simpleType name="dateTimeType">
    <union memberTypes="dateTime date gYearMonth gYear"/>
  </simpleType>

  <simpleType name="displayModeEnumType">
    <restriction base="string">
      <enumeration value="default"/>
      <enumeration value="hide"/>
    </restriction>
  </simpleType>

  <simpleType name="gridOriginEnumType">
    <restriction base="string">
      <enumeration value="lowerLeft"/>
      <enumeration value="upperLeft"/>
    </restriction>
  </simpleType>
  <simpleType name="itemIconStateType">
    <list itemType="kml:itemIconStateEnumType"/>
  </simpleType>

  <simpleType name="itemIconStateEnumType">
    <restriction base="string">
      <enumeration value="open"/>
      <enumeration value="closed"/>
      <enumeration value="error"/>
      <enumeration value="fetching0"/>
      <enumeration value="fetching1"/>
      <enumeration value="fetching2"/>

我真的不明白如何使用这些东西来生成地图。

我想知道您能否指出 XSD 到底是什么的正确方向,以及如何使用此文档生成漂亮的 KML 文件以显示有效的谷歌地图?

4

3 回答 3

2

艰难的一个。没错,像 KML 这样的词汇表的模式往往很大,而且它们通常难以消化(以文学编程风格编写的例外情况很少见)。我不会从架构开始。网上似乎有一个 KML 教程 - 你用完了吗?

于 2012-08-08T13:26:02.530 回答
2

我之前也遇到过同样的情况,Google 提供的KML 教程和参考文档对我帮助很大。

于 2012-08-08T13:32:00.963 回答
1

@Артём,一旦您开始开发一些 KML 示例,您可以使用 Galdos 慷慨提供的 KML 验证器来检查它们的正确性:http ://www.kmlvalidator.com/home.htm 。当验证器发现问题时,它会给你有用的提示来解决问题。(验证器部分使用KML 2.2.0 XSD 模式来完成其工作。)

于 2012-08-16T14:48:27.360 回答