在Google地图电子表格映射器(KML)位置气球中隐藏损坏的图像图标/链接

时间:2012-08-24 22:22:12

标签: google-maps-api-3 kml brokenimage

我对这个不寻常的问题感到困惑:我正在使用Google Maps v3 API来显示Spreadsheet Mapper KML数据,我们在KML中引用了一些自定义图像,这些图像出现在位置/放置气球中。 Google似乎不允许在其气球图层中使用Javascript引用(具有讽刺意味,对吧?),因此根据未找到的图像或src不存在而隐藏损坏的图像链接似乎不可能。

非技术营销人员将通过将气球图像FTP到文件夹逐渐填充图像,但这将逐渐发生并需要立即显示,而不依赖于KML。因此,KML只有一个帐号参考,对应于需要创建的图像名称。

对于那些尚未上传的图片,我们不希望出现破碎的图像图标,但没有Javascript访问或对象标记(也不可用),似乎几乎不可能。 Firefox有一个设置可以关闭损坏的图像,但它不是一个选项(IE似乎有最好的“捏和缩放”支持,这被用于大型触摸屏显示器。

气球HTML在KML文件中显示如下:

<table width="{static_Balloon_Width}"><tr> <td colspan="2"> <span style="font-size:{static_Title_Font_Size};"><b>{unique_Title}</b></span><br> <br> <span style="font-size:{static_Subtitle_Font_Size};"><b>{unique_Subtitle}</b> </span><br> <img src="images/location/{unique_Paragraph1_Text}.jpg" alt=" "><br> <br> {unique_Paragraph2_Text}<br> <a href="{unique_Link_URL}">{unique_Link_Text}</a> <hr> </td> </tr> <tr> <td align="left"><a href="{static_Footer_Link_URL}">{static_Footer_Link_Text}</a> </td> <td align="right"><span style="color:{static_Footer_Text_Color};"> {static_Footer_Text}</span></td> </tr></table>

如果您对避免显示损坏的图片链接有任何想法,请告诉我们!感谢。

1 个答案:

答案 0 :(得分:1)

您可以在加载KmlLayer的页面中处理infowindow的内容。

  1. 在构造函数中设置suppressInfoWindows:true
  2. 创建一个点击侦听器,用于访问click事件的infoWindowHtml属性,处理它以删除图像(或根据需要处理它),然后打开infowindow。
  3. 注意:我看过代码没有抑制infoWindows,添加了一个修改infoWindowHtml内容的点击监听器,似乎有效,但我不知道我相信它。

    这是一个example using FusionTablesLayer,点击事件略有不同,但原理是一样的。