使用地图写路径规划

简介: 使用地图写路径规划

我们写的路径规划,是根据用户点击中国地图的次数为准的,进入页面,鼠标点击一次,就是需要规划的起点。点击第二次,就是终点,当点击完两次后,路径规划自动执行。


下面是详细代码,只需改变代码中key与密钥的值,改变成自己请求的值即可。

<!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">
    <title>位置经纬度 + 驾车规划路线</title>
    <style type="text/css">
      html,
      body,
      #container {
        width: 100%;
        height: 100%;
      }
 
      #panel {
        position: fixed;
        background-color: white;
        max-height: 90%;
        overflow-y: auto;
        top: 10px;
        right: 10px;
        width: 280px;
      }
 
      #panel .amap-call {
        background-color: #009cf9;
        border-top-left-radius: 4px;
        border-top-right-radius: 4px;
      }
 
      #panel .amap-lib-driving {
        border-bottom-left-radius: 4px;
        border-bottom-right-radius: 4px;
        overflow: hidden;
      }
 
      .map {
        height: 100%;
        width: 100%;
        float: left;
      }
    </style>
    <link rel="stylesheet" href="https://a.amap.com/jsapi_demos/static/demo-center/css/demo-center.css" />
    <script src="https://a.amap.com/jsapi_demos/static/demo-center/js/demoutils.js"></script>
 
    <script type="text/javascript" src="https://cache.amap.com/lbs/static/addToolbar.js"></script>
  </head>
 
  <body>
    <!-- 结构 -->
    <div id="container" class="map"></div>
    <div id="panel"></div>
    <div class="input-card">
      <h4>左击获取经纬度:</h4>
      <div class="input-item">
        <input type="text" readonly="true" id="lnglat">
      </div>
    </div>
 
    <!-- 密钥 -->
    <script type="text/javascript">
      window._AMapSecurityConfig = {
        securityJsCode: "密钥",
      };
    </script>
    <!-- key -->
    <script type="text/javascript"
      src="https://webapi.amap.com/maps?v=2.0&key=key的值&plugin=AMap.Driving">
    </script>
    <script type="text/javascript">
      //基本地图加载
      // 创建一个新的AMap地图实例,并将其绑定到页面上id为"container"的div元素上
      var map = new AMap.Map("container", {
        // 允许地图自动调整大小以适应其容器的大小变化  
        resizeEnable: true,
        center: [116.397428, 39.90923], //地图中心点
        zoom: 13 //地图显示的缩放级别
      });
      // 声明变量为起点和终点
      let start, end;
      //为地图注册click事件获取鼠标点击出的经纬度坐标
      let clickCount = 0;
      //构造路线导航类
      var driving = new AMap.Driving({
        map: map,
        panel: "panel"
      });
      // 给map绑定点击事件
      map.on('click', function(e) {
        clickCount++; // 每次点击时增加点击次数
        // 判断奇偶数,当为奇数时,就作为起点
        if (clickCount % 2 == 1) {
          // 第一次点击,设置起点
          document.getElementById("lnglat").value = e.lnglat.getLng(), e.lnglat.getLat();
          start = new AMap.LngLat(e.lnglat.getLng(), e.lnglat.getLat());
          console.log(start);
          // 否咋就是为偶数时 作为终点
        } else {
          // 第二次点击,设置终点并规划路线
          document.getElementById("lnglat").value = e.lnglat.getLng(), e.lnglat.getLat();
          end = new AMap.LngLat(e.lnglat.getLng(), e.lnglat.getLat());
          console.log(end);
          // 根据起终点经纬度规划驾车导航路线
          driving.search(start, end, function(status,
            result) {
            // result 即是对应的驾车导航信息,相关数据结构文档请参考  https://lbs.amap.com/api/javascript-api/reference/route-search#m_DrivingResult
            if (status === 'complete') {
              log.success('绘制驾车路线完成')
            } else {
              log.error('获取驾车数据失败:' + result)
            }
          });
        }
      });
    </script>
  </body>
 
</html>
目录
相关文章
|
索引
Google Earth Engine(GEE)——提取指定矢量集合中的NDVI值并附时间属性
Google Earth Engine(GEE)——提取指定矢量集合中的NDVI值并附时间属性
334 2
|
安全 Java 容器
阿里巴巴编码规范(Java)证明(下)
阿里云上有个阿里巴巴编码规范认证,我估算一下时间成本很低,多个认证也没什么坏处,就花了1分钱报了个名。这个认证报名后就可以下载链接下的编码规范,然后参加个考试应该就OK了。 共48页的规范实际上每读一遍都是要花一些时间的,因为每读一遍就会发现上面有些东西我不信。我需要去证明。过去证明过的因为JDK版本升级迭代有可能需要继续证明。下面是其中的一些证明过程。
1056 1
阿里巴巴编码规范(Java)证明(下)
|
11月前
|
Java 定位技术
Threejs路径规划案例V1
这篇文章详细介绍了使用Three.js进行三维路径规划的实现方法,包括设置三维场景、实现车辆避障以及展示规划路径等内容。
237 1
|
存储 Swift 对象存储
OpenStack的对象存储(Swift)
【8月更文挑战第24天】
465 1
|
10月前
|
人工智能 安全 搜索推荐
虚拟现实(VR):重塑教育与培训的未来
随着科技的飞速发展,虚拟现实(Virtual Reality,简称VR)技术逐渐从科幻走向现实,成为改变我们生活和工作方式的重要力量。特别是在教育与培训领域,VR技术的应用正日益显示出其巨大的潜力和价值。本文将从三个部分探讨虚拟现实如何重塑教育与培训的未来:一是VR技术在教育中的应用现状;二是VR如何提升学习体验和培训效果;三是VR技术在教育与培训中的挑战与展望。
308 5
|
缓存
【已解决】npm安装依赖报错: npm ERR! cb() never called! npm ERR! This is an error with npm itself.
【已解决】npm安装依赖报错: npm ERR! cb() never called! npm ERR! This is an error with npm itself.
3339 0
|
10月前
|
Java Docker 微服务
利用Docker容器化部署Spring Boot应用
利用Docker容器化部署Spring Boot应用
208 0
|
XML 消息中间件 Java
Spring Boot 3.0发布,最低支持Java 17,新特性介绍
Spring Boot 3.0正式发布,距离Spring 2.0发布过去了4年半时间。最低支持Java 17,Spring Framework 6.0.本文详细介绍Spring Boot 3.0 新特性。
6202 12
Spring Boot 3.0发布,最低支持Java 17,新特性介绍
|
Java 数据管理 数据格式
SpringBoot 原生实现第三方登录 | 不借助第三方依赖包
SpringBoot 原生实现第三方登录 | 不借助第三方依赖包
347 1
|
网络协议 Java Maven
springboot + dockerfile-maven-plugin 整合
springboot + dockerfile-maven-plugin 整合
466 0