0

以下に示すように、mysqlデータベースから座標を取得しています

(<?php echo $_Mylat?>, <?php echo $_Mylon?>)
(<?php echo $_Mylat2?>, <?php echo $_Mylon2?>)

マップをプロットすると、次のコードに示すように 2 つのポイントと方向が表示されます

    function initialize() {
    var mapOptions = {
    zoom: 13,
    mapTypeId: google.maps.MapTypeId.ROADMAP,
    center: center
    };

    map = new google.maps.Map(document.getElementById('map_canvas'),
          mapOptions);

    for (var i=0; i<a.length;i++)
    {
        marker = new google.maps.Marker({
        map:map,
        draggable:true,
        animation: google.maps.Animation.DROP,
        position: a[i]
       });

    }   
     var flightPlanCoordinates = [
         new google.maps.LatLng(<?php echo $_Mylat?>, <?php echo $_Mylon?>),
         new google.maps.LatLng(<?php echo $_Mylat2?>, <?php echo $_Mylon2?>)
    ];

たとえば、マーカーをクリックまたはホバーしたときにメッセージ ボックスが表示されるようにしたいのですが、機能しません。コードの修正を手伝ってもらえますか

     var contentstring = 'hey,this is my location'
     var infowindow = new google.maps.InfoWindow ({
    content:contentstring
    })

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

2 に答える 2

1

各マーカー (ループ内) にリスナーと情報ウィンドウを追加する必要があるため、次のようにする必要があります (テストされていません)。

for (var i=0; i<a.length;i++) {

    var marker = new google.maps.Marker({
        map:map,
        draggable:true,
        animation: google.maps.Animation.DROP,
        position: a[i]
    });

    var contentstring = 'hey,this is my location'

    var infowindow = new google.maps.InfoWindow({
        content: contentString
    });

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

} 

一度に 1 つの InfoWindow だけを表示したい場合は、ここで説明されているように情報ウィンドウを再利用する必要があります。

于 2013-03-06T13:46:17.567 に答える
1

通常、情報ウィンドウにはマーカーが付いています。マーカーを設定するときは、情報ウィンドウとクリック イベントも設定します。

情報ウィンドウの使用例については、Google ドキュメントを参照してください。

どこから長さを取得しているのかわかりませんが、それがフライト プランの 2 つのポイントであると想定しています。

for (var i=0; i<a.length;i++)
    {
        marker = new google.maps.Marker({
        map:map,
        draggable:true,
        animation: google.maps.Animation.DROP,
        position: a[i]
       });

    }

    var contentstring = 'hey,this is my location'
    var infowindow = new google.maps.InfoWindow ({
        content:contentstring
    })

    google.maps.event.addListener(marker,'click',function(){
        infowindow.open(map,marker);
    });
}
于 2013-03-06T13:48:33.177 に答える