1. 本地XML文件
<?xml version="1.0" encoding="utf-8"?>
<Root>
<CurrentStatus>
<LicensePlateNumber>鄂EA12345</LicensePlateNumber>
<CurrentTime>2011-11-20</CurrentTime>
<Speed>60Km/h</Speed>
<Lon>10646270</Lon>
<Lat>2955278</Lat>
</CurrentStatus>
<CurrentStatus>
<LicensePlateNumber>渝A77881</LicensePlateNumber>
<CurrentTime>2010-03-21</CurrentTime>
<Speed>88Km/h</Speed>
<Lon>10646252</Lon>
<Lat>2955755</Lat>
</CurrentStatus>
<CurrentStatus>
<LicensePlateNumber>渝A77882</LicensePlateNumber>
<CurrentTime>2010-03-22</CurrentTime>
<Speed>88Km/h</Speed>
<Lon>10646200</Lon>
<Lat>2956039</Lat>
</CurrentStatus>
<CurrentStatus>
<LicensePlateNumber>渝A77883</LicensePlateNumber>
<CurrentTime>2010-03-23</CurrentTime>
<Speed>88Km/h</Speed>
<Lon>10646561</Lon>
<Lat>2956337</Lat>
</CurrentStatus>
<CurrentStatus>
<LicensePlateNumber>渝A77884</LicensePlateNumber>
<CurrentTime>2010-03-24</CurrentTime>
<Speed>88Km/h</Speed>
<Lon>10646530</Lon>
<Lat>2955009</Lat>
</CurrentStatus>
<CurrentStatus>
<LicensePlateNumber>渝A77885</LicensePlateNumber>
<CurrentTime>2010-03-25</CurrentTime>
<Speed>88Km/h</Speed>
<Lon>10646528</Lon>
<Lat>2957069</Lat>
</CurrentStatus>
<CurrentStatus>
<LicensePlateNumber>渝A77886</LicensePlateNumber>
<CurrentTime>2010-03-26</CurrentTime>
<Speed>88Km/h</Speed>
<Lon>10644055</Lon>
<Lat>2957488</Lat>
</CurrentStatus>
<CurrentStatus>
<LicensePlateNumber>渝A77887</LicensePlateNumber>
<CurrentTime>2010-03-27</CurrentTime>
<Speed>88Km/h</Speed>
<Lon>10644140</Lon>
<Lat>2956412</Lat>
</CurrentStatus>
<CurrentStatus>
<LicensePlateNumber>渝A77888</LicensePlateNumber>
<CurrentTime>2010-03-28</CurrentTime>
<Speed>88Km/h</Speed>
<Lon>10644311</Lon>
<Lat>2954993</Lat>
</CurrentStatus>
<CurrentStatus>
<LicensePlateNumber>渝A77889</LicensePlateNumber>
<CurrentTime>2010-03-29</CurrentTime>
<Speed>88Km/h</Speed>
<Lon>10645101</Lon>
<Lat>2953410</Lat>
</CurrentStatus>
<CurrentStatus>
<LicensePlateNumber>渝A7788A</LicensePlateNumber>
<CurrentTime>2010-03-30</CurrentTime>
<Speed>88Km/h</Speed>
<Lon>10646217</Lon>
<Lat>2951990</Lat>
</CurrentStatus>
</Root>
2. JavaScript代码
<html xmlns:v="urn:schemas-microsoft-com:vml">
<head>
<meta http-equiv="content-type" content="text/html; charset=GB2312"/>
<title>读取本地XML文件标注,点击标注显示详细的地理位置信息</title>
<style type="text/css">v\:*{behavior:url(#default#VML);}</style>
<script language="javascript" src="http://api.51ditu.com/js/maps.js"></script>
<script language="javascript" src="http://api.51ditu.com/js/rego.js"></script>
<script language="javascript">
var map;
var xmlDoc; /* DOM对象 */;
var objNodeList; /* 对象结点列表 */
var Node; /* 以CurrentStatus为标记的结点 */
var LicensePlateNumber; /* 车牌号码 */
var CurrentTime; /* 当前GPS时间 */
var Speed; /* 车速 */
var Lon; /* 经度 */
var Lat; /* 维度 */
var points = []; /* 从XML文件采集到的经纬度点数组 */
/* ================================================*/
/* 读取本地XML文件,采集目标点(车辆经纬度等信息) */
/* 这里采集到的是经度和纬度,到 points数组中 */
/* ================================================*/
function JavaScriptReadXML()
{
xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); /* 创建DOM对象 */
xmlDoc.async= false; /* 非异步加载模式 */
xmlDoc.load('C:/VehicleTest1.xml'); /* 加载本地XML文件 */
if (xmlDoc.parseError.errorCode != 0) /* 解析XML文件内容 */
{
var myErr = xmlDoc.parseError;
document.write("You have error " + myErr.reason);
}
else
{
objNodeList = xmlDoc.getElementsByTagName("CurrentStatus");
for (var i=0; i<objNodeList.length; i++) /* 读取总的结点数 */
{
Node = objNodeList[i];
for( var k = 0; k < Node.childNodes.length; k++ ) /* 各个结点逐个击破 */
{
if( Node.childNodes[k].nodeName == "LicensePlateNumber" ) /* 车牌号码 */
LicensePlateNumber = Node.childNodes[k].text;
if( Node.childNodes[k].nodeName == "CurrentTime" ) /* 当前GPS时间 */
CurrentTime = Node.childNodes[k].text;
if( Node.childNodes[k].nodeName == "Speed" ) /* 车速 */
Speed = Node.childNodes[k].text;
if( Node.childNodes[k].nodeName == "Lon" ) /* 经度 */
Lon = Node.childNodes[k].text;
if( Node.childNodes[k].nodeName == "Lat" ) /* 维度 */
Lat = Node.childNodes[k].text;
} /* 内层for循环 */
points.push(new LTPoint( Lon , Lat )); /* 将采集到的经纬度值保存在points数组当中 */
} /* 外层for循环 */
}/* else */
} /* function */
/* ================================================*/
/* 鼠标点击事件,点击标注marker时弹出地理位置信息 */
/* ================================================*/
function clickForDetailLocation(i)
{
return function()
{
var reg=new LTRegoLoader();
LTEvent.bind(reg,"loaded",reg,function(obj){ alert(obj.describe) });
reg.loadDescribe(points[i]);
}
}
function onLoad()
{
JavaScriptReadXML(); /* 调用JavaScriptReadXML()函数,采集经纬度点 */
map=new LTMaps("mapDiv");
map.centerAndZoom(new LTPoint(10644054 , 2957487),5);
map.addControl(new LTStandMapControl());
for(var i=0;i<points.length;i++)
{
var markerForDetailLocation = new LTMarker( points[i] );
map.addOverLay( markerForDetailLocation );
LTEvent.addListener( markerForDetailLocation , "click" ,clickForDetailLocation(i) ); /* 给标记添加点击事件*/
}
}
</script>
</head>
<body οnlοad="onLoad()">
<div id="mapDiv" style="position:absolute;width:800px; height:600px;"><div align="center" style="margin:12px;"></div></div>
<div style="position:absolute;left:420px;">
</div>
</body>
</html>
3. 调试结果