0

私は現在、リンク付きのサイドバーを備えたgooglemapキャンバスを持っています。これをクリックすると、マーカーと情報ウィンドウを使用して、ユーザーをlatlongの場所に移動します。マップが読み込まれると、これは中央に配置されますが、リンクをクリックしても、マーカーが中央にある中央にマップがパンしません。

マーカー関数内にmap.setCenterを追加しようとしましたが、これにより、コンソールにエラーなしでマップとマーカーが表示されなくなります。誰かが私を助けることができるコードまたはチュートリアルのスニペットに私を導くことができますか?これが私のサンプルコードです:

<script type="text/javascript"> 
var side_bar_html = ""; 

var gmarkers = []; 
var map = null;

function initialize() {
  var myOptions = {
    zoom: 12,
    center: new google.maps.LatLng(46.18363372751015,12.4530029296875),
    mapTypeControl: true,
    mapTypeControlOptions: {style: google.maps.MapTypeControlStyle.DROPDOWN_MENU},
    navigationControl: false,
    mapTypeId: google.maps.MapTypeId.ROADMAP

  }

  map = new google.maps.Map(document.getElementById("map_canvas"),myOptions);

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


  var point = new google.maps.LatLng(46.18363372751015,12.4530029296875);
  var marker = createMarker(point,"example 1","location 1 info")

  var point = new google.maps.LatLng(39.31517545076218, 35.25238037109375);
  var marker = createMarker(point,"example 2","location 2 info")

  document.getElementById("marker_list").innerHTML = side_bar_html;
}


var infowindow = new google.maps.InfoWindow({ 
    size: new google.maps.Size(150,50),
});

function myclick(i) {
google.maps.event.trigger(gmarkers[i], "click");
}

function createMarker(latlng, name, html) {

    var contentString = html;

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

    google.maps.event.addListener(marker, 'click', function() {
        infowindow.setContent(contentString); 
        infowindow.open(map,marker);
        });

    gmarkers.push(marker);

    side_bar_html += '<a href="javascript:myclick(' + (gmarkers.length-1) + ')">' + name + '<\/a><br>';

}
</script> 
4

1 に答える 1

0

クリックしたときにマップをマーカーの中央に配置する場合は、そのためのコードを記述する必要があります。デフォルトでは、情報ウィンドウが表示されるようにパンします。これを変える:

function myclick(i) {
  google.maps.event.trigger(gmarkers[i], "click");
}

次のようなものに:

function myclick(i) {
  map.setCenter(gmarkers[i].getPosition());
  google.maps.event.trigger(gmarkers[i], "click");
}
于 2012-12-05T16:16:55.043 に答える