zoukankan      html  css  js  c++  java
  • vue 项目使用百度地图画行走的路线

    首先安装百度地图的npm vue-baidu-map

    npm i --save vue-baidu-map

    安装完之后 在main.js引用

    import BaiduMap from 'vue-baidu-map'
     
    Vue.use(BaiduMap, {
        ak: 'ne52jEbvgvLx7kdY0O1g6LXrVhNLEGhhg'//百度地图密钥
    });

    然后在需要的页面上调用,示例如下

    <template>
      <div class="content">
        <baidu-map class="map" :center="map.center" :zoom="map.zoom" @ready="handler">
          <!--缩放-->
          <bm-navigation anchor="BMAP_ANCHOR_TOP_LEFT"></bm-navigation>
          <!--定位-->
          <bm-geolocation anchor="BMAP_ANCHOR_BOTTOM_RIGHT" :showAddressBar="true" :autoLocation="true"></bm-geolocation>
          <!--点-->
          <bm-marker :position="map.center" :dragging="map.dragging" animation="BMAP_ANIMATION_DROP">
          </bm-marker>
        </baidu-map>
      </div>
    </template>
    
    <script>
      export default {
        name: "demo",
        data: () => ({
          map: {
            center: { lng: 113.763924, lat: 22.938634 },
            zoom: 18,
            show: true,
            dragging: true
          },
        }),
        methods: {
          handler({ BMap, map }) {
            // 鼠标缩放
            map.enableScrollWheelZoom(true);
            // 点击事件获取经纬度
            var path = [];//本人的示例是要走规定经过的路线,所以中间有多经过点
            path.push([113.763924, 22.938634])
            path.push([113.759621, 22.933625])
    
            path.push([113.759621, 22.933625])
            path.push([113.76654, 22.934174])
    
            path.push([113.76654, 22.934174])
            path.push([113.766558, 22.932916])
    
            path.push([113.766558, 22.932916])
            path.push([113.768745, 22.93173])
    
            path.push([113.768745, 22.93173])
            path.push([113.76945, 22.930731])
    
            path.push([113.76945, 22.930731])
            path.push([113.772022, 22.93014])
    
            path.push([113.772022, 22.93014])
            path.push([113.775806, 22.932607])
    
            map.centerAndZoom(new BMap.Point(116.404, 39.915), 11);
            for (let i = 0; i < path.length; i += 2) {
              var walking = new BMap.WalkingRoute(map, {
                renderOptions: {
                  map: map,
                  autoViewport: true
                },
                onPolylinesSet: function (routes) {
                  let searchRoute = routes[0].getPolyline();//导航路线
                  map.removeOverlay(searchRoute);//移除查询出来 的路线
                },
                onMarkersSet: function (routes) {
                  map.removeOverlay(routes[0].marker); //删除起点
                  map.removeOverlay(routes[routes.length - 1].marker); //删除终点
                }
              });
              let _this = this;
              var start = new BMap.Point(path[i][0], path[i][1]);
              var end = new BMap.Point(path[i + 1][0], path[i + 1][1]);
              walking.search(start, end);
              walking.setSearchCompleteCallback(function () {
                var plan = walking.getResults().getPlan(0);
                for (let j = 0; j < plan.getNumRoutes(); j++) {
                  var pts = plan.getRoute(j).getPath();
                  var polyline = new BMap.Polyline(pts, { strokeColor: "#ff0000", strokeWeight: 5, strokeOpacity: 1 });//重新划路线
                  map.addOverlay(polyline);
                }
              })
            }
            map.addEventListener('click', function (e) { // 点击地点获取经纬度
              console.log(e.point.lng, e.point.lat)
            })
          }
        },
        mounted() {
    
        },
      }
    </script>
    
    <style scoped>
      .map {
         100%;
        height: 100%;
      }
    
      span {
        display: none;
      }
    
      .content {
         100%;
        height: 100%;
        position: absolute;
        left: 0;
        top: 0;
      }
    </style>
  • 相关阅读:
    code review
    设计原则
    知识点介绍
    REST API
    第四章 模块化React和Redux应用
    第3章 从Flux到Redux
    第二章 设计高质量的React组件
    React和Jquery比较
    第一章 React新的前端思维方式
    封装一个获取module.exports内容的方法
  • 原文地址:https://www.cnblogs.com/huzhuhua/p/14043281.html
Copyright © 2011-2022 走看看