通过KML GMaps:改变地标引脚的颜色

时间:2011-01-27 14:20:49

标签: php google-maps kml google-maps-markers google-maps-styled

我们正在使用带有KML Feed的GMaps来显示地图上的位置。这是一个例子:

http://jugendinfo.de/themen.php/873/geo.html

此地图上的图钉应为红色,因此我在KML生成器中使用以下PHP4代码来设置颜色:

$snode = $dom->create_element('Style');
$styleNode = $docNode->append_child($snode);
$styleNode->set_attribute('id', 'normalPlacemark');

$lnode = $dom->create_element('LabelStyle');
$labelNode = $styleNode->append_child($lnode);

$cnode = $dom->create_element('color');
$colorNode = $labelNode->append_child($cnode);

$colorText = $dom->create_text_node('ffcc0000');
$colorNode->append_child($colorText);

这导致以下KML代码:

<Style id="normalPlacemark">
  <LabelStyle>
    <color>ffcc0000</color>
  </LabelStyle>
</Style>

可以从此位置加载完整的KML源:

http://jugendinfo.de/feeds/geo.php/873.kml

然而,颜色样式似乎不受尊重。如果KML文档中没有任何样式元素,则甚至不会显示引脚。如何更改颜色? API文档似乎对此问题非常有限,并且示例PHP代码片段甚至非常错误,我无法得到任何提示如何使其工作。大多数示例似乎适用于Google地球而不是Google地图。

1 个答案:

答案 0 :(得分:3)

  • LabelStyle实际上是指在Google地球中绘制的标签的颜色,而不是图钉图像的颜色。
  • KML中的颜色以下列格式指定aabbggrr,其中if alpha,b为蓝色,r为十六进制红色,因此与网络上使用的rrggbb不同

如果您想更改图像,请使用IconStyle。我不认为颜色规范在谷歌地图中有效,但您可以为地标指定自定义图标图像网址。

<Style id="normalPlacemark">
    <IconStyle>
             <color>ff00ff00</color>
                         <Icon>
                <href>http://maps.google.com/mapfiles/kml/pal3/icon21.png</href>
             </Icon>
          </IconStyle>
</Style>

参考:http://code.google.com/apis/kml/documentation/kmlreference.html#iconstyle