google maps TypeError: xml is undefined
google maps TypeError: xml is undefined
我目前正在开发一个使用 google 地图和 ajax 的网络应用程序。我都是这些技术的新手,所以我不确定我做的事情是否正确。我按照 https://developers.google.com/maps/articles/phpsqlsearch_v3 上关于如何创建一个的说明进行操作。这是我的代码片段:
function searchNearLocations(radius){
var searchUrl = './designIncludes/phpLogicIncludes/searchMarkers.php?lat=' + myLat +'&lng=' + myLng + '&radius=' + radius;
downloadUrl(searchUrl, function(data) {
var xml = parseXml(data);
var markerNodes = xml.documentElement.getElementsByTagName("marker");
var bounds = new googlemaps.LatLngBounds();
for (var i = 0; markerNodes.Length; i ++){
var name = markerNodes[i].getAttribute("name");
var address = markerNodes[i].getAttribute("address");
var info = markerNodes[i].getAttribute("info");
var tts = markerNode[i].getAttribute("tts");
var slatlng = new google.maps.LatLng(
parseFloat(markerNodes[i].getAttribute("lat")),
parseFloat(markerNodes[i].getAttribute("lang")));
createOption(name,distance,i);
createMarker(latlng,name,address);
bounds.extend(latlng);
}
map.fitBounds(bounds);
});
};
function createMarker(slatlng,name,address,info,tts){
var html = "<b>" + name + "</b></br><u>" + address + "</u></br>" + info + "</br>" + "Time allowance to spend: " + tts;
var marker = new google.maps.Marker({
map:map,
position:slatlng
});
google.maps.event.addListener(marker,'click',function(){
infoWindow.setContent(html);
infoWindow.open(map,marker);
});
markers.push(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.responseText, request.status);
}
};
request.open('GET',url,true);
request.send(null);
};
function parseXml(str){
if (window.ActiveXObject){
var doc = new ActiveXObject('MicrosoftXMLDOM');
doc.loadXML(str);
return doc;
}else if (window.DOMParse){
return (new DOMParser).parseFromString(str,'text/xml');
}
};
function doNothing(){};
我不知道为什么,但是当我使用 Mozilla 的控制台 window 时,我总是得到错误代码 xml is undefined.. 我不知道该怎么办,因为我是这两种技术真的很新,特别是 javascript。当我点击错误时,我指向
var markerNodes = xml.documentElement.getElementsByTagName("marker");
我什至不知道如何检查我的 php 脚本是否正常工作。我在上面的 google 地图上使用 mysqli 而不是 mysql link。我希望你们能帮助我。如果这是重复的,请发给我一个 link.
如果 window.ActiveXObject
和 window.DOMParse
都不存在,您的 parseXml
函数将 return 为 null
function parseXml(str){
if (window.ActiveXObject){
var doc = new ActiveXObject('MicrosoftXMLDOM');
doc.loadXML(str);
return doc;
}else if (window.DOMParse){
return (new DOMParser).parseFromString(str,'text/xml');
}
};
你打错了 DOMParse
应该是 DOMParser
(就像在 tutorial you reference 中一样)
function parseXml(str){
if (window.ActiveXObject){
var doc = new ActiveXObject('MicrosoftXMLDOM');
doc.loadXML(str);
return doc;
}else if (window.DOMParser){
return (new DOMParser).parseFromString(str,'text/xml');
}
};
我目前正在开发一个使用 google 地图和 ajax 的网络应用程序。我都是这些技术的新手,所以我不确定我做的事情是否正确。我按照 https://developers.google.com/maps/articles/phpsqlsearch_v3 上关于如何创建一个的说明进行操作。这是我的代码片段:
function searchNearLocations(radius){
var searchUrl = './designIncludes/phpLogicIncludes/searchMarkers.php?lat=' + myLat +'&lng=' + myLng + '&radius=' + radius;
downloadUrl(searchUrl, function(data) {
var xml = parseXml(data);
var markerNodes = xml.documentElement.getElementsByTagName("marker");
var bounds = new googlemaps.LatLngBounds();
for (var i = 0; markerNodes.Length; i ++){
var name = markerNodes[i].getAttribute("name");
var address = markerNodes[i].getAttribute("address");
var info = markerNodes[i].getAttribute("info");
var tts = markerNode[i].getAttribute("tts");
var slatlng = new google.maps.LatLng(
parseFloat(markerNodes[i].getAttribute("lat")),
parseFloat(markerNodes[i].getAttribute("lang")));
createOption(name,distance,i);
createMarker(latlng,name,address);
bounds.extend(latlng);
}
map.fitBounds(bounds);
});
};
function createMarker(slatlng,name,address,info,tts){
var html = "<b>" + name + "</b></br><u>" + address + "</u></br>" + info + "</br>" + "Time allowance to spend: " + tts;
var marker = new google.maps.Marker({
map:map,
position:slatlng
});
google.maps.event.addListener(marker,'click',function(){
infoWindow.setContent(html);
infoWindow.open(map,marker);
});
markers.push(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.responseText, request.status);
}
};
request.open('GET',url,true);
request.send(null);
};
function parseXml(str){
if (window.ActiveXObject){
var doc = new ActiveXObject('MicrosoftXMLDOM');
doc.loadXML(str);
return doc;
}else if (window.DOMParse){
return (new DOMParser).parseFromString(str,'text/xml');
}
};
function doNothing(){};
我不知道为什么,但是当我使用 Mozilla 的控制台 window 时,我总是得到错误代码 xml is undefined.. 我不知道该怎么办,因为我是这两种技术真的很新,特别是 javascript。当我点击错误时,我指向
var markerNodes = xml.documentElement.getElementsByTagName("marker");
我什至不知道如何检查我的 php 脚本是否正常工作。我在上面的 google 地图上使用 mysqli 而不是 mysql link。我希望你们能帮助我。如果这是重复的,请发给我一个 link.
如果 window.ActiveXObject
和 window.DOMParse
都不存在,您的 parseXml
函数将 return 为 null
function parseXml(str){
if (window.ActiveXObject){
var doc = new ActiveXObject('MicrosoftXMLDOM');
doc.loadXML(str);
return doc;
}else if (window.DOMParse){
return (new DOMParser).parseFromString(str,'text/xml');
}
};
你打错了 DOMParse
应该是 DOMParser
(就像在 tutorial you reference 中一样)
function parseXml(str){
if (window.ActiveXObject){
var doc = new ActiveXObject('MicrosoftXMLDOM');
doc.loadXML(str);
return doc;
}else if (window.DOMParser){
return (new DOMParser).parseFromString(str,'text/xml');
}
};