我很难弄清楚如何使用infoWindow触发指定的gmaps.js
我的地图初始化如下:
map = new GMaps({
div: '#map-canvas'
});
renderMarkers();我的renderMarkers函数基本上执行对PHP的AJAX调用,该脚本查询数据库并返回结果集,并返回一系列addMarker调用,如下所示:
LOOP THROUGH RESULT SET {
map.addMarker({
lat: marker.SiteLatitude,
lng: marker.SiteLongitude,
infoWindow: {
content: marker.contentHTML,
closeclick: function(e) {
$("#customer-details-container").hide();
}
},
icon: marker.iconPath,
id: marker.MyID
})
}我刷新/重新呈现标记,因为客户端使用map.removeMarkers()触发底层数据库的更新,然后触发renderMarkers()函数。当标记在地图上重新绘制时,如果用户有一个infoWindow打开,我希望触发它来打开它。
我不知道如何根据特定的ID触发infoWindow。
map.addMarker({
lat: 102.325
lng: -67.524,
infoWindow: {
content: "<div>test!</div>"
closeclick: function(e) {
$("#customer-details-container").hide();
}
},
icon: "image/marker.png",
id: 1234
})我说的对吗?我应该能够使用那个ID=1234来瞄准它吗?例:
google.maps.event.trigger(markers[1234], 'click');??
我不确定使用gmaps.js执行此操作的具体语法
任何帮助都非常感谢:D
发布于 2014-01-29 16:28:11
我说的对吗?我应该能够使用那个ID=1234来瞄准它吗?
我不这样认为。文档是非常不完整的,在gmaps.js中我找不到任何通过属性访问标记的功能。
但是您可以扩展原型:
GMaps.prototype.markerById=function(id){
for(var m=0;m<this.markers.length;++m){
if(this.markers[m].get('id')===id){
return this.markers[m];
}
}
return new google.maps.Marker();
}用法:
google.maps.event.trigger(map.markerById(12345), 'click');发布于 2014-09-14 13:03:01
添加到Gmaps.map意图的每个标记都有自己的InfoWindow存储在标记对象中。我们需要那个特定标记的数组索引键。按索引键前进,打开右InfoWinow o。您可以通过以下操作打开GMaps.js特定标记:
(map.markers[index].infoWindow).open(map.map,map.markers[index]);将索引替换为希望InfoWindow打开的标记的索引。
https://stackoverflow.com/questions/21424138
复制相似问题