Googel Map API问题

jifengzi 2012-10-04 08:10:55
刚开始看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&v=2&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去掉的话就能正常显示,看了一下午也不知道哪里出了问题,哪位高手看出来了求指正!
...全文
184 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
vkv123 2012-10-08
  • 打赏
  • 举报
回复
我也想知道,支持一下
jifengzi 2012-10-08
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

function loadXmlData("node.xml"){

没这样申明函数参数的啊,语法都错误了

function loadXmlData()
[/Quote]
是要在那里调用啊?BODY元素?还是?因为现在要快速地做一个东西,所以没有时间深究了。感谢了。
jifengzi 2012-10-08
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

function loadXmlData("node.xml"){

没这样申明函数参数的啊,语法都错误了

function loadXmlData()
[/Quote]
是要在那里调用啊?BODY元素?还是?因为现在要快速地做一个东西,所以没有时间深究了。感谢了。
  • 打赏
  • 举报
回复
function loadXmlData(fileName){...}

调用时再这样:
loadXmlData("node.xml");
  • 打赏
  • 举报
回复
function loadXmlData("node.xml"){

没这样申明函数参数的啊,语法都错误了

function loadXmlData()
jifengzi 2012-10-04
  • 打赏
  • 举报
回复
自己顶自己~~~

87,991

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧