<!doctype html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width"> <style> html, body, #container { width: 100%; height: 100%; } </style> <title>位置经纬度 + 获取步行规划数据</title> <link rel="stylesheet" href="https://a.amap.com/jsapi_demos/static/demo-center/css/demo-center.css" /> <script src="https://webapi.amap.com/maps?v=1.4.15&key=8830df3ce60e0b6348e0854a939ffa9d&plugin=AMap.Walking"></script> <script src="https://a.amap.com/jsapi_demos/static/demo-center/js/demoutils.js"></script> </head> <body> <div id="container"></div> <div id="panel"></div> <script type="text/javascript"> var endlngLat; var map; function addText(end) { endlngLat=end; map = new AMap.Map("container", { zoom: 14 }); AMap.plugin('AMap.Geolocation', function() { var geolocation = new AMap.Geolocation({ enableHighAccuracy: true,//是否使用高精度定位,默认:true timeout: 10000, //超过10秒后停止定位,默认:5s buttonPosition:'RB', //定位按钮的停靠位置 buttonOffset: new AMap.Pixel(10, 20),//定位按钮与设置的停靠位置的偏移量,默认:Pixel(10, 20) zoomToAccuracy: true, //定位成功后是否自动调整地图视野到定位点 }); map.addControl(geolocation); geolocation.getCurrentPosition(function(status,result){ if(status=='complete'){ onComplete(result) }else{ onError(result) } }); }); } function onComplete(data) { var walkOption = { map: map, panel: "panel", hideMarkers: false, isOutline: true, outlineColor: '#ffeeee', autoFitView: true } // 步行导航 var walking = new AMap.Walking(walkOption) var startlngLat=[data.position.lng,data.position.lat]; //根据起终点坐标规划步行路线 walking.search(startlngLat,endlngLat, function(status, result) { // result即是对应的不行路线数据信息,相关数据结构文档请参考 https://lbs.amap.com/api/javascript-api/reference/route-search#m_RidingResult if (status === 'complete') { drawRoute(result.routes[0]) log.success('步行路线数据查询成功') } else { log.error('步行路线数据查询失败' + result) } }); } //解析定位错误信息 function onError(data) { document.getElementById('status').innerHTML='定位失败' } function drawRoute (route) { var path = [] for (var i = 0, l = route.steps.length; i < l; i++) { var step = route.steps[i] for (var j = 0, n = step.path.length; j < n; j++) { path.push(step.path[j]) } } } </script> </body> </html>