谷歌地图、Ajax XML数据
我正在学习从XML文件访问数据,并将其放在Google地图上,但不断出现错误:“TypeError:XML未定义 第138行' 有人知道为什么会发生这个错误吗谷歌地图、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
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&#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");