高德地图JS--批量规划步行路线 优化
调取高德地图JS API 进行步行路线规划
多个起点到达一个重点,根据搜素结果画路线,进行绘图,并为线路添加点击事件
效果如下:
代码如下:
<!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.10&key=d799a2887868628bf7782fcd6b2c0ed1&plugin=AMap.PolyEditor"></script><script src="https://webapi.amap.com/maps?v=1.4.10&key=d799a2887868628bf7782fcd6b2c0ed1&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>
<script type="text/javascript">var map = new AMap.Map('container', {center: [116.397559, 39.89621],zoom: 14})// 当前示例的目标是展示如何根据规划结果绘制路线,因此walkOption为空对象var walkingOption = {}let dataArr = [[15, '汽车服务', 116.807599, 39.6462117, 1.459, 6.3265],[22, '汽车服务', 117.6136484, 39.7657742, 9.738, 7.5687],[30, '汽车服务', 117.2940413, 39.7878749, 7.7227, 6.5476],[37, '汽车服务', 116.0684453, 38.174566, 4.5352, 8.5357],[42, '汽车服务', 117.3493731, 38.6404797, 1.1438, 4.3265],[43, '汽车服务', 116.8465287, 38.363796, 8.7718, 4.4577]]let targetPoint = [116.944964, 39.457521]// 搜素路线的函数function searchRouter (startPointArr, endPoint) {for (let i = 0; i < startPointArr.length; i++) {let item = startPointArr[i]let startPoint = [item[2], item[3]]// 步行导航var walking = new AMap.Walking(walkingOption)//根据起终点坐标规划步行路线walking.search(startPoint, endPoint, function (status, result) {// result即是对应的步行路线数据信息,相关数据结构文档请参考 https://lbs.amap.com/api/javascript-api/reference/route-search#m_WalkingResultif (status === 'complete') {if (result.routes && result.routes.length) {drawRoute(result.routes[0], item)log.success('绘制步行路线完成')}} else {log.error('步行路线数据查询失败' + result)}})}}// 描绘路线的函数function drawRoute (route, item) {var path = parseRouteToPath(route)var startMarker = new AMap.Marker({position: path[0],icon: 'https://webapi.amap.com/theme/v1.3/markers/n/start.png',map: map})var endMarker = new AMap.Marker({position: path[path.length - 1],icon: 'https://webapi.amap.com/theme/v1.3/markers/n/end.png',map: map})var routeLine = new AMap.Polyline({path: path,isOutline: true,outlineColor: '#ffeeee',borderWeight: 2,strokeWeight: 5,cursor: 'pointer',strokeColor: '#0091ff',lineJoin: 'round',extData: item})routeLine.on('click', function (obj) {console.log(obj.target.getExtData())alert('您点击了线为' + obj.target.getExtData().toString())})routeLine.setMap(map)// 调整视野达到最佳显示区域map.setFitView([startMarker, endMarker, routeLine])}// 解析WalkRoute对象,构造成AMap.Polyline的path参数需要的格式// WalkRoute对象的结构文档 https://lbs.amap.com/api/javascript-api/reference/route-search#m_WalkRoutefunction parseRouteToPath (route) {var path = []for (var i = 0, l = route.steps.length; i < l; i++) {var step = route.steps[i]path.push([step.start_location.lng, step.start_location.lat])path.push([step.end_location.lng, step.end_location.lat])}return path}searchRouter(dataArr, targetPoint)
</script>
</body>
</html>
有任何高德JS API 调用问题都可以在下方评论咨询我。博主做过很多O2O示例
谢谢阅读.如果觉得对你有帮助请记得点赞或收藏.欢迎留言讨论.你的支持是我出产优秀博客的动力.
高德地图JS--批量规划步行路线 优化相关推荐
- vue[高德地图行车路径规划以及路线记录绘制操作]
最近的一个项目中需要根据需求将地图上画出一条高速公路,然后将这条高速公路的行车轨迹绘制成一条带有颜色路线以便后续插入内容. 看遍了不少高德地图的api内容以及搜索了不少的网上资源,发现可以通过路径规划 ...
- Python通过高德地图API批量计算两地路线距离
公司需求批量计算两地之间行车距离,故此记录一下,数据接口采用高德地图开发者api,需要注册,注册后免费版的数据量已够满足大多数使用. import pandas as pd import reques ...
- openlayers调用高德地图web服务绘制驾车路线规划
openlayers调用高德地图web服务绘制驾车路线规划 使用ol.geom.Polygon()函数将坐标点连接成线时,只连接数组中首末两点的坐标,是因为数组中的值并非number类型,需要将其进行 ...
- Android 高德地图自定义线路规划选择方案之后按照方案进行导航
Android 高德地图自定义线路规划选择方案之后按照方案进行导航 因为我这边导航需求的问题,导致我这边不能使用高德地图官方的线路规划和导航.所以我这边线路规划和导航界面都是根据高德地图那边给的api ...
- 高德地图 js API Loca 3D动画的使用说明
高德地图 js API Loca 3D动画的使用说明 我们在使用 Loca 制作地图动画时,里面有几个对应的动画效果,有 center: 平移 pitch: 视角 zoom: 缩放 rotation: ...
- Vue 高德地图 js API Loca 如何使用 连接线图层、脉冲连线图层
Vue 高德地图 js API Loca 如何使用 连接线图层.脉冲连线图层 阅读此文你需要已经了解并掌握的: 已经会使用常规地图的生成方式 已经了解如何载入 Loca 插件 如果不了解,可以查看我之 ...
- 高德地图某一城市地铁路线高亮解决方案
高德地图某一城市地铁路线高亮解决方案 项目刚好有一个需求,在地图上按需高亮全部或者某一条地铁线路.找了蛮久没找到什么好的解决方案(也可能是自己菜),那就只能自己投机取巧咯.不多说上代码. <!- ...
- 路痴福音!高德地图上线真AR步行导航,可实景指引
2月8日消息,高德地图近日发布V10.76新版本,上线真AR步行导航,借助智能定位.地图导航与AR渲染等技术,可在真实拍摄的道路画面上,呈现更加直观的3D实景指引,帮助方向感不强的用户解决起步找方向难 ...
- cordova下使用高德地图js api在4g流量下定位失败问题的解决
问题描述 cordova页面中使用高德地图js api AMap.Geolocation的geolocation.getCurrentPosition()方法进行定位 用手机4g打开该页面,定位失败, ...
- 在vue项目中使用高德地图JS API
在vue项目中使用高德地图JS API,而不是amap依赖包~ 一. 必做的准备工作 注册账号并申请key 首先,注册开发者账号,成为高德开放平台开发者 登陆之后,在进入「应用管理」 页面「创建新应用 ...
最新文章
- 【Qt】Qt多屏编程,在指定显示屏上显示指定对话框
- 隐马尔科夫模型HMM(一)HMM模型
- linux / pkg-config 原理及用法
- mysql开窗函数over_sql中的开窗函数over()
- 【渝粤教育】国家开放大学2018年春季 0233-21T学前儿童语言教育 参考试题
- codeforces-1201 C Maximum Median
- CentOS7.2安装Oracle12.1.0.2
- 解决 Xshell6|Xftp6 强制升级
- nba篮球大师服务器维护,NBA篮球大师怎么进不去 NBA篮球大师黑屏闪退解决方法...
- Python实现获得所有拼音为某个拼音的所有汉字
- 其他笔记 - matlab代码转换为python代码(SMOP、numpy)
- 读书:在别人的盯梢儿和嚼舌根中茁壮成长 | 杂谈
- 郑捷《机器学习算法原理与编程实践》学习笔记(第三章 决策树的发展)(三)_Scikit-learn与回归树...
- 如何进行网站防篡改监控
- 【前端微服务化】使用飞冰搭建前端微服务化框架
- 2144775-48-2,D-Biotin-PEG6-Thalidomide可用于cereblon(CRBN)结合和置换分析
- java类型的数组初始化_java数组初始化详解
- modis 通道简介
- mysql sql 多表更新语句_MySQL跨表、多表更新SQL语句总结
- 前后端分离的企业级微服务多租户系统架构,快速开发平台!