谷歌地图、Ajax XML数据

谷歌地图、Ajax XML数据,ajax,xml,google-maps,xmlhttprequest,Ajax,Xml,Google Maps,Xmlhttprequest,我正在学习从XML文件访问数据,并将其放在Google地图上,但不断出现错误:“TypeError:XML未定义 第138行' 有人知道为什么会发生这个错误吗 var映射; 变量数据=[];//此数组存储所有数据 var viewportMarkersKS2=[]; var viewportMarkersP16=[]; var viewportMarkersHealthcare=[]; var KS2MarkersVisible=document.getElementById('Checkbo

我正在学习从XML文件访问数据,并将其放在Google地图上,但不断出现错误:“TypeError:XML未定义 第138行'

有人知道为什么会发生这个错误吗

var映射;
变量数据=[];//此数组存储所有数据
var viewportMarkersKS2=[];
var viewportMarkersP16=[];
var viewportMarkersHealthcare=[];
var KS2MarkersVisible=document.getElementById('Checkbox1');
var P16MarkersVisible=document.getElementById('Checkbox2');
var HealthcareMarkersVisible=document.getElementById('Checkbox3');
var信息窗口;
变量handle1,handle2;
var iconBlue='icons/bluedot.png';
var iconGreen='icons/green dot.png';
var iconPink='icons/pink dot.png';
//var zoomLevel=map.getZoom();
//物业及地图中心
var iniLat=51.401997;
var iniLon=-1.276934;
var=15;
var=13;
var-maxZoom=12;
var propertylaling=新的google.maps.LatLng(iniLat,iniLon);
函数初始化(){
//根据useragent更改映射大小
detectBrowser()
//地图选项
变量映射选项={
中心:房地产,
变焦:变焦
};
map=new google.maps.map(document.getElementById('map-canvas'),mapOptions);
//********************************************************************************************************************
//********************************************************************************************************************
//**********************************************                         *********************************************
//**********************************************选定属性*********************************************
//**********************************************                         *********************************************
//********************************************************************************************************************
//********************************************************************************************************************
//将属性添加到映射中
var propertyIcon=new google.maps.Marker({
职位:房地产
});
//信息窗口
var infoWindowContent='11德温特路
撒切尔
伯克希尔
RG19 3UT'; var infowindow=new google.maps.infowindow({ 内容:infoWindowContent }); google.maps.event.addListener(propertyIcon,'click',函数(){ 打开(地图、属性图标); }); //向地图添加标记 propertyIcon.setMap(地图); //当用户拖动地图或放大/缩小时,更新范围内的机场列表 google.maps.event.addListenerOnce(映射'bounds_changed',函数(){showGetResultXml()}); google.maps.event.addListener(映射'dragend',函数(){showGetResultXml()}); google.maps.event.addListener(映射'zoom_changed',函数(){showGetResultXml()}); } 函数showGetResultXml(){ var结果=null; var scriptUrl=”http://gm.boomeranginternet.co.uk/xml/amenitydata.xml"; $.ajax( { url:scriptUrl, 键入:“get”, 数据类型:“xml”, async:false, 成功:功能(数据){ 结果=数据; var xml=data.responseXML; var markers=xml.documentElement.getElementsByTagName(“行”); 对于(var i=0;i“+地址; var icon=customIcons[type]| |{}; var marker=new google.maps.marker( { 地图:地图, 位置:点,, 图标:iconBlue }); bindInfoWindow(标记、地图、infoWindow、html); } }, 错误:函数onXmlError(){ 警报(“发生错误”); } }); 函数bindInfoWindow(标记、地图、infoWindow、html){ google.maps.event.addListener(标记,'click',函数(){ setContent(html); 信息窗口。打开(地图、标记); }); } 返回结果; } 函数detectBrowser(){ var useragent=navigator.useragent; var mapdiv=document.getElementById(“映射画布”); if(useragent.indexOf('iPhone')!=-1 | | useragent.indexOf('Android')!=-1){ mapdiv.style.width='100%'; mapdiv.style.height='100%'; }否则{ mapdiv.style.width='100%'; } } google.maps.event.addDomListener(窗口“加载”,初始化);
XML


869
4034
约翰O'瘦削学校
隐休路
亨格福德
RG17 0AN
51.405190, -1.514791
51.405190
-1.514791
01488 682400
赛义德
61
872
4051
布尔默什学校
方格路
伍德利
阅读
RG5 3EL
51.454231, -0.917519
51.454231
-0.917519
0118 9353353
赛义德
170
872
4049
埃姆布鲁克学校
安布鲁克道
沃金汉
RG41 1JP
51.421683, -0.851670
51.421683
-0.851670
0118 9784406
赛义德
219
870
4020
高中及中六中心
苏利街
埃默
var map;

    var Data = [];                           // this array stores all data           
    var viewportMarkersKS2 = [];
    var viewportMarkersP16 = [];
    var viewportMarkersHealthcare = [];
    var KS2MarkersVisible = document.getElementById('Checkbox1');
    var P16MarkersVisible = document.getElementById('Checkbox2');
    var HealthcareMarkersVisible = document.getElementById('Checkbox3');
    var infoWindow;
    var handle1, handle2;
    var iconBlue = 'icons/blue-dot.png';
    var iconGreen = 'icons/green-dot.png';
    var iconPink = 'icons/pink-dot.png';
    //var zoomLevel = map.getZoom();

    // property and map center
    var iniLat = 51.401997;
    var iniLon = -1.276934;
    var iniZoom = 15;
    var ResetZoom = 13;
    var maxZoom = 12;
    var propertyLatLng = new google.maps.LatLng(iniLat, iniLon);

    function initialize() {

        // change map size dependent on useragent
        detectBrowser()

        // map options
        var mapOptions = {
            center: propertyLatLng,
            zoom: iniZoom
        };

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




        //********************************************************************************************************************
        //********************************************************************************************************************
        //**********************************************                         *********************************************
        //**********************************************    SELECTED PROPERTY    *********************************************
        //**********************************************                         *********************************************
        //********************************************************************************************************************
        //********************************************************************************************************************

        // add the property to the map
        var propertyIcon = new google.maps.Marker({
            position: propertyLatLng
        });




        // infoWindows
        var infoWindowContent = '11 Derwent Road<br />Thatcham<br />Berkshire<br />RG19 3UT';

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

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


        // add markers to the map
        propertyIcon.setMap(map);





        // when user drags the map or zooms in/out, update list of airports in range
        google.maps.event.addListenerOnce(map, 'bounds_changed', function () { showGetResultXml() });
        google.maps.event.addListener(map, 'dragend', function () { showGetResultXml() });
        google.maps.event.addListener(map, 'zoom_changed', function () { showGetResultXml() });


    }





    function showGetResultXml() {
        var result = null;
        var scriptUrl = "http://gm.boomeranginternet.co.uk/xml/amenitydata.xml";
        $.ajax(
        {
            url: scriptUrl,
            type: 'get',
            dataType: 'xml',
            async: false,
            success: function(data) {
                result = data;
                var xml = data.responseXML;
                var markers = xml.documentElement.getElementsByTagName("Row");

                for (var i = 0; i < markers.length; i++) {
                    var name = markers[i].getAttribute("SchoolName");
                    var address = markers[i].getAttribute("Address1");
                    var type = markers[i].getAttribute("type");
                    var point = new google.maps.LatLng(parseFloat(markers[i].getAttribute("Coordinates")));

                    var html = "<b>" + name + "</b> <br/>" + address;
                    var icon = customIcons[type] || {};

                    var marker = new google.maps.Marker(
                    {
                        map: map,
                        position: point,
                        icon: iconBlue
                    });

                    bindInfoWindow(marker, map, infoWindow, html);
                }
            },
            error: function onXmlError() {
                alert("An Error has occurred.");
            }
        });







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

        return result;
    }



    function detectBrowser() {
        var useragent = navigator.userAgent;
        var mapdiv = document.getElementById("map-canvas");

        if (useragent.indexOf('iPhone') != -1 || useragent.indexOf('Android') != -1) {
            mapdiv.style.width = '100%';
            mapdiv.style.height = '100%';
        } else {
            mapdiv.style.width = '100%';
        }
    }





    google.maps.event.addDomListener(window, 'load', initialize);
<?xml version="1.0" encoding="utf-8" ?>
<AmenityData>
  <Row>
    <LANumber>869</LANumber>
    <EstablishmentNumber>4034</EstablishmentNumber>
    <SchoolName>John O&amp;#39;Gaunt School</SchoolName>
    <Address1>Priory Road</Address1>
    <Town>Hungerford</Town>
    <Postcode>RG17 0AN</Postcode>
    <Coordinates>51.405190, -1.514791</Coordinates>
    <lat>51.405190</lat>
    <long>-1.514791</long>
    <TelNumber>01488 682400</TelNumber>
    <Type>CY</Type>
    <Age>61</Age>
  </Row>
  <Row>
    <LANumber>872</LANumber>
    <EstablishmentNumber>4051</EstablishmentNumber>
    <SchoolName>The Bulmershe School</SchoolName>
    <Address1>Chequers Way</Address1>
    <Address2>Woodley</Address2>
    <Town>Reading</Town>
    <Postcode>RG5 3EL</Postcode>
    <Coordinates>51.454231, -0.917519</Coordinates>
    <lat>51.454231</lat>
    <long>-0.917519</long>
    <TelNumber>0118 9353353</TelNumber>
    <Type>CY</Type>
    <Age>170</Age>
  </Row>
  <Row>
    <LANumber>872</LANumber>
    <EstablishmentNumber>4049</EstablishmentNumber>
    <SchoolName>The Emmbrook School</SchoolName>
    <Address1>Emmbrook Road</Address1>
    <Town>Wokingham</Town>
    <Postcode>RG41 1JP</Postcode>
    <Coordinates>51.421683, -0.851670</Coordinates>
    <lat>51.421683</lat>
    <long>-0.851670</long>
    <TelNumber>0118 9784406</TelNumber>
    <Type>CY</Type>
    <Age>219</Age>
  </Row>
  <Row>
    <LANumber>870</LANumber>
    <EstablishmentNumber>4020</EstablishmentNumber>
    <SchoolName>Highdown School and Sixth Form Centre</SchoolName>
    <Address1>Surley Row</Address1>
    <Address2>Emmer Green</Address2>
    <Town>Reading</Town>
    <Postcode>RG4 8LR</Postcode>
    <Coordinates>51.481701, -0.975611</Coordinates>
    <lat>51.481701</lat>
    <long>-0.975611</long>
    <TelNumber>0118 9015800</TelNumber>
    <Type>ACC</Type>
    <Age>273</Age>
  </Row>
  <Row>
    <LANumber>869</LANumber>
    <EstablishmentNumber>7005</EstablishmentNumber>
    <SchoolName>Mary Hare School</SchoolName>
    <Address1>Arlington Manor</Address1>
    <Address2>Snelsmore Common</Address2>
    <Town>Newbury</Town>
    <Postcode>RG14 3BQ</Postcode>
    <Coordinates>51.437105, -1.329385</Coordinates>
    <lat>51.437105</lat>
    <long>-1.329385</long>
    <TelNumber>01635 244200</TelNumber>
    <Type>NMSS</Type>
    <Age>70</Age>
  </Row>
  <Row>
    <LANumber>872</LANumber>
    <EstablishmentNumber>6001</EstablishmentNumber>
    <SchoolName>Bearwood College</SchoolName>
    <Address1>Bearwood</Address1>
    <Town>Wokingham</Town>
    <Postcode>RG41 5BG</Postcode>
    <Coordinates>51.415843, -0.883741</Coordinates>
    <lat>51.415843</lat>
    <long>-0.883741</long>
    <TelNumber>0118 9748300</TelNumber>
    <Type>IND</Type>
    <Age>77</Age>
  </Row>
  <Row>
    <LANumber>867</LANumber>
    <EstablishmentNumber>4061</EstablishmentNumber>
    <SchoolName>Easthampstead Park Community School</SchoolName>
    <Address1>Ringmead</Address1>
    <Town>Bracknell</Town>
    <Postcode>RG12 8FS</Postcode>
    <Coordinates>51.398508, -0.782719</Coordinates>
    <lat>51.398508</lat>
    <long>-0.782719</long>
    <TelNumber>01344 304567</TelNumber>
    <Type>CY</Type>
    <Age>125</Age>
  </Row>
</AmenityData>
success: function(data) {
            result = data;
            var xml = data.responseXML;
            var markers = xml.documentElement.getElementsByTagName("Row");
success: function(data) {
            var markers = data.documentElement.getElementsByTagName("Row");