Javascript 谷歌地图Api v3触发问题,外部链接点击信息窗口

Javascript 谷歌地图Api v3触发问题,外部链接点击信息窗口,javascript,google-maps,google-maps-api-3,Javascript,Google Maps,Google Maps Api 3,我的代码如下所示,多个标记: var m1 = new google.maps.Marker( new google.maps.LatLng(35.2602340, -93.7939480), {icon:tinyIcon,bouncy:1} ); google.maps.Event.addListener(m1, "click", function() { m1.openInfoWindowHtml( '1<br />test,TX'

我的代码如下所示,多个标记:

var m1 = new google.maps.Marker(
   new google.maps.LatLng(35.2602340, -93.7939480), 
   {icon:tinyIcon,bouncy:1}
);

google.maps.Event.addListener(m1, "click", function() {
   m1.openInfoWindowHtml(   
      '1<br />test,TX'
   );
});

map.addOverlay(m1);

var m2 = new google.maps.Marker(
   new google.maps.LatLng(35.2810510, -93.8246510), 
   {icon:tinyIcon,bouncy:1}
);

google.maps.Event.addListener(m2, "click", function() {
    m2.openInfoWindowHtml(
        'test<br />test,Texas'
    );
});

map.addOverlay(m2);
var m1=new google.maps.Marker(
新google.maps.LatLng(35.2602340,-93.7939480),
{图标:tinyIcon,弹跳:1}
);
google.maps.Event.addListener(m1,“单击”,函数(){
m1.openInfoWindowHtml(
“1
测试,德克萨斯州” ); }); 地图叠加图(m1); var m2=新的google.maps.Marker( 新的google.maps.LatLng(35.2810510,-93.8246510), {图标:tinyIcon,弹跳:1} ); google.maps.Event.addListener(m2,“单击”,函数(){ m2.openInfoWindowHtml( “测试
测试,德克萨斯州” ); }); 地图覆盖图(m2);
我如何让它在外部工作

href="google.maps.Event.trigger(1, 'click');">Something</>
href=“google.maps.Event.trigger(1,'click');”>

要触发其中一个标记上的单击事件,只需执行以下操作:

<a href="javascript:google.maps.event.trigger(m1, 'click');">Trigger Click on m1</a>

如果处理大量标记:

var map;
var markers = []; // declared EXTERNALLY (and m1 and m2 in the examples above)

function setupMarkers() {

    var markersLayer =  new Array();
    markersLayer = [
        [52.26326, 21.673675], // marker #0
        [52.67328, 21.865789], // marker #1
        [52.34366, 21.348797]  // marker #2 etc.
    ];

    for (var i = 0; i < markersLayer.length; i++) {
    // or: for (var i in markersLayer) {
        var myLatLng = new google.maps.LatLng(markersLayer[i][0], markersLayer[i][1]);
        var marker = new google.maps.Marker({..., position: myLatLng, ...});
        google.maps.event.addListener(marker, 'click', function() {...}); 
        markers.push(marker);
    }

}

function initialize() {
    ...
    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
    ...
    setupMarkers();
}

function launchInfoWindow(x) {
    // window.scroll(0, 0);
    // markers[x].setMap(map);
    google.maps.event.trigger(markers[x], "click");
}

HTML:
<a href="javascript:launchInfoWindow(2);">...</a>
var映射;
变量标记=[];//外部声明(以及上述示例中的m1和m2)
函数setupMarkers(){
var markersLayer=新数组();
标记层=[
[52.26326,21.673675],//标记#0
[52.67328,21.865789],//标记#1
[52.34366,21.348797]//标记#2等。
];
对于(var i=0;i
我的地图上有大量的标记-有没有办法将所有标记推到一个单独的数组中?比如,你能给所有标记分配一个“id”属性,然后通过该id“get”吗?…或者我什么都不担心-将所有标记添加到一个数组中会不会消耗太多资源。。。
var map;
var markers = []; // declared EXTERNALLY (and m1 and m2 in the examples above)

function setupMarkers() {

    var markersLayer =  new Array();
    markersLayer = [
        [52.26326, 21.673675], // marker #0
        [52.67328, 21.865789], // marker #1
        [52.34366, 21.348797]  // marker #2 etc.
    ];

    for (var i = 0; i < markersLayer.length; i++) {
    // or: for (var i in markersLayer) {
        var myLatLng = new google.maps.LatLng(markersLayer[i][0], markersLayer[i][1]);
        var marker = new google.maps.Marker({..., position: myLatLng, ...});
        google.maps.event.addListener(marker, 'click', function() {...}); 
        markers.push(marker);
    }

}

function initialize() {
    ...
    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
    ...
    setupMarkers();
}

function launchInfoWindow(x) {
    // window.scroll(0, 0);
    // markers[x].setMap(map);
    google.maps.event.trigger(markers[x], "click");
}

HTML:
<a href="javascript:launchInfoWindow(2);">...</a>