使用 GMAP3 Google Map API 3 类。无法完全弄清楚如何通过 javascript 从外部链接触发标记上的点击事件。我尝试了 v3 api 语法,但怀疑我遗漏了与 GMAP3 库相关的内容。有人可以帮我吗?
我正在显示一个地图,其中包含来自 ajax 请求的标记和信息框数据以及生成的 JSON 数组。效果很好。我为标记分配了一个点击事件,它工作正常。我正在使用解析相同的 JSON 数组来填充数据表<a href="#" id="link" arid="X">Click Me</a>
X 实际上是我在构建 JSON 数组时使用的递增标记计数器,因此它将从 0 开始并构建为代表我所有标记的任何值。我期望使用这个值来告诉 GMAP3 我想将点击事件传递给哪个标记......如果这个过程是错误的,那么我真的很困惑。
我的 JSON 数组对象存储在标记列表中并传递给下面的函数......效果很好,但我似乎无法从我的数据表链接触发这些点击......(请参阅下面的我的 jquery 代码以获取这些点击并尝试传递它们沿着地图)
我的地图代码是:
function display( markerlist ) {
$("#map").gmap3({action:'clear'});
$("#map").gmap3(
{action: 'init',
options:{
center:true,
zoom:13,
mapTypeId: google.maps.MapTypeId.ROADMAP,
mapTypeControl: true,
mapTypeControlOptions: {
style: google.maps.MapTypeControlStyle.DROPDOWN_MENU
},
navigationControl: true,
scrollwheel: true,
streetViewControl: true
}
},
{action: 'addMarkers',
radius:100,
markers: markerlist,
clusters:{
maxZoom: 10,
// This style will be used for clusters with more than 0 markers
20: {
content: '<div class="cluster cluster-1">CLUSTER_COUNT</div>',
width: 53,
height: 52
},
// This style will be used for clusters with more than 20 markers
50: {
content: '<div class="cluster cluster-2">CLUSTER_COUNT</div>',
width: 56,
height: 55
},
// This style will be used for clusters with more than 50 markers
100: {
content: '<div class="cluster cluster-3">CLUSTER_COUNT</div>',
width: 66,
height: 65
}
},
marker: {
options: {
clickable: true
},
events:{
click: function(marker,event,data) {
$(this).gmap3({action: 'clear', name : 'infowindow'});
$(this).gmap3({action: 'addinfowindow', anchor: marker, options: { content:
'<div class="text"><strong><div style="color:navy;">' + data.itype + '</strong><br/><div id="address" snum="' + data.streetnum + '" snam="' + data.streetnam + '" styp="' + data.streettyp + '">'+ data.iaddress +'</div><br/>' + data.inum + '<br/>'+ data.datetime +'</div><hr>'+data.notes+'</div>'} })
},
mouseover: function(marker, event, data){
$(this).gmap3(
{ action:'clear', name:'overlay'},
{ action:'addOverlay',
latLng: marker.getPosition(),
content: '<div class="infobulle">' +
'<div class="bg"></div>' +
'<div class="text">' + data.itype +'</div>' +
'</div>' +
'<div class="arrow"></div>',
offset: {
x:-46,
y:-73
}
});
},
mouseout: function(){
$(this).gmap3({action:'clear', name:'overlay'});
}
}, //end events
callback: function(result){
if (result){
//not doing anything with a callback at this time
} else {
alert('Bad callback...');
}
} //end callbacks
} // end marker
}
,{action:"autofit"} //end action
);
$("a#link").live('click',function(markerlist){ // this works and I can get my arid ok, but the trigger won't work
var arid = $(this).attr('arid');
google.maps.event.trigger(markerlist[arid], 'click');
return false;
});
};
任何帮助将不胜感激,并且肯定对其他人有用!