7

したがって、次のように初期化される V3 マップがあります。

function init() {
        var mapCenter = new google.maps.LatLng(51.5081289,-0.128005);
        var map = new google.maps.Map(document.getElementById('map'), {
          'zoom': 6,
          'center': mapCenter,
          'mapTypeId': google.maps.MapTypeId.ROADMAP, 
          panControl: false,
          mapTypeControl: false,
          zoomControl: true,
          zoomControlOptions: {
                style: google.maps.ZoomControlStyle.SMALL,
                position: google.maps.ControlPosition.LEFT_TOP
            },
        });

そして、次のようなマーカーの負荷:

var marker25837500 = new google.maps.Marker({
              map: map, 
              pop_title: 'blah blah',                                                                                                 
              pop_wind: 'more blah',
                      zIndex: 999,
              icon: 'images/map_icons/s6.png'
            }); 
            google.maps.event.addListener(marker25837500, 'click', onMarkerClick);

最後に、各メーカーをクリックすると情報ウィンドウを開く機能があります。

var infoWindow = new google.maps.InfoWindow;

var onMarkerClick = OpenInfoWindow;

function OpenInfoWindow() {
          var marker = this;
          infoWindow.setContent('<h3>' + marker.pop_title + '</h3>' +
                                         marker.pop_body);

          infoWindow.open(map, marker);
        };
        google.maps.event.addListener(map, 'click', function() {
          infoWindow.close();
        }); 

私の質問は、特定のマーカー (たとえば、marker25837500) がページ内をクリックされたときにその情報ウィンドウを表示するにはどうすればよいですか? おそらく次のようなものです:

<div id="marker25837500">click to see infoWindow!</div>

簡単だと思いますが、自分の道が見えるだけです!

ありがとう

4

2 に答える 2

11

イベントを使用する場合がありますtrigger

$('#marker25837500').click(function () {
    google.maps.event.trigger(marker25837500, 'click')
})

これを確認してください - https://developers.google.com/maps/documentation/javascript/reference#event

編集:がクリックされたonMarkerClick()ときに呼び出していることにも気付きましたが、他の関数に名前を付けたので、それも変更する必要があるかもしれません。marker25837500OpenInfoWindow()

于 2012-05-29T11:45:09.077 に答える
2

clickマーカーで異常なことをしたり、シミュレートしたりする必要はありません。OpenInfoWindow関数に到達できることを確認してください:

//This is the simple case:
var myDiv = document.getElementById( "marker25837500" );
google.maps.event.addDomListener( myDiv, "click", OpenInfoWindow );

//Or if you have other things that you want to accomplish when this occurs:
var myDiv = document.getElementById( "marker25837500" );
google.maps.event.addDomListener( myDiv, "click", function() {
    OpenInfoWindow();
    //Do other stuff here
});

がスコープ内にある限り(関数が呼び出されInfoWindowたときに到達できます)、これは正常に機能するはずです。OpenInfoWindow

于 2012-05-29T12:18:44.277 に答える