2016-05-13 4 views
1

現在複数のマーカーがあるGoogleマップがありますが、URLを使用して必要なマーカーを表示して情報ウィンドウを表示しようとしています。Googleマップ情報ウィンドウをURLハッシュで照会

例えばURLは「/index.html#1」最初のマーカーがその情報ウィンドウを開いてしまうと、第2のマーカーは、その情報ウィンドウを開くだろう「/index.html#2」場合た場合。

google.maps.event.trigger(マーカー[urlhash]、 'クリック')を使用することをおすすめしました。これは情報ウィンドウをトリガーしていないようですか?

何かすべてのアドバイスをいただければ幸いです。ありがとうございます。

のGet URL(/index.html#1):

var urlhash = window.location.hash.replace('#',''); 

Googleマップ:

/* Google Map */ 
function googleMap(){ 
    var locations = [ 
    ['Bondi Beach', -33.890542, 151.274856, 4], 
    ['Coogee Beach', -33.923036, 151.259052, 5], 
    ['Cronulla Beach', -34.028249, 151.157507, 3], 
    ['Manly Beach', -33.80010128657071, 151.28747820854187, 2], 
    ['Maroubra Beach', -33.950198, 151.259302, 1] 
    ]; 
    var map = new google.maps.Map(document.getElementById('map'), { 
    zoom: 10, 
    center: new google.maps.LatLng(-33.92, 151.25), 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
    }); 
    var infowindow = new google.maps.InfoWindow(); 
    var marker, i; 
    for (i = 0; i < locations.length; i++) { 
    marker = new google.maps.Marker({ 
     position: new google.maps.LatLng(locations[i][1], locations[i][2]), 
     map: map 
    }); 
    google.maps.event.addListener(marker, 'click', (function(marker, i) { 
     return function() { 
     map.panTo(marker.getPosition()); 
     infowindow.setContent(locations[i][0]); 
     infowindow.open(map, marker); 
     }; 
    })(marker, i)); 
    } 

    if(urlhash){ 
    google.maps.event.trigger(markers[urlhash], 'click'); 
    } 

} 

答えて

1
/* Google Map */ 
function googleMap(){ 
    var locations = [ 
    ['Bondi Beach', -33.890542, 151.274856, 4], 
    ['Coogee Beach', -33.923036, 151.259052, 5], 
    ['Cronulla Beach', -34.028249, 151.157507, 3], 
    ['Manly Beach', -33.80010128657071, 151.28747820854187, 2], 
    ['Maroubra Beach', -33.950198, 151.259302, 1] 
    ]; 
    var map = new google.maps.Map(document.getElementById('map'), { 
    zoom: 10, 
    center: new google.maps.LatLng(-33.92, 151.25), 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
    }); 
    var infowindow = new google.maps.InfoWindow(); 
    var marker, i; 
    var markers = []; 
    for (i = 0; i < locations.length; i++) { 
    marker = new google.maps.Marker({ 
     position: new google.maps.LatLng(locations[i][1], locations[i][2]), 
     map: map 
    }); 
    markers.push(marker); 
    google.maps.event.addListener(marker, 'click', (function(marker, i) { 
     return function() { 
     map.panTo(marker.getPosition()); 
     infowindow.setContent(locations[i][0]); 
     infowindow.open(map, marker); 
     }; 
    })(marker, i)); 
    } 

    if(urlhash){ 
    google.maps.event.trigger(markers[urlhash], 'click'); 
    } 

} 
関連する問題