Vue 高德地图 路径规划 画点

CDN 方式

<!--引入高德地图JSAPI -->
<script src="//webapi.amap.com/maps?v=1.4.13&key=您申请的key值"></script>

<!--引入UI组件库(1.0版本) -->
<script src="//webapi.amap.com/ui/1.0/main.js"></script>

配置externals 文件路径 build>webpack.base.conf.js > module.exports = {}

  externals: {
    ‘AMap‘: ‘AMap‘,
    ‘AMapUI‘: ‘AMapUI‘
  },

页面实现

<template>
  <div class="amap-page-container">
    <div id="container" style="width:100vw;height:70vh"></div>
  </div>
</template>

<script>
export default {
  data() {
    return {};
  },
  created() {
    // 配置
  },
  mounted() {
    this.$nextTick(() => {
      var map = new AMap.Map("container", {
        center: [116.397559, 39.89621],
        zoom: 14
      });
      // 定义图标信息
      var icon = new AMap.Icon({
        // 图标尺寸
        size: new AMap.Size(32, 46),
        // 图标的取图地址
        image:
          "http://a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-red.png",
        // 图标所用图片大小
        imageSize: new AMap.Size(32, 46)
      });
      // 文字描述内容
      var labelContent = "<span>1</span>";
      // 文字描述显示位置
      var labelOffset = new AMap.Pixel(8, 7);
      // 绘制坐标点
      var marker = new AMap.Marker({
        icon: icon,
        position: [116.303843, 39.983412],
        offset: new AMap.Pixel(-10, -46),
        title: 1,
        text: 1,
        label: {
          content: labelContent,
          offset: labelOffset
        }
      });
      marker.setMap(map);
      var labelContent = "<span>2</span>";
      var labelOffset = new AMap.Pixel(8, 7);
      var marker2 = new AMap.Marker({
        icon: icon,
        anchor: "center", //设置锚点
        position: [116.321354, 39.896436],
        offset: new AMap.Pixel(-10, -28),
        title: 2,
        clickable: true,
        bubble: true,
        label: {
          content: labelContent,
          offset: labelOffset
        }
      });
      marker2.setMap(map);    // 事件      AMap.event.addListener(marker, "click", function(e) {

debugger;

//得到的数据

});

AMap.event.addListener(marker2, "click", function(e) {

debugger;

//得到的数据

});

// 绘制路线
      map.plugin("AMap.TruckDriving", function() {
        var truckDriving = new AMap.TruckDriving({
          map: map,
          policy: 0, // 规划策略
          size: 1, // 车型大小
          width: 2.5, // 宽度
          height: 2, // 高度
          load: 1, // 载重
          weight: 12, // 自重
          axlesNum: 2, // 轴数
          province: "京", // 车辆牌照省份
          isOutline: true,
          outlineColor: "#ffeeee",
          hideMarkers: true
        });
        var path = [];
        path.push({ lnglat: [116.303843, 39.983412] }); //起点
        path.push({ lnglat: [116.321354, 39.896436] }); //途径
        path.push({ lnglat: [116.407012, 39.992093] }); //终点

        truckDriving.search(path, function(status, result) {
          // searchResult即是对应的驾车导航信息,相关数据结构文档请参考  https://lbs.amap.com/api/javascript-api/reference/route-search#m_DrivingResult
          if (status === "complete") {
            log.success("获取货车规划数据成功");
          } else {
            log.error("获取货车规划数据失败:" + result);
          }
        });
      });
    });
  },
  methods: {}
};
</script>
<style>
.amap-marker-label {
  border: 0px;
  background: rgba(255, 255, 255, 0);
  color: #fff;
  font-size: 17px;
  font-weight: 550;
  text-align: center;
}
</style>

NPM 方式

npm install vue-amap --save

配置main.js

import VueAMap from ‘vue-amap‘
// 初始化vue-amap
VueAMap.initAMapApiLoader({
  key: ‘您申请的key值‘,
  plugin: [
    ‘AMap.Autocomplete‘, // 输入提示插件
    ‘AMap.PlaceSearch‘, // POI搜索插件
    ‘AMap.Scale‘, // 右下角缩略图插件 比例尺
    ‘AMap.OverView‘, // 地图鹰眼插件
    ‘AMap.ToolBar‘, // 地图工具条
    ‘AMap.MapType‘, // 类别切换控件,实现默认图层与卫星图、实施交通图层之间切换的控制
    ‘AMap.PolyEditor‘, // 编辑 折线多,边形
    ‘AMap.CircleEditor‘, // 圆形编辑器插件
    ‘AMap.Geolocation‘, // 定位控件,用来获取和展示用户主机所在的经纬度位置
    ‘AMap.TruckDriving‘ // 路径规划
  ],
  v: ‘1.4.13‘
})
Vue.use(VueAMap)

页面实现

<template>
  <div class="amap-page-container">
    <el-amap
      :plugin="plugin"
      :amap-manager="amapManager"
      :zoom="zoom"
      :center="center"
      vid="amapDemo"
      ref="reds"
      style="width:100vw;height:80vh"
      :events="events"
    ></el-amap>
  </div>
</template>

<script>
import { AMapManager } from "vue-amap";
let amapManager = new AMapManager();
var map = amapManager.getMap();
export default {
  data() {
    let _obj = this;
    return {
      amapManager,
      center: [116.303843, 39.983412],
      plugin: [
        {
          pName: "Scale",
          events: {
            init(instance) {
              console.log(instance);
            }
          }
        }
      ],
      zoom: 12,
      events: {
        init(o) {
          _obj.createMap();
        }
      }
    };
  },
  created() {
    // 配置
  },
  mounted() {},
  methods: {
    createMap() {    
      let o = amapManager.getMap();

      var icon = new AMap.Icon({
        // 图标尺寸
        size: new AMap.Size(32, 46),
        // 图标的取图地址
        image:
          "http://a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-red.png",
        // 图标所用图片大小
        imageSize: new AMap.Size(32, 46)
      });
      var labelContent = "<span>1</span>";
      var labelOffset = new AMap.Pixel(8, 7);
      var marker = new AMap.Marker({
        icon: icon,
        position: [116.303843, 39.983412],
        offset: new AMap.Pixel(-10, -46),
        title: 1,
        text: 1,
        label: {
          content: labelContent,
          offset: labelOffset
        }
      });
      marker.setMap(o);
      var labelContent = "<span>2</span>";
      var labelOffset = new AMap.Pixel(8, 7);
      var marker2 = new AMap.Marker({
        icon: icon,
        anchor: "center", //设置锚点
        position: [116.321354, 39.896436],
        offset: new AMap.Pixel(-10, -28),
        title: 2,
        clickable: true,
        bubble: true,
        label: {
          content: labelContent,
          offset: labelOffset
        }
      });
      marker2.setMap(o);

      var truckDriving = new AMap.TruckDriving({
        map: o,
        policy: 0, // 规划策略
        size: 1, // 车型大小
        width: 2.5, // 宽度
        height: 2, // 高度
        load: 1, // 载重
        weight: 12, // 自重
        axlesNum: 2, // 轴数
        province: "京", // 车辆牌照省份
        isOutline: true,
        outlineColor: "#ffeeee",
        hideMarkers: true
      });

      var path = [];
      path.push({ lnglat: [116.303843, 39.983412] }); //起点
      path.push({ lnglat: [116.321354, 39.896436] }); //途径
      path.push({ lnglat: [116.407012, 39.992093] }); //终点

      truckDriving.search(path, function(status, result) {
        if (status === "complete") {
          console.log("获取货车规划数据成功");
        } else {
          console.log("获取货车规划数据失败:" + result);
        }
        // searchResult即是对应的驾车导航信息,相关数据结构文档请参考  https://lbs.amap.com/api/javascript-api/reference/route-search#m_DrivingResult
      });
      AMap.event.addListener(marker, "click", function(e) {
        debugger;
        //得到的数据
      });
      AMap.event.addListener(marker2, "click", function(e) {
        debugger;
        //得到的数据
      });
    }
  }
};
</script>
<style>
.amap-marker-label {
  border: 0px;
  background: rgba(255, 255, 255, 0);
  color: #fff;
  font-size: 17px;
  font-weight: 550;
  text-align: center;
}
</style>

原文地址:https://www.cnblogs.com/-Kam/p/11719430.html

时间: 2024-10-13 08:56:06

Vue 高德地图 路径规划 画点的相关文章

高德地图路径规划

高德地图导航sdk的路径规划获取行程信息主要用到AMapNaviManager这个类 然后调下面的方法 /*! @brief 带起点的驾车路径计算 @param startPoints 起点坐标.支持多个起点,起点列表的尾点为实际导航起点,其他坐标点为辅助信息,带有方向性,可有效避免算路到马路的另一侧. @param endPoints 终点坐标.支持多个终点,终点列表的尾点为实际导航终点,其他坐标点为辅助信息,带有方向性,可有效避免算路到马路的另一侧. @param wayPoints 途经点

iOS百度地图路径规划和POI检索详细总结-b

路径规划.png 百度地图的使用 百度地图API的导入网上说了许多坑,不过我遇到的比较少,这里就放两个比较常见的吧.坑一: 奥联WIFI_xcodeproj.png 如上图所示,在infoplist里加入这个字段,而且这里还可以设置提示的内容.不加的话,嘿嘿嘿,期待你的尝试.坑二:如下图 Pasted_Graphic_jpg.png 导入百度地图API运行之后报上图错误大约18到20个左右,解决方法添加libstdc++.6.0.9 的库.填完坑之后看一下我们今天要演示的效果吧. 路线规划图.g

ios百度地图-路径规划

百度地图的路径规划功能, 在使用百度路径的时候,出现了一些小问题,在此,分享一下自己的最简单的一个路径小demo 当然,前面的百度配置问题,我就不和大家讲了,因为这方面的资料太多了!现在,我来介绍一下这个小demo AppDelegate.m文件如下, #import "AppDelegate.h" import "rootViewController.h" @implementation AppDelegate (BOOL)application:(UIAppli

任我行二 - 高德地图篇3 - 画线

随机生成点 目前使用的是随机生成的点来绘制拆线. public void draw() {         Random random = new Random(100);         LatLng start= new LatLng(30.47523,114.385532);         List<LatLng> points = new ArrayList<LatLng>();         int i = 0;         while (i++ < 100

高德地图获取骑行距离,路线规划

1 高德地图路线规划  http://lbs.amap.com/api/javascript-api/reference/route-search 2 获取骑行距离 function getrding() { var map = new AMap.Map("container", { resizeEnable: true, center: [116.397428, 39.90923],//地图中心点 zoom: 16 //地图显示的缩放级别 }); //两个经纬度 自己定位获取到 va

iOS高德地图使用-搜索,路径规划

项目中想加入地图功能,使用高德地图第三方,想要实现确定一个位置,搜索路线并且显示的方法.耗了一番功夫,总算实现了. 效果 WeChat_1462507820.jpeg 一.配置工作 1.申请key 访问 http://lbs.amap.com/dev/key/ 在高度地图第三方开发平台申请一个key,注册账户,新建应用,这个没什么门槛.得到这个key 屏幕快照 2016-05-06 上午10.34.15.png 提示一下,这个key对应的bundle ID 要和工程里面的bundle ID 相同

iOS第三方地图-高德地图(导航sdk路径规划)

高德地图导航sdk的路径规划获取行程信息主要用到AMapNaviManager这个类 然后调下面的方法 /*! @brief 带起点的驾车路径计算 @param startPoints 起点坐标.支持多个起点,起点列表的尾点为实际导航起点,其他坐标点为辅助信息,带有方向性,可有效避免算路到马路的另一侧. @param endPoints 终点坐标.支持多个终点,终点列表的尾点为实际导航终点,其他坐标点为辅助信息,带有方向性,可有效避免算路到马路的另一侧. @param wayPoints 途经点

用高德地图做的驾车路径规划及在上面显示实时运行情况

此处是为了打车软件路径显示效果而做的一个demo,如下图所示: 上图中起点是定位点坐标,由于是实时导航GPS的时候所用,在移动情况下才会显示出小车在规划好的路径上面行驶(即蓝色线上),若不按线上的移动则会重新规划路径,由于没有对坐标点进行保存,所以移动效果是跳动的,不连贯.由于接触的接触地图的时间比较的端,所以有些功能还不是很完善,在项目完成后会对代码进行相应的操作. 其实现的主要代码如下(代码中对GPS连接及网络连接做了相应的判断): @Override protected void onCr

【高德地图API】从零开始学高德JS API(五)路线规划——驾车|公交|步行

先来看两个问题:路线规划与导航有什么区别?步行导航与驾车导航有什么区别? 回答: 1.路线规划,指的是为用户提供3条路线推荐.[高德]在提供路线规划的时候,会提供用户自定义路线规划功能,这是别家没有做到的.导航,指的是为驾车用户提示路口信息,向左向右,进入匝道等信息. 2.我们这里说的步行导航和驾车导航,严格的说,应该是路线规划.从A地到B地,如果是驾车,路线规划会将公路路网做为搜索数据:如果是步行,过街天桥.地下通道.人行道做为搜索数据. ---------------------------