美文网首页
mui手机GPS实时导航

mui手机GPS实时导航

作者: dopaclover | 来源:发表于2017-09-26 14:15 被阅读0次

前端实时导航代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
<link href="css/mui.min.css" rel="stylesheet" />
<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=aGf0sLjv7DOonc61fINdATGez2d3O8xB"></script>
<script type="text/javascript" src="http://developer.baidu.com/map/jsdemo/demo/convertor.js"></script>
<style>
#allmap{width: 100%;height: 300px;}
#begin{margin-left:30%;margin-right:30%;}
</style>

<script src="js/appConfig.js"></script>
</head>

<body>
    <header class="mui-bar mui-bar-nav">
        <h1 class="mui-title">mui gsp定位</h1>
    </header>
    <div class="mui-content">
        <div id="allmap">
            地图加载中...
        </div>
        <input type="text" value="起点" id="start"/>
        <input type="text" value="终点" id="end"/>
        <input type="button" value="开始行程" id="begin"/>
    </div>
    <script src="js/mui.min.js"></script>
    <script type="text/javascript">
        var lng;
        var lat;
        var car;
        //存储实时gps定位坐标,用于查询实时轨迹
        var arr=new Array();
        var map;
        mui.init();
        //页面初始化gps定位,并将定位点作为地图中心
        mui.plusReady(function(){
            map = new BMap.Map("allmap"); //创建地图
            getGPS();
        });
        //获取当前gps定位信息
        function getGPS(){
                            //需要在mui框架的manifest.json文件中添加Geolocation位置信息模块          plus.geolocation.getCurrentPosition(translatePoint,function(e){
            mui.toast("异常:" + e.message);
            });
        }
    
        function translatePoint(position){
         var currentLon = position.coords.longitude;
         var currentLat = position.coords.latitude;
         var gpsPoint = new BMap.Point(currentLon,currentLat);
         BMap.Convertor.translate(gpsPoint,2,initMap); //坐标转换
        }
        function initMap(point){
            //清除上一次的gps定位图标
            map.removeOverlay(car);
            lat=point.lat;
            lng=point.lng;
            map.addControl(new BMap.NavigationControl());
            map.addControl(new BMap.ScaleControl());
            map.addControl(new BMap.OverviewMapControl());
            map.centerAndZoom(point,15);
            var myIcon = new BMap.Icon("http://lbsyun.baidu.com/jsdemo/img/car.png", new BMap.Size(300,157));
            car = new BMap.Marker(point,{icon:myIcon})
            map.addOverlay(car);
            sendGPS();
        }
        //建立起点自动完成的对象
        var st = new BMap.Autocomplete( 
                    {
                        "input": "start",
                        "location": map
                    });
        //建立终点自动完成的对象
        var st = new BMap.Autocomplete( 
                    {
                        "input": "end",
                        "location": map
                    });
        //点击开始行程            document.getElementById("begin").addEventListener("tap",function(){
            var p1=document.getElementById("start").value;
            var p2=document.getElementById("end").value;
            var driving = new BMap.DrivingRoute(map, {renderOptions: {map: map}});
            driving.search(p1,p2);
            //定时gps定位,并将数据发给后端存储
            var t=self.setInterval('getGPS();',5000);
        })
        //发送gps定位信息到后端
        function sendGPS(){
            mui.ajax(GET_GPS,{
                data:{
                    lat:lat,
                    lng:lng,
                    random: Math.floor(999999999)
                },
                dataType: 'text',
                type:'post',
                crossDomain: true,
                success:function(data){
                    var jsonarr=JSON.parse(data);
                    alert(jsonarr.msg);
                }       
            })
        }
    </script>
</body>

</html>

后台代码(注:后台用的是公司框架):
controll层:
@RequestMapping({"/feiwe_dirver_get_gps.do"})
public void dirverGetGps( HttpServletRequest request, HttpServletResponse response, ModelMap model) throws Exception {

    response.getWriter().println(dWDirverService.dirverGetGps(request));
}


serverce层:
public String dirverGetGps(HttpServletRequest request);


serverceimpl层:
@Override
public String dirverGetGps(HttpServletRequest request) {
    BaseDao dao4S = this.getDao(SYS);
    System.out.println("baga");
    String lng=request.getParameter("lng");
    String lat=request.getParameter("lat");
    JSONObject json=new JSONObject();
    Trajectory tra=new Trajectory();
    if(!StringUtils.isEmpty(lng)&&!StringUtils.isEmpty(lat)){
        //保存到数据做备份,以备之后轨迹回放接口调用
        tra.setLat(Double.parseDouble(lat));
        tra.setLng(Double.parseDouble(lng));
        dao4S.save(tra);
        json.put("msg", "ok");
    }else{
        json.put("msg", "no");
    }
    return json.toString();
}

相关文章

网友评论

      本文标题:mui手机GPS实时导航

      本文链接:https://www.haomeiwen.com/subject/qkpsextx.html