KML:将图标放在地标中而不是样式中

KML: Put the icon in the placemark rather than Style

我正在制作一个包含多个地标和多个不同图标的 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>

但是不行。

这不是有效的 KML。根据 documentation,地标可以包含

有效的 <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>