如何使用Apple的KML查看器示例代码显示多边形

时间:2011-07-16 23:04:57

标签: iphone xml ios mapkit kml

我正在创建一个在地图上显示多个叠加层的应用,您可以启用或禁用每个“图层”。我正在使用Apple的KMLParser类在WWDC 2010 session 127中进行演示。

到目前为止,我一直在展示道路。当我第一次尝试这样做时,我直接导出谷歌地球,它不喜欢它(Apple的解析器喜欢非常特定格式的KML)。所以我所做的就是将谷歌地球代码中的坐标复制到KMLViewer项目中包含的苹果中(保持所有周围的标签相同)。

我的问题是任何知道的人 - 你是如何用多边形做的?

以下是我的多边形的Google地球代码:

<Polygon>
    <tessellate>1</tessellate>
    <outerBoundaryIs>
        <LinearRing>
            <coordinates>
                <!-- My Coords here -->
            </coordinates>
        </LinearRing>
    </outerBoundaryIs>
</Polygon>

KMLParser不会显示任何内容。


仅供参考,以下是Google地球路径与苹果支持路径之间的差异:

GOOGLE EARTH:

<Placemark>
    <name>A path</name>
    <styleUrl>#msn_ylw-pushpin</styleUrl>
        <LineString>
        <tessellate>1</tessellate>
        <coordinates>
            <!-- My Coords Here -->
        </coordinates>
    </LineString>
</Placemark>

APPLE支持:

<Placemark>
      <name>A path</name>
      <GeometryCollection>
            <LineString>
                  <coordinates> <!-- My Coords Here --> </coordinates>
            </LineString>
      </GeometryCollection>
      <styleUrl>#roadStyle</styleUrl>
</Placemark>

如果有人能告诉我如何让KMLViewer使用多边形,这将是非常棒的!

提前致谢

1 个答案:

答案 0 :(得分:2)

经过几个小时的实验和搜索谷歌文档,我已经弄清楚了:

仅供参考,如何完成:

<Placemark>
    <name>MyPoly</name>
    <styleUrl>#mypolystyle</styleUrl>
    <Polygon>
        <outerBoundaryIs>
            <linearRing>
                <coordinates>
                    <!-- My Coords Here --> 
                </coordinates>
            </linearRing>
        </outerBoundaryIs>
    </Polygon>
</Placemark>