0

我被这个不寻常的问题难住了:我正在使用 Google Maps v3 API 来显示电子表格映射器 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>

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

4

1 回答 1

1

您可以在加载 KmlLayer 的页面中处理信息窗口的内容。

  1. 在构造函数中设置 suppressInfoWindows:true
  2. 创建一个单击侦听器,该侦听器访问单击事件的 infoWindowHtml 属性,对其进行处理以删除图像(或根据需要进行处理),然后打开信息窗口。

注意:我看到了不抑制 infoWindows 的代码,添加了一个修改 infoWindowHtml 内容的点击侦听器并且似乎可以工作,但我不知道我是否信任它。

这里是一个使用 FusionTablesLayer 的例子,点击事件略有不同,但原理是一样的。

于 2012-08-24T22:38:32.093 回答