0

前述のように、私は JQuery Map UI プラグインを使用しており、クリックするとマップに情報ウィンドウが開く場所のリストを取得する方法を理解するのに苦労しています。

これは、マップ マーカーを取り込み、マップ外の場所のリストを出力する作業コードです。

$.getJSON( 'data.php', function(data) {
$.each( data.markers, function(i, m) {
    var temp = m.services.split(',');
    $('#map_canvas').gmap('addMarker', {
        'position': new google.maps.LatLng(m.lat, m.lng),
        'bounds': true,
        'services':temp
    }).click(function() {
       $('#map_canvas').gmap('openInfoWindow', { 'content': m.address }, this);
    });
   //list of locations that once click, will open the map info window
    $('ul.list').append('<li><a href="#" >' + m.address + '</a></li>');
});
});

現時点では、上記はマップ内の実際のマーカーのみが情報ウィンドウを開くことを許可します。アイテムのULリストをクリック可能にし、情報ウィンドウを開くことに関するヘルプ/指示は非常に高く評価されます.

4

1 に答える 1

1

私は可能な方法(他にもあるかもしれません):

google.maps.Marker-instance を -element のプロパティとして保存<li>し、この要素をクリックしてアクセスし、マーカーのクリックをトリガーできるようにします。

$.each( data.markers, function(i, m) {
    var temp = m.services.split(',');

    var marker=//<--create a local variable
          $('#map_canvas').gmap('addMarker', {
            'position': new google.maps.LatLng(m.lat, m.lng),
            'bounds': true,
            'services':temp
            }).click(function() {
                $('#map_canvas').gmap('openInfoWindow', { 'content': m.address }, this);
        })[0];//<--note the [0]

   //list of locations that once click, will open the map info window
    $('<li><a href="#" >' + m.address + '</a></li>')
      .data('marker',marker)
       .appendTo('ul.list')
        .click(function(e){
                e.preventDefault();
                google.maps.event.trigger($(this).data('marker'),'click');
              });
});
于 2013-09-18T21:52:24.830 に答える