0

私はJavascriptで新しく、 Using MySQL and PHP with Google MapsとMarkerClustererを使用してGoogleマップを作成しました。MarkerClustererを使用してインフォウィンドウの各マーカーに関連付けられたコンテンツを表示します

数時間の研究の後、正常に動作しますが、まだ問題があります。私は各マーカーをクリックしてインフォーワード・ウィンドウを表示する必要があります。だから、私はサークルのイベントリスナーを追加します。

問題は次のとおりです。すべてのマーカーについて、my.xmlファイルの最後の行の内容である同じ内容を表示します。ここで

コード:

function initMap() 
    { 
       var map = new google.maps.Map(document.getElementById('map'), { 
       center: new google.maps.LatLng(48.85, 2.4), 
       zoom: 6 
       }); 
       //taille de la fenêtre d'information 
       var infoWindow = new google.maps.InfoWindow({ 
         maxWidth: 400 
         }); 

       // Change this depending on the name of your PHP or XML file 
       downloadUrl(sourcexml, function(data) 
       { 
       var xml = data.responseXML; 
       var clusteredmarkers = []; 
       var markers = xml.documentElement.getElementsByTagName("marker"); 

         for (var i = 0; i < markers.length; i++) 
         { 
            var idcart = markers[i].getAttribute('id'); 
            var name = markers[i].getAttribute("titre"); 
            var description = markers[i].getAttribute("description"); 
            var type = markers[i].getAttribute("categorie"); 
            var point = new google.maps.LatLng(
             parseFloat(markers[i].getAttribute("lat")), 
             parseFloat(markers[i].getAttribute("lng"))); 


            var image = customImage[type] || {}; 
            var marker = new google.maps.Marker({ 
            map: map, 
            position: point, 
            icon: image.image, 
            title: name 
            }); 


            google.maps.event.addListener(marker,'click', function() { 
            infoWindow.setContent(description); 
            infoWindow.open(map, this); 
            }); 

            clusteredmarkers.push(marker); 

         } 

         var markerCluster = new MarkerClusterer(map,clusteredmarkers,{imagePath: 'images/m/m'}); 

       }); 
    } 

どれアドバイス、非常に高く評価され、あなたはそれの内側にそれ保存説明を新しいマーカーを作成すると:-)

答えて

0

ありがとうございました。

var marker = new google.maps.Marker({ 
    map: map, 
    position: point, 
    icon: image.image, 
    title: name, 
    description: description 
    }); 

addListenerクリックしたマーカーで説明を使用します。それは作品 JavaScript closure inside loops – simple practical example

+0

google.maps.event.addListener(marker,'click', function() { infoWindow.setContent(this.description); infoWindow.open(map, this); }); 

あなたはforループという点で何が起こっているかを理解したい場合は、これを読んで!どうもありがとうございます ! – Paul

関連する問題