是否可以为样式化地图上显示的图标和/或标签添加单击事件监听器?我有一个表单允许录入兴趣点。由于兴趣点样式显示了许多潜在候选项的图标和/或标签,如果用户单击其中一个图标或标签,则会打开一个包含地址信息等内容的信息窗口,我希望在用户单击其中一个图标或标签时将这些地址信息捕获到我的表单字段中。
是否可以为样式化地图上显示的图标和/或标签添加单击事件监听器?我有一个表单允许录入兴趣点。由于兴趣点样式显示了许多潜在候选项的图标和/或标签,如果用户单击其中一个图标或标签,则会打开一个包含地址信息等内容的信息窗口,我希望在用户单击其中一个图标或标签时将这些地址信息捕获到我的表单字段中。
没有基于API的POI访问方式。
但有一个可能的解决方法。
当您单击POI时,会打开一个InfoWindow。可以修改InfoWindow原型以便能够访问InfoWindow内容,而无需引用InfoWindow实例。
//store the original setContent-function
var fx = google.maps.InfoWindow.prototype.setContent;
//override the built-in setContent-method
google.maps.InfoWindow.prototype.setContent = function (content) {
//when argument is a node
if (content.querySelector) {
//search for the address
var addr = content.querySelector('.gm-basicinfo .gm-addr');
if (addr) {
alert(addr.textContent);
//leave the function here
//when you don't want the InfoWindow to appear
}
}
//run the original setContent-method
fx.apply(this, arguments);
};
演示:http://jsfiddle.net/doktormolle/Vkf43/
注意:信息窗口的选择器没有文档记录,它们可能会在未来更改。