轨迹

<!--<!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>

 

posted @ 2016-03-08 09:25  hbsfgl  阅读(235)  评论(0编辑  收藏  举报