0

Google マップに複数のクリック可能なマーカーを配置しようとしていますが、その方法を見つけるのに問題があります。オンラインのコード例はすべて、データが保持されている配列を参照していますが、私がやりたいのは、クリックされたものにマップを拡大することだけです。

位置データは、wordpress によって while ループで入力されるため、投稿によって新しい位置がグローバル マップに自動的に追加されます。

簡単ですが、私のコードでは最後のコードでしか機能しません。私は何か間違ったことをしていますか?

<script type="text/javascript">
function initialize() {
    google.maps.visualRefresh = true;
    var mapOptions = {
        zoom: 4,
        center: new google.maps.LatLng(37.09024,-95.712891),
        disableDefaultUI: true,
    };

    var posts = locationLat.length;
    var j = 0;
    var map = new google.maps.Map(document.getElementById("map-canvas"),
        mapOptions);
    var place = new Array();

        while (posts != j)
        {
            var image = '<?php echo get_template_directory_uri(); ?>/location_marker.png';
            var myLatLng = new google.maps.LatLng(locationLat[j],locationLong[j]);

            place[j] = new google.maps.Marker({
                position: myLatLng,
                map: map,
                icon: image
            });   

            google.maps.event.addListener(place[j], 'click', function() {
            map.setZoom(8);
            map.setCenter(myLatLng);

            $('.sidebar').stop().animate({
                'width' : '400px',
                'opacity' : '1'
            }, 500);
            });
            j++;
        }
}


google.maps.event.addDomListener(window, 'load', initialize);
</script> 

オンラインの他のすべての例が実際にこれを行っていないため、本当にわかりません。どんな助けでも感謝します。

4

2 に答える 2

1

これを試して:

var marker = new google.maps.Marker({
    position: myLatLng,
    map: map,
    icon: image
}); 
google.maps.event.addListener(marker, 'click', function() {
   map.setZoom(8);
   map.setCenter(marker.getPosition());
});
于 2013-08-03T06:37:23.140 に答える
0

ああ、私が探していたものを見つけました:

map.panTo(this.getPosition());

これは完全に機能するようです。

于 2013-08-03T06:38:19.860 に答える