使用腾讯地图驾车规划路线 - Go语言中文社区

使用腾讯地图驾车规划路线


<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <link href="https://v3.bootcss.com/dist/css/bootstrap.min.css" rel="stylesheet"/>
    <title>基本地图展示</title>
</head>
<body>
<p>通过腾讯地图规划驾车路线,并展示运动轨迹</p>

输入要规划路线的地址:<input type="text" style="width: 63%;" 
 value="http://apis.map.qq.com/ws/direction/v1/walking/?from=39.915285,116.403857&to=39.915285,116.803857&key=腾讯地图key" />

<button class="btn btn-xs btn-primary">查看路线</button>
<input type="button" class="btn btn-xs btn-primary hidden" value="开始动画" id="start"/>
<input type="button" class="btn btn-xs btn-primary hidden" value="暂停动画" id="pause"/>
<input type="button" class="btn btn-xs btn-primary hidden" value="继续动画" id="resume"/>
<input type="button" class="btn btn-xs btn-primary hidden" value="停止动画" id="stop"/>
<br><br>
<div id="container" style="height: 500px; width: 80%"></div>
<script src="https://cdn.bootcss.com/jquery/1.10.2/jquery.min.js"></script>
<script src="http://webapi.amap.com/maps?v=1.4.6&key=高德地图key"></script>
<script>
    $(function() {
        var map = new AMap.Map('container', {
            resizeEnable: true,
            zoom:11,
            center: [116.397428, 39.90923]
        });
        $('button').click(function(){
            map.clearMap();
            var urlAll = $('input').val();

            //获取参数
            var arr = urlAll.split('?');
            var url = arr[0];
            var canshu = arr[1].split('&');
            var dataParam = {
                output : 'jsonp'
            };
            for(var i=0; i<canshu.length; i++) {
                var can = canshu[i].split('=');
                if(can[0] == 'from') {
                    dataParam.from = can[1];
                }
                if(can[0] == 'to') {
                    dataParam.to = can[1];
                }
                if(can[0] == 'waypoints') {
                    dataParam.waypoints = can[1];
                }
                if(can[0] == 'key') {
                    dataParam.key = can[1];
                }
            }

            //始点
            var kaishi = dataParam.from;
            var kaishiArr = kaishi.split(',');
            new AMap.Marker({
                map: map,
                position: [kaishiArr[1], kaishiArr[0]],
                icon: "http://webapi.amap.com/theme/v1.3/markers/n/start.png"
            });

            //终点
            var zhong = dataParam.to;
            var zhongArr = zhong.split(',');
            new AMap.Marker({
                map: map,
                position: [zhongArr[1], zhongArr[0]],
                icon: "http://webapi.amap.com/theme/v1.3/markers/n/end.png"
            });

            $.ajax({
                url: url,
                data : dataParam,
                dataType: 'jsonp',
                success: function (data) {
                    var luxiain = data.result.routes[0];
                    console.log(luxiain);
                    var coors = luxiain.polyline;//点集合
                    //转经纬度集合
                    for (var i = 2; i < coors.length; i++) {
                        coors[i] = coors[i - 2] + coors[i] / 1000000;
                    }
                    var lineNew = [];
                    for (var i = 0; i < coors.length; i=i+2) {
                        lineNew[i/2] = [coors[i+1], coors[i]];
                    }
                    var polyline = new AMap.Polyline({
                        path: lineNew,
                        strokeOpacity: 1,
                        strokeWeight: 3,
                        strokeStyle: "solid",
                        strokeDasharray: [10, 5]
                    });
                    polyline.setMap(map);
                    $('#start').removeClass('hidden');

                    //开始动画
                    marker = new AMap.Marker({
                        map: map,
                        position: [kaishiArr[1], kaishiArr[0]],
                        icon: "http://webapi.amap.com/images/car.png",
                        offset: new AMap.Pixel(-26, -13),
                        autoRotation: true
                    });
                    var passedPolyline = new AMap.Polyline({
                        map: map,
                        strokeColor: "#F00",  //线颜色
                        strokeWeight: 3      //线宽
                    });
                    marker.on('moving',function(e){
                        passedPolyline.setPath(e.passedPath);
                    })
                    map.setFitView();
                    AMap.event.addDomListener(document.getElementById('start'), 'click', function() {
                        marker.moveAlong(lineNew, 1500);
                        $('#pause').removeClass('hidden');
                        $('#resume').removeClass('hidden');
                        $('#stop').removeClass('hidden');
                    }, false);
                    AMap.event.addDomListener(document.getElementById('pause'), 'click', function() {
                        marker.pauseMove();
                    }, false);
                    AMap.event.addDomListener(document.getElementById('resume'), 'click', function() {
                        marker.resumeMove();
                    }, false);
                    AMap.event.addDomListener(document.getElementById('stop'), 'click', function() {
                        marker.stopMove();
                    }, false);

                },
                error: function(error) {
                    console.log('jsonp');
                    console.log(error);
                }
            });
            //缩放显示所有点
            map.setFitView();
        });

    });
</script>
</body>
</html>

地图展示:



版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_39461487/article/details/80408904
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2021-06-14 18:54:11
  • 阅读 ( 1109 )
  • 分类:职场

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢