js-高德地图规划路线

这篇博客介绍了如何利用JavaScript结合高德地图API来实现路线规划功能,包括设定禁行区域、搜索地图点、设置起点终点及途径点,并在经过禁行区域时提供提示。此外,还涉及到路线规划成功后的路书保存。文章提供了关键步骤和部分代码示例。
摘要由CSDN通过智能技术生成

这里写图片描述

高德地图路线规划

功能描述:
1,画出红色折线,设置为禁行区域;
2,可以搜索地图上的点
3,可以设置起点,终点,途径点禁行规划路线,如果经过禁行区域则禁行提示,可以拖动更改路线,直到规划成功。
4,规划成功后可以查询这条规划的线路,并配上路书。(路书保存到后台的数据有指令这个节点就是路书信息,这里略去)

下面给出大概的思路和部分代码
1,加载地图画出禁行区域

//基本地图加载
map = new AMap.Map("container", {
    resizeEnable: true,
    center: [120.295655, 31.569756],//地图中心点
    zoom: 13 //地图显示的缩放级别
});

var jxroutes = "";
<c:forEach var="map" items="${mapList}">  
    jxroutes += '${map.NAME}';
    var lineArr = eval('${map.POINTS}');
    var polyline = new AMap.Polyline({
    path: lineArr,          //设置线覆盖物路径
    //strokeColor: "#3366FF", //线颜色
    strokeColor: "#FF0000", //线颜色
    strokeOpacity: 1,       //线透明度
    strokeWeight: 8,        //线宽
    strokeStyle: "solid",   //线样式
    strokeDasharray: [10, 5] //补充线样式
});
polyline.setMap(map); 
</c:forEach>  

2,输入提示后查询

//输入提示
var autoOptions1 = {
     city: "无锡", 
     input: "tipinput1"
 };
var autoComplete = new AMap.Autocomplete(autoOptions1);     
var placeSearch = new AMap.PlaceSearch({
    city: "无锡", //城市
    map: map
  });  //构造地点查询类
  //注册监听,当选中某条记录时会触发
AMap.event.addListener(autoComplete, "select", select);
//回车也会触发查询
function EnterPress(e){
    //传入 event   
    var e = e || window.event;   
    if(e.keyCode == 13){ 
             search(document.getElementById("tipinput1").value);
    }
  }

function select</
在Vue.js中结合高德地图规划出行路线,可以分为以下几步操作: 1. 引入依赖:安装`@vue-amap/core`和`@vue-amap/router-plugin`库,这两个是基于Vue的AMAP官方组件包,可以在项目中通过npm或yarn安装。 ```bash npm install @vue-amap/core @vue-amap/router-plugin ``` 2. 配置AMAP:在main.js或Vuex中初始化高德地图,提供key和默认中心点。 ```javascript import AMap from '@vue-amap/core' AMap.initAMapApiLoader({ key: 'your_amap_key', // 在高德官网申请的地图API Key v: '1.4.17' // 使用的高德地图版本 }); ``` 3. 创建地图组件:创建一个新的Vue组件,例如`MapView.vue`,然后引入AMap组件和对应的插件。 ```html <template> <div ref="map" :style="{width: '100%', height: '100%'}"></div> </template> <script> import { Map } from '@vue-amap/core' import Router from '@vue-amap/router-plugin' export default { components: { Map }, mounted() { const map = new Map(this.$refs.map, { zoom: 8, center: [116.39, 39.9] }) // 设置地图初始位置 this.$router.use(Router, map) // 初始化路由管理器 } } </script> ``` 4. 路线规划功能:在需要规划路径的地方,使用`amap.services.route.calculateRoute()`函数。这通常在点击“开始导航”按钮触发的事件处理器里实现。 ```javascript methods: { planRoute(start, end) { if (!start || !end) return AMap.plugin('AMap.services', () => { let router = new AMap.Routing(); router.calculate( start, // 起始地点坐标 end, // 终点地点坐标 { // 参数配置 prefer: 'driving', // 行驶模式选择 resultType: 'all' // 返回结果类型 }, res => { console.log(res) // 根据返回结果显示或保存路径 }, err => { console.error(err) } ); }); } } ``` 5. UI交互:在UI设计上添加起点和终点输入框,以及“开始导航”按钮,当用户输入地址并点击时,触发`planRoute`方法。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值