2011-07-22 14 views
40

Googleマップを設定してユーザーの現在地を見つけ、地図をその最も近い位置に配置します。マーカーをクリックすると、インフォボックスが開きます(これはinfoWindowと少し異なります - http://google-maps-utility-library-v3.googlecode.com/svn/trunk/infobox/docs/examples.html)。しかし、私がしたいことは、ユーザーが実際にクリックすることなく、最も近いマーカを自動的に開きます。ここでは、マーカー開口部をトリガーするコードがあります:トリガーgoogle maps markerクリック

//loop through all locations to add a marker: 
addMarker = function(loc) { 
    var markerLoc = new google.maps.LatLng(loc.Lat, loc.Long); 

    var marker = new google.maps.Marker({ 
     map: map, 
     position: markerLoc 
    }); 

    google.maps.event.addListener(marker, "mousedown", function() { 

     var infoOpts = { 
      content: loc.markerText, 
      boxStyle: { background: "none transparent", width: "180px"}, 
      pixelOffset: new google.maps.Size(-90, 0), 
      closeBoxMargin: "5px" 
     }; 

     var ib = new InfoBox(infoOpts); 
     ib.open(map, marker); 
    }); 

    markers.push(marker); 
}; 

だから、何とか私は、適切なマーカーのmouseDownイベント機能を起動する必要がありますが、それはこの1の外側の関数内で行う必要があります。私は配列内の適切なマーカーへの参照を持っています(マーカー[closestmarker])。

答えて

95

私はこの質問はかなりしばらくの間座っている、しかし、念のために、この答えは役に立つかもしれことを参照してください。 trigger google maps marker click

幸運!

コードは次のようになります。

var marker = new google.maps.Marker({}); 
new google.maps.event.trigger(marker, 'click'); 
3
私はそう

var marker = new google.maps.Marker({}); 
marker.addListener('click', function() { 
    infowindow.open(map, marker); 
}); 
new google.maps.event.trigger(marker, 'click'); 
のようなマーカーにクリックイベントを添付する必要見つけ