KML: поместите значок в метку, а не в стиль - PullRequest
0 голосов
/ 02 апреля 2020

Я делаю KML-файл с несколькими метками и несколькими разными значками. Есть ли способ поместить URL-адрес значка в метку, вместо того, чтобы иметь множество разных стилей, большинство из которых используются только один раз?

Обычный синтаксис, который я использую:

  <Document>
    <Style id="Point">
      <IconStyle>
        <Icon>
          <href>http://maps.google.com/mapfiles/kml/pushpin/blue-pushpin.png</href>
        </Icon>
      </IconStyle>
    </Style>

    <Placemark>
      <styleUrl>#Point</styleUrl>
      <name>1</name>
      <Point>
        <coordinates>-1.1234567,52.123456,0</coordinates>
      </Point>
    </Placemark>
  </Document>

И я попробовал:

  <Document>
    <Placemark>
      <IconStyle>
        <Icon>
          <href>http://maps.google.com/mapfiles/kml/pushpin/blue-pushpin.png</href>
        </Icon>
      </IconStyle>
      <name>1</name>
      <Point>
        <coordinates>-1.8123456,52.523456,0</coordinates>
      </Point>
    </Placemark>
  </Document>

Но это не работает.

1 Ответ

1 голос
/ 02 апреля 2020

Это недействительно KML. Согласно документации метка может содержать

или

Действительный <StyleSelector> будет <Style>:

<Style id="ID">
<!-- extends StyleSelector -->

<!-- specific to Style -->
  <IconStyle>...</IconStyle>
</Style>

, который содержит <IconStyle> .

Итак, ваш 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">
  <Document>
    <Placemark>
      <Style>
        <IconStyle>
          <Icon>
            <href>http://maps.google.com/mapfiles/kml/pushpin/blue-pushpin.png</href>
          </Icon>
        </IconStyle>
      </Style>
      <name>1</name>
      <Point>
        <coordinates>-1.8123456,52.523456,0</coordinates>
      </Point>
    </Placemark>
  </Document>
</kml>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...