Google地球中的Base64编码图标

时间:2014-04-15 13:04:25

标签: kml google-earth

是否可以让Icon标签使用Base64编码图像?我尝试过没有成功,使用数据:image / png; base64,预先添加到图像的编码数据,但是当我加载KML时仍然得到红色X.

1 个答案:

答案 0 :(得分:1)

KML中的Style引用覆盖(屏幕覆盖,地面覆盖等)和图标图像仅作为绝对或相对URL引用,而不是其他XML标准中允许的内联base64编码内容。

带绝对网址的图标样式示例:

<Style>
      <IconStyle>
         <Icon>
            <href>http://maps.google.com/mapfiles/kml/pal3/icon21.png</href>
         </Icon>
      </IconStyle>
</Style>

具有相对网址的地面叠加图片示例:

<GroundOverlay>
    <Icon>
      <href>etna.jpg</href>
    </Icon>
</GroundOverlay>

理论上,可以使用“data:image / png; base64 ...”在KML中引用URL,但在官方KML standard中定义的 NOT 用法也未在Google中实现地球。

可以使用base64编码的图像并通过KML特征description中的HTML和JavaScript代码访问它们,但这不在KML的上下文中,不适用于查看红色X. KML支持大多数JavaScript,因此可以在描述气球中显示内嵌图像。

简而言之,图像或图标目前无法对KML中引用的地图上显示的叠加图像或图标进行base64编码,但您可以压缩图像并将其作为KML内的条目引用相对于KML的图像。 {3}}。通过将图像包含在压缩的KMZ文件中,首先不需要对图像进行base64编码。