如何获取谷歌地图标记的HTML?

3
如何从Google地图标记(v3)获取HTML元素?
<div style="overflow-x: hidden; overflow-y: hidden; position: absolute; background-image: url(...); top: 62px; width: 70px; height: 70px; background-size:  ; left: 924px; z-index: 97; opacity: 0,01; cursor: pointer; background-position: 0px -420px; background-repeat: no-repeat no-repeat; " title=""></div>

这里是所有标记的map.getPanes().overlayImage;,但我不知道哪个子元素是我的标记...

1个回答

6
您可以为每个标记的标题属性分配一个唯一的ID,然后搜索所有标记,直到找到具有该ID的标记。
for (var marker in map.getPanes().overlayImage.getElementsByTagName("div")) {
  if (marker.title == "some_id") return marker;
}

作为最后的手段,你也可以使用服务器端脚本来为每个图像在客户端生成唯一的ID。无论文件名是什么(例如mysite.com/marker/De4gy.png),您的服务器都将返回相同的图像(即标记图标)。然后,您可以爬取DOM,查找包含该URL在其样式属性中的DIV。请注意,这可能会影响性能,因为标记将不再可缓存。
请注意,API添加标记到DOM的方式的更改可能会破坏上述所有内容。

看起来这几乎与我在8月2日下面对自己的回答发表的评论中所说的一样。 - Marcelo
是的,请记住,像这样通过添加API访问DOM元素是不受支持的。 - Chris Broadfoot

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接