Как отобразить многоугольник с помощью примера кода KML для Apple Viewer - PullRequest
2 голосов
/ 17 июля 2011

Я создаю приложение, которое показывает несколько оверлеев на карте, и вы можете включить или отключить каждый «слой». Я использую класс Apple KMLParser, как показано в сеансе WWDC 2010 127.

До сих пор я отображал пути. Когда я впервые попытался сделать это, я экспортировал прямую форму из Google Earth, и она мне не понравилась (парсер Apple любит KML в очень специфическом формате). Поэтому я скопировал координаты из кода Google Планета Земля в код Apple, включенный в проект KMLViewer (с сохранением всех окружающих тегов).

Мой вопрос к любому, кто знает - как вы делаете это с полигонами?

Вот код Google Earth для моего многоугольника:

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

KMLParser не будет ничего отображать для этого.


Просто для справки, вот различия между путём Google Планета Земля и путём, поддерживаемым Apple:

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 Ответ

2 голосов
/ 18 июля 2011

После нескольких часов экспериментов и изучения документов Google, я понял это:

Просто для справки вот как это делается:

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