2011-06-13 4 views
0

마커를 클릭하면 항상 같은 데이터가 표시됩니다 ... 왜?Google지도 - jquery 창 문제

코드 :

function load() 
{ 
    var dialog = $('<div>').dialog({autoOpen:false}); 
    var map = new google.maps.Map(document.getElementById("map"), 
    { 
     center: new google.maps.LatLng(47.6145, -122.3418), 
     zoom: 13, 
     mapTypeId: 'roadmap' 
    }); 
    var infoWindow = new google.maps.InfoWindow; 


    // Change this depending on the name of your PHP file 
    downloadUrl("phpsqlajax_genxml.php", function(data) 
    { 
    var xml = data.responseXML; 
    var markers = xml.documentElement.getElementsByTagName("marker"); 
    for (var i = 0; i < markers.length; i++) 
    { 
     var name = markers[i].getAttribute("name"); 
     var address = markers[i].getAttribute("address"); 
     var type = markers[i].getAttribute("type"); 
     var point = new google.maps.LatLng 
        (
         parseFloat(markers[i].getAttribute("lat")), 
         parseFloat(markers[i].getAttribute("lng")) 
       ); 
     var html = "<b>" + name + "</b> <br/>" + address; 
     var icon = customIcons[type] || {}; 
     var marker = new google.maps.Marker 
        ({ 
         map: map, 
         position: point, 
         icon: icon.icon, 
         shadow: icon.shadow 
        }); 

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

}

+0

희망이 도움을 대화에 연결 하시겠습니까? InfoWindow를 만들었지 만 InfoWindow로는 아무 것도하지 않는다. 그리고 InfoWindow 코드를 볼 수있는 이벤트 리스너에서 대화 상자를 봅니다. 그 관계가 뭐야? – Khepri

+0

아니요, infowindow를보고 싶지 않습니다. jquery 창 (대화 상자) infowindow insted 볼 싶어하지만 jquery 대화 상자에서 동일한 데이터를 참조하십시오. http://kuponik.adriamart.com/davidimo.html에서 확인하십시오. – Andrew

+0

마지막 코멘트에서 [게시 한 링크] (http://kuponik.adriamart.com/davidimo.html)의지도에 표시가 없습니다. – Sparky

답변

1

이 시도 :

첫번째 변화

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

google.maps.event.addListener(marker, 'click', dial(html)); 

2 다음 함수 추가 :

function dial(html){ 
return function(){ 
dialog = $('<div>').dialog({autoOpen:false}); 
dialog.html(html).dialog('open'); 
} 
} 

그것이 infowindo을 수행하는 방법

K

+0

놀랍습니다 ... 고맙습니다! – Andrew

0

변경이 라인 ... 다음에

var marker = new google.maps.Marker 

google.maps.event.addListener(marker, 'click', function() 

...

var marker; 
marker[i] = new google.maps.Marker 

google.maps.event.addListener(marker[i], 'click', function() 
+0

'var marker'가 "for"루프 밖으로 이동 한 경우에만 작동한다고 생각합니다. – kwicher

+0

고마워요,하지만 작동하지 않습니다. ( – Andrew

+0

마커에 문제가 없습니다 ... 문제는 모든 마커에 대해 동일한 데이터를 표시하는 창입니다. .. – Andrew