1

我们使用带有 KML 提要的 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 代码片段甚至有很多错误,我无法得到任何提示如何让它工作。大多数示例似乎适用于谷歌地球而不是谷歌地图。

4

1 回答 1

3
  • LabelStyle 实际上是指在 google earth 中绘制的标签的颜色,而不是图钉图像的颜色。
  • KML 中的颜色以以下格式指定 aabbggrr 其中 a 如果 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

于 2011-01-31T00:29:59.867 回答