<!--<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">-->
<html >
<head>
<title>订单轨迹图</title>
<script type="text/javascript" src="jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="My97DatePicker/WdatePicker.js"></script>
<link rel="stylesheet" type="text/css" href="demo.Default.css" />
<script type="text/ecmascript" language="javascript" src="http://webapi.amap.com/maps?v=1.3&key=4b10da3ab0afc310306e14dd6303204b"></script>
<script type="text/ecmascript" language="javascript">
var mapObj, polyline, n, p, jsonData, markerLine;
//标记点
var markers = [];
$(document).ready(
function () {
$("#btnSearch").click(
function () {
InitOrderLineDataList();
});
});
function Init() {
n = getQueryStringV(location.href, "n");
p = getQueryStringV(location.href, "p");
var orderID = getQueryStringV(location.href, "orderID");
$("#txtOrderID").attr("value", orderID);
mapObj = new AMap.Map("iCenter", {
view: new AMap.View2D({
center: new AMap.LngLat(114.053535, 22.544903), //地图中心点
zoom: 12 //地图显示的缩放级别
})
});
//地图中添加地图操作ToolBar插件
mapObj.plugin(["AMap.ToolBar"], function () {
toolBar = new AMap.ToolBar();
mapObj.addControl(toolBar);
});
if (orderID != null && orderID != "") {
InitOrderLineDataList();
}
};
//添加线覆盖物
function addLine(orderLine) {
var lineArr = new Array(); //创建线覆盖物节点坐标数组
for (var i = 0; i < orderLine.length; i++) {
lineArr.push(new AMap.LngLat(orderLine[i].Lon, orderLine[i].Lat));
}
polyline = new AMap.Polyline({
path: lineArr, //设置线覆盖物路径
strokeColor: "#3366FF", //线颜色
strokeOpacity: 1, //线透明度
strokeWeight: 5, //线宽
strokeStyle: "solid", //线样式
strokeDasharray: [10, 5] //补充线样式
});
polyline.setMap(mapObj);
}
function InitOrderLineDataList() {
var orderID = $("#txtOrderID").val();
if (orderID == null) {
alert("请输入订单号!");
return;
}
var pUrl = "TopOneDriverWebService.asmx/SelectOrderTravelTrack";
//alert("{orderID:'" + orderID + "',n:'" + n + "',p:'" + p + "'}");
//alert(pUrl);
$.ajax({
url: pUrl,
type: "POST",
contentType: "application/json;utf-8",
dataType: 'json',
data: "{orderID:'" + orderID + "',n:'" + n + "',p:'" + p + "'}",
timeout: 10000, //超时时间:10秒
success: function (msg) {
jsonData = $.parseJSON(msg.d);
if (jsonData.Code == 0 || jsonData.Code == -1) {
alert(jsonData.Msg);
//alert("1");
}
else {
//alert("2");
var orderList = jsonData.Data.Table1;
addPoint(orderList[0].Lon, orderList[0].Lat, jsonData.Data.Table[0].StartInfomation, "./image/green.png");
addPoint(orderList[orderList.length - 1].Lon, orderList[orderList.length - 1].Lat, jsonData.Data.Table[0].EndInfomation, "./image/red.png");
if (orderList != null && orderList.length > 0) {
//更新地图中心点
mapObj.setZoomAndCenter(12, new AMap.LngLat(orderList[0].Lon, orderList[0].Lat));
addLine(orderList);
completeEventHandler(orderList);
}
}
},
error:function (XMLHttpRequest, textStatus, errorThrown) {
alert("未查询到订单行程轨迹");
//alert(XMLHttpRequest.readyState);
//alert(XMLHttpRequest.responseXML);
//alert(XMLHttpRequest.responseText);
alert(XMLHttpRequest.status);
alert(XMLHttpRequest.statusText);
//alert(XMLHttpRequest.getAllResponseHeaders());
//alert(XMLHttpRequest.getResponseHeader("headerLabel"));
//alert(textStatus);
//alert(errorThrown);
}
});
}
//实例化点标记
function addPoint(x, y, driverContent, imgUrl) {
marker = new AMap.Marker({
icon: imgUrl,
position: new AMap.LngLat(x, y)
});
marker.setMap(mapObj); //在地图上添加点
//为地图注册click事件获取鼠标点击出的经纬度坐标
var clickEventListener = AMap.event.addListener(marker, 'click', function (e) {
openInfo(x, y, driverContent);
});
markers.push(marker);
}
//地图图块加载完毕后执行函数
function completeEventHandler(orderLine) {
if (markerLine != null) {
markerLine.setMap(null);
}
markerLine = new AMap.Marker({
icon: "./image/car_03.png", //marker图标,直接传递地址url
position: new AMap.LngLat(orderLine[0].Lon, orderLine[0].Lat)
});
markerLine.setMap(mapObj); //在地图上添加点
markers.push(markerLine);
//为地图注册click事件获取鼠标点击出的经纬度坐标
var clickEventListener = AMap.event.addListener(markerLine, 'click', function (e) {
markerLine.moveAlong(lineArr, 5000);
});
var lineArr = new Array(); //创建线覆盖物节点坐标数组
for (var i = 0; i < orderLine.length; i++) {
lineArr.push(new AMap.LngLat(orderLine[i].Lon, orderLine[i].Lat));
}
//绘制轨迹
var polyline = new AMap.Polyline({
map: mapObj,
path: lineArr,
strokeColor: "#00A", //线颜色
strokeOpacity: 1, //线透明度
strokeWeight: 3, //线宽
strokeStyle: "solid"//线样式
});
mapObj.setFitView();
markerLine.moveAlong(lineArr, 10000);
}
// function startAnimation() {
// marker.moveAlong(lineArr, 500);
// }
// function stopAnimation() {
// marker.stopMove();
// }
function openInfo(x, y, driverContent) {
var inforWindow = new AMap.InfoWindow({
autoMove: true,
content: driverContent
});
inforWindow.open(mapObj, new AMap.LngLat(x, y));
}
//截取url数据
function getQueryStringV(vhref, name) {
// 如果链接没有参数,或者链接中不存在我们要获取的参数,直接返回空
if (vhref.indexOf("?") == -1 || vhref.indexOf(name + '=') == -1) {
return '';
}
// 获取链接中参数部分
var queryString = vhref.substring(vhref.indexOf("?") + 1);
// 分离参数对 ?key=value&key2=value2
var parameters = queryString.split("&");
var pos, paraName, paraValue;
for (var i = 0; i < parameters.length; i++) {
// 获取等号位置
pos = parameters[i].indexOf('=');
if (pos == -1) {
continue;
}
// 获取name 和 value
paraName = parameters[i].substring(0, pos);
paraValue = parameters[i].substring(pos + 1);
if (paraName == name) {
return unescape(paraValue.replace(/\+/g, " "));
}
}
return '';
}
</script>
</head>
<body onload="Init()">
订单号<input type="text" id="txtOrderID" value="144760" /><button id="btnSearch">查询</button>
<div id="iCenter" style="height:95%;"></div>
</body>
</html>