我正在用geoxml3装载地图。如果我使用kml文件或xml字符串,它可以正常工作。
KML版本(OK)
geoXml_1.parse('kmlFile.kml');
if (geoXml_1.docs[0].gpolygons.length>0){ //NO ERROR IN geoXml_1.docs[0]
[.....]
}else{
[.....]
}XML字符串
geoXml_1.parseKmlString("<?xml version='1.0' encoding='UTF-8'?><kml xmlns='http://earth.google.com/kml/2.0'><Placemark><name>Manfred Mustermann</name><description>Manfred Mustermann</description><Point><coordinates>7.0964850607874,51.781641735074,0</coordinates></Point><address>Musterstr 29 Aachen, 52070 Nordrhein-Westfalen</address><styleUrl>#0</styleUrl></Placemark></kml>")
if (geoXml_1.docs[0].gpolygons.length>0){ //NO ERROR IN geoXml_1.docs[0]
[.....]
}else{
[.....]
}但是,如果我使用asp文件来编写xml,它就不能正常工作。我得到一个javascript错误:
geoXml_1.parse('/service/map.asp');其中,map.asp返回一个XML:
/service/map.asp
<%
Response.ContentType = "text/xml"
response.write "<?xml version='1.0' encoding='UTF-8'?><kml xmlns='http://earth.google.com/kml/2.0'><Placemark><name>Manfred Mustermann</name><description>Manfred Mustermann</description><Point><coordinates>7.0964850607874,51.781641735074,0</coordinates></Point><address>Musterstr 29 Aachen, 52070 Nordrhein-Westfalen</address><styleUrl>#0</styleUrl></Placemark></kml>"
%>对于firebug,输出是可以的。我可以看到xml,但这里出现了错误:
geoXml_1.parse('/service/map.asp');
if (geoXml_1.docs[0].gpolygons.length>0){ //ERROR ON FIREBUG: geoXml_1.docs[0] is undefined
[.....]
}else{
[.....]
}geoxml真的接受我想做的事吗?有可能吗??为什么不行?
谢谢!!
发布于 2014-04-15 10:43:59
parse使用AJAX请求KML-文档,在调用解析后不能立即访问docs,因为AJAX异步运行。
使用afterParse-callback:
geoXml_1 = new geoXML3.parser(
{/* options ,*/
afterParse:function(docs){
if (docs[0].gpolygons.length>0){
//[.....]
}else{
//[.....]
}
}
});
geoXml_1.parse('/service/map.asp');https://stackoverflow.com/questions/23080257
复制相似问题