2014-07-15 3 views
0

Google지도에 두 개의 다른 XML 파일에서 포인트를로드하려고합니다. 두 XML 파일의 점을로드하고 표시하지만 두 번째 XML 파일로로드 된 점을 클릭하면 첫 xml 파일 점처럼 html을 보여주는 팝업이 표시되지 않습니다. 내가 처음 XML 파일을로드하는 스크립트를 제거하면 풍선과 같이 두 번째 XML 파일에 대한 벌금을 보여Google지도에 여러 개의 XML로드

What it should be doing 나는 두 xml 파일에서 포인트를지도하고 유지하는 방법을 알아야

풍선 작동, 나는 그것을 알아낼 수 없습니다.

다음은 코드의 일부는 XML 파일을로드 할 수 있습니다 :

function load() { 
     var map = new google.maps.Map(document.getElementById("map"), { 
     center: new google.maps.LatLng(30.214632, -97.799502), 
     zoom: 9, 
     mapTypeId: 'roadmap' 
     }); 
     var infoWindow = new google.maps.InfoWindow; 

     // Change this depending on the name of your PHP file 
     downloadUrl("phpsqlsearch_genxml2.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 lastname = markers[i].getAttribute("lastname"); 
      var address = markers[i].getAttribute("address"); 
      var fulladdress = markers[i].getAttribute("fulladdress"); 
      var city = markers[i].getAttribute("city"); 
      var zip = markers[i].getAttribute("zip"); 
      var state = markers[i].getAttribute("state"); 
      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 + " " + lastname +"</b> @ <b>" + type + "</b> <br/>" + address + "</b> <br/>" + fulladdress; 
      var icon = customIcons[type] || {}; 
      var marker = new google.maps.Marker({ 
      map: map, 
      position: point, 
      icon: icon.icon, 
      shadow: icon.shadow 
      }); 
      var ctaLayer = new google.maps.KmlLayer('/kmz/<?php echo $name ?>.kmz'); 
      ctaLayer.setMap(map); 
      bindInfoWindow(marker, map, infoWindow, html); 
     } 
     }); 
     downloadUrl("/trucks/xmldata.php", function(data2) { 
     var xml2 = data2.responseXML; 
     var markers = xml2.documentElement.getElementsByTagName("marker"); 
     for (var i = 0; i < markers.length; i++) { 
      var unit = markers[i].getAttribute("unit"); 
      var lat = markers[i].getAttribute("lat"); 
      var lng = markers[i].getAttribute("lng"); 
      var last = markers[i].getAttribute("last"); 
      var state = markers[i].getAttribute("state"); 
      var speed = markers[i].getAttribute("speed"); 
      var address = markers[i].getAttribute("address"); 
      var truck = markers[i].getAttribute("truck"); 
      var point = new google.maps.LatLng(
       parseFloat(markers[i].getAttribute("lat")), 
       parseFloat(markers[i].getAttribute("lng"))); 
      var html = truck + "<br>Speed: " + speed + "<br>State: " + state + "<br>Address: " + address + "<br>Last Updated: " + last; 
      var icon = customIcons[unit] || {}; 
      var marker = new google.maps.Marker({ 
      map: map, 
      position: point, 
      icon: icon.icon, 
      shadow: icon.shadow 
      }); 
    } 
    }); 
    } 


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

    function downloadUrl(url, callback) { 
     var request = window.ActiveXObject ? 
      new ActiveXObject('Microsoft.XMLHTTP') : 
      new XMLHttpRequest; 

     request.onreadystatechange = function() { 
     if (request.readyState == 4) { 
      request.onreadystatechange = doNothing; 
      callback(request, request.status); 
     } 
     }; 

감사에 앞서 어떤 도움의 시간. 더 자세한 설명이 필요하면 알려주세요.

답변

0

나는 그것을 알아 냈습니다. 나는 단순한 실수를하고있었습니다. 내가 전화하지 않았다

bindInfoWindow(marker, map, infoWindow, html); 

두 번째 xml 파일을 호출 한 후. 두 번째 downloadUrl() 스크립트 이후에 추가하면 내 문제가 해결되었습니다.

관련 문제