刚开始看Google map api,解析xml文档这块跟着书上写了程序,一直不对,也不知道错那里了,先上源码吧。
node.xml:<?xml version="1.0" encoding="gb2312"?>
<overlays>
<!--
point节点的lat,lng属性分别为经纬度
color颜色
width宽度
opacity透明度
-->
<polyline color="#FF0000" width="8" opacity="0.5">
<point lat="43.6" lng="110" />
<point lat="35.8" lng="119" />
<point lat="37.9" lng="102" />
</polyline><polyline color="#0000FF" width="6" opacity="0.5">
<point lat="42" lng="120" />
<point lat="45.8" lng="125" />
<point lat="37.9" lng="126" />
<point lat="47.9" lng="130" />
</polyline>
</overlays>GPolyXml.htm:
<!DOCTYPE html PUBLIC "-//w3c//DTD XHTML1.0 Strict//EN"
"http://www.w3.org/TR/xhtml/DTD/xhtml-strict.dtd">
<!--不添加xmlns:v="urn:scheams-microsoft-com:vml"可能导致IE无法使用GPolyline.-->
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml">
<head>
<meta http-equiv="content-type" content="text/html; charset=GB2312"/>
<title>Google Map JavaScript API Example</title>
<!--导入Googlemapapi库-->
<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=AIzaSyBzjMedAUUuMRpgU3o5s39gB0NNN4OfHCw"
type="text/JavaScript">
</script>
<script type="text/JavaScript">
//<![CDTAT[
var map; //全局Gmap function load(){
if(GBrowserIsCompatible()){
map = new GMap2(document.getElementById("map"));
map.addControl(new GLargeMapControl());
map.addControl(new GMapTypeControl());
map.setCenter(new GLatLng(34.26,108.94156),10);
}
}

function loadXmlData("node.xml"){
var request = GXmlHttp.create();
request.open("GET", "node.xml", true);
request.onreadystatechange = function(){
if(request.readyState == 4){
var xmldoc = requst.responseXML;

var polylines = xmldoc.documentElement.getElementsByTagName("polyline");

for(var i=0; i<polylines.length; i++){
addPolyline(polylines[i]);
}
}
}
request.send(null);
}

function addPolyline(node){
var color = node.getAttribute("color");
var width = parseFloat(node.getAttribute("width"));
var opacity = parseFloat(node.getAttribute("opacity"));

var points = node.getElementsByTagName("point");
var pts = [];
for(var i=0; i<points.length; i++){
pts[i] = new GLatLng(parseFloat(points[i].getAttribute("lat"), parseFloat(points[i].getAttribute("lng")));
}

var polyline = new GPolyline(pts, color, width, opacity);
map.addOverlay(polyline);
return polyline;
}
//]]>
</script>
</head>
<!--加载是调用load()加载地图,onunload="GUnload()"是为了防止内存泄露。-->
<body onload="load()" onunload="GUnload()">
<!--下面的div为地图容器-->
<div id="map" style="width:1320px; height:640px" ></div>
</body>
</html>如果把loadXmlData和addPolyline去掉的话就能正常显示,看了一下午也不知道哪里出了问题,哪位高手看出来了求指正!

解决方案 »

  1.   

    function loadXmlData("node.xml"){没这样申明函数参数的啊,语法都错误了function loadXmlData()
      

  2.   

    function loadXmlData(fileName){...}调用时再这样:
     loadXmlData("node.xml");
      

  3.   

    是要在那里调用啊?BODY元素?还是?因为现在要快速地做一个东西,所以没有时间深究了。感谢了。
      

  4.   

    是要在那里调用啊?BODY元素?还是?因为现在要快速地做一个东西,所以没有时间深究了。感谢了。