【Openlayers】完全前端实现 驾车路径规划

1.说明:

  • OL官网上没有路线规划的API,我就套用高德地图的API,把渲染后的数据在OL上进行渲染。往深了说,我们就是需要高德的API的数据而已。其他没有什么难。
  • 我的代码实现流程是:先加载高德地图的API和工具,保证需要的工具加载完成后,再进行OL地图的加载和使用。其他就是使用高德API和OL的地图渲染了。没有什么。

2.效果:

3.代码:

  • 先加载高德工具:
        _init: function() {
          // 

          // 高德初始化准备
          me._gd(function() {
            // 
            me._ol_map();

            me._drive();
          });

        },
        // 高德初始化
        _gd: function(cb) {
          me.gd_map = new AMap.Map("map_gd", {
            zoom: me.conf.gd_map.zoom,
            zooms: me.conf.gd_map.zooms,
          });
          me.gd_map.on('complete', function(e) {
            me.gd_map.plugin(["AMap.Driving"], function() {
              //构造路线导航类
              me.all_obj.drive.drive_tool = new AMap.Driving({
                map: me.gd_map,
              });


              cb && cb();
            });
          });
        },
  • 拿到工具后进行选点和请求数据,渲染
  • 注意:OL用的高德图层坐标系是GCJ02,所以拿过来的数据可以直接使用,但是使用天地图的话,用的是84坐标系,需要进行坐标转换
  • 源码
对于使用OpenLayers进行高德地图的路径规划,你可以按照以下步骤进行操作: 1. 首先,确保已经引入OpenLayers和高德地图的API,可以使用以下代码引入: ```html <script src="https://cdn.bootcdn.net/ajax/libs/openlayers/6.5.0/ol.js"></script> <script src="https://webapi.amap.com/maps?v=2.0&key=YOUR_AMAP_API_KEY"></script> ``` 其中,将`YOUR_AMAP_API_KEY`替换为你自己的高德地图API密钥。 2. 创建一个地图容器,可以使用以下代码创建一个具有特定中心点和缩放级别的地图: ```javascript var map = new ol.Map({ target: 'map-container', // 替换为你的地图容器的ID layers: [ new ol.layer.Tile({ source: new ol.source.OSM(), }), ], view: new ol.View({ center: ol.proj.fromLonLat([YOUR_LONGITUDE, YOUR_LATITUDE]), // 替换为你的地理坐标 zoom: YOUR_ZOOM_LEVEL, // 替换为你的缩放级别 }), }); ``` 请将`YOUR_LONGITUDE`和`YOUR_LATITUDE`替换为你所需的地理坐标,将`YOUR_ZOOM_LEVEL`替换为你需要的缩放级别。 3. 创建路径规划服务对象,并调用路径规划接口进行路径规划。以下是一个简单的示例代码: ```javascript // 创建路径规划服务对象 var drivingService = new AMap.Driving({ map: map, // 将地图对象传入,用于展示规划结果 panel: 'result-panel', // 替换为你的结果面板的ID,用于展示文字结果 }); // 调用路径规划接口进行规划 drivingService.search([ { keyword: '起点地址' }, { keyword: '终点地址' }, ], function(status, result) { if (status === 'complete') { console.log('规划成功'); console.log(result); // 输出规划结果 } else { console.log('规划失败'); } }); ``` 请将`起点地址`和`终点地址`替换为你需要规划的起点和终点地址。你可以将规划结果展示在地图上,并在结果面板中展示文字结果。
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值