내 XML을 반복하여 내 데이터를 가져 오는이 JavaScript가 있습니다. 여기 XML에서 데이터를 가져 오는 자바 스크립트 루프
는 내가 가지고있는 자바 스크립트 코드입니다 : 내가 변수 (또는 여러 변수)가 필요function load() {
var map = new google.maps.Map(document.getElementById("map"), {
zoom: 13,
mapTypeId: 'roadmap'
});
var infoWindow = new google.maps.InfoWindow;
var line =[];
downloadUrl("exportintoxml2.php", function(data) {
var xml = data.responseXML;
var devs = xml.documentElement.getElementsByTagName("DEVS"),
data = {};
for (var n = 0; n < devs.length; n++) {
var dev = devs[n],
markers = dev.getElementsByTagName("marker"),
dev_id = dev.getAttribute('DEVS');
data[dev_id] = [];
for (var i = 0; i < markers.length; i++) {
var name = markers[i].getAttribute("USER");
var imei = markers[i].getAttribute("IMEI");
var gsm1 = markers[i].getAttribute("GSM1");
var devices = markers[i].getAttribute("DEVS");
var point = new google.maps.LatLng(
parseFloat(markers[i].getAttribute("LAT")),
parseFloat(markers[i].getAttribute("LON")));
var html = "<b>" + name + "</b> <br/>" + imei;
var icon = customIcons[devices] || {};
var marker = new google.maps.Marker({
map: map,
position: point,
icon: icon.icon,
shadow: icon.shadow
});
bindInfoWindow(marker, map, infoWindow, html);
data[dev_id].push = ({ 'point' : point });
line.push(data[1]);
}
}
map.setCenter(point, 16);
var polyline = new google.maps.Polyline({
path: line,
strokeColor: "#FF0000",
strokeOpacity: 1.0,
strokeWeight: 2
});
polyline.setMap(map);
});
}
별도로 모든 디바이스에 대한 모든 데이터를 포함하고 나는이 루프에 포함하는 방법을 잘 모르겠습니다 . 서로 다른 폴리선을 서로 연결하지 않고 다른 장치를 표시 할 수 있어야합니다.
어떻게 해결할 수 있습니까?
좋아, 루프를 보내 주셔서 감사합니다. 이제 모든 DEVS를 반복하고 모든 데이터를 가져옵니다. 여전히 나에게 명확하지 않은 것은 데이터 []에서 데이터를 어떻게 정렬합니까? 나는 아직 자바 스크립트에 익숙하지 않고 아직 배열에 익숙하지 않다. 난 단지 dev1 [], dev2 [] 등등과 같은 각 DEV에 대한 데이터가있는 배열을 말할 수 있습니다. 할 수 있습니까? –
그렇게 할 수는 있지만 모든 것을 하나의 객체에 넣어야합니다. 위의 편집 된 코드를 참조하십시오. – glortho
좋습니다, 제안 해 주셔서 감사합니다.하지만 여전히 목표를 달성 할 수 없습니다. :) 내가 가지고있는 완전한 코드가 위의 수정 된 코드를 살펴 보시겠습니까? –