Google maps api 3 GMAP3-谷歌地图API3从外部url触发标记点击事件

Google maps api 3 GMAP3-谷歌地图API3从外部url触发标记点击事件,google-maps-api-3,jquery-gmap3,Google Maps Api 3,Jquery Gmap3,使用GMAP3谷歌地图API 3类。无法完全理解如何通过javascript从外部链接触发标记上的单击事件。我尝试过V3API语法,但怀疑我遗漏了与GMAP3库相关的内容。有人能帮我吗 我展示了一个带有标记的地图和来自ajax请求的infobox数据,以及生成的JSON数组。效果很好。我为标记指定了一个单击事件,它可以正常工作。我正在使用解析相同的JSON数组来用 X实际上是我在构建JSON数组时使用的递增标记计数器,因此它将从0开始,并构建为表示所有标记的任何值。我希望使用此值告诉GMAP3我

使用GMAP3谷歌地图API 3类。无法完全理解如何通过javascript从外部链接触发标记上的单击事件。我尝试过V3API语法,但怀疑我遗漏了与GMAP3库相关的内容。有人能帮我吗

我展示了一个带有标记的地图和来自ajax请求的infobox数据,以及生成的JSON数组。效果很好。我为标记指定了一个单击事件,它可以正常工作。我正在使用解析相同的JSON数组来用

X实际上是我在构建JSON数组时使用的递增标记计数器,因此它将从0开始,并构建为表示所有标记的任何值。我希望使用此值告诉GMAP3我要将单击事件传递给哪个标记。。。如果这个过程是错误的,那么我真的很困惑

我的JSON数组对象存储在markerlist中,并传递给下面的函数。。。这很好,但我似乎无法从我的数据表链接触发这些点击。。。(请参阅下面我的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;
});



};
功能显示(标记列表){
$(“#map”).gmap3({操作:'clear'});
$(“#地图”).gmap3(
{操作:'init',
选项:{
中:是的,
缩放:13,
mapTypeId:google.maps.mapTypeId.ROADMAP,
mapTypeControl:true,
mapTypeControlOptions:{
样式:google.maps.MapTypeControlStyle.DROPDOWN_菜单
},
导航控制:对,
滚轮:对,
街景控制:正确
}
},
{操作:'addMarkers',
半径:100,
markers:markerlist,
集群:{
最大缩放:10,
//此样式将用于标记数超过0的簇
20: {
内容:“群集计数”,
宽度:53,
身高:52
},
//此样式将用于具有20个以上标记的簇
50: {
内容:“群集计数”,
宽度:56,
身高:55
},
//此样式将用于具有50个以上标记的簇
100: {
内容:“群集计数”,
宽度:66,
身高:65
}
},
标记:{
选项:{
可点击:正确
},
活动:{
单击:功能(标记、事件、数据){
$(this.gmap3({action:'clear',name:'infowindow'});
$(this).gmap3({action:'addinfo window',锚点:marker,选项:{content:
“”+data.itype+”
“+data.iaddress+”
“+data.inum+”
“+data.datetime+”
”+data.notes+”}) }, 鼠标悬停:功能(标记、事件、数据){ $(本文件)。gmap3( {操作:'clear',名称:'overlay'}, {操作:'addOverlay', latLng:marker.getPosition(), 内容:“”+ '' + “”+data.itype+“”+ '' + '', 偏移量:{ x:-46, y:-73 } }); }, mouseout:function(){ $(this.gmap3({action:'clear',name:'overlay'}); } },//结束事件 回调:函数(结果){ 如果(结果){ //目前没有对回调进行任何操作 }否则{ 警报('错误回调…'); } }//结束回调 }//结束标记 } ,{action:“autofit”}//结束操作 ); $(#link”).live('click',function(markerlist){//这可以工作,我可以得到我的答案,但是触发器不起作用 var-adriad=$(this.attr('adriad'); google.maps.event.trigger(markerlist[andry],“click”); 返回false; }); };

任何帮助都将非常感激,我相信对其他人都是有用的

我认为问题在于markerlist不是一个全局变量,它是您的
display
函数的局部变量?如果在
单击
事件处理程序中将markerlist写入控制台,会得到什么结果?

我也有同样的问题!!这个GMAP3文档有点难。因此,直接阅读代码。