看了github上面有集成的高德地图组件,但由于项目所要用到的不多,所以决定跟着文档写一写.运行环境是vue-cli webpack

引入高德地图

一般用使用vue-cli webpack最简单粗暴的引入地图api的方法就是,在入口index.html的头部直接引入,记得一定要带上key,如果没有的话去高德地图api的官网申请一个。传送门如下:

这样你将所有的高德地图api引入你的项目,到这里你肯定会问,vue每个组件该怎么直接调用呢?

往下~

创建一个地图组件

vue创建组件不赘述

首先你得有一个高德地图实例。所以,new一个嘛。建议将地图的实例化写在methods中,然后在mounted中调用方法。

let mapObj = new AMap.Map('map-location', {//'map-location'是对应页面盒子的id

resizeEnable: true, //自适应大小

zoom: 13//初始视窗

});

// AMap是高德地图的构造函数,这里.Map是创建地图,.Marker是创建坐标点

这样你就创建一张地图,一个只有地图的地图:},这样当然不行,下面就介绍使用地图的三种API

地图描点

在使用上述方法创建地图实例后,直接调用AMap的Marker方法

marker = new AMap.Marker({

map: _this.mapObj,

position: new AMap.LngLat('经度', '纬度') //此处根据页面数据可以直接传入经纬度进行描点

})

传入两个点的经纬度坐标绘制路线

调用AMap的server方法,第一个参数可以有三种选择:

步行

打车

公交

第二个参数是一个回调函数,在里面实例化步行路线,代码如下

AMap.service('AMap.Walking', function() { //回调函数

var MWalk = new AMap.Walking({

map: _this.mapObj

}); //构造路线导航类

MWalk.search(['当前经度', '当前纬度'], ['目标经度', '目标纬度'], function(status, result) {})

})

用户定位

第一步当然是创建地图实例,由于定位不需要展示地图,所以可以将地图挂载的盒子css样式设置为宽高都设置为0,这样就不影响页面的布局

let mapObj = new AMap.Map('iCenter') //iCenter是id容器名称

创建实例之后需要使用高德地图的一个定位插件,AMap.Geolocation,用plugin方法调用

mapObj.plugin('AMap.Geolocation', function() {})

在回调函数中,实例化一个定位的实例geolocation,可以配置相关参数

geolocation = new AMap.Geolocation({

timeout: 10000,

GeoLocationFirst: false,

maximumAge: 0 //定位结果缓存0毫秒,默认:0

});

mapObj.addControl(geolocation)

geolocation.getCurrentPosition()

监听定位是否成功还是失败,成功则可以得到当前位置的经度和纬度

AMap.event.addListener(geolocation, 'complete', function(data) {

data.position.getLng() //定位成功返回的经度

data.position.getLat() //定位成功返回的纬度

}); //返回定位信息

AMap.event.addListener(geolocation, 'error', function(data) {

if (data.info == 'FAILED') {

alert('获取您当前位置失败!')

}

});

有啥问题欢迎咨询,有错误也欢迎指出,谢谢~

----------分割线-----------

这篇文章写于两年前了,期间各项技术都有了重大更新,因近期阅读人数较多,如果各位发现了什么更新的api请指出,我将对文章进行修改~

----------2020.3.30--------

最近使用vue cli3 也遇到了使用地图需求,加了一点优化的东西:

全局使用AMap这个构造函数可以通过在vue.config.js中这么配置

configureWebpack: {

externals: {

// 全局常量定义出,也可以是window下的实例

'AMap': 'AMap' // 高德地图配置

}

},

再在对应的地图组件中这样使用

import AMap from 'AMap'

还是很方便的

vue使用高德地图画电子围栏_Vue.js 中使用高德地图定位及渲染地图相关推荐

  1. vue 把组件挂载到视图_vue.js中,在一个vue组件中,想通过点击按钮,才加载另外一个目标vue组件,要怎么实现?...

    展开全部 { data: { showcom: false } methods: { onclick: function () { this.showcom = true; } } } Vue.js( ...

  2. vue中使用高德地图画电子围栏

    vue中使用高德地图画电子围栏 思路:根据项目的需求,给某个区域画电子围栏,且必须得在规定区域内画,所有首先得有个区域先规定好,从后台获取规定区域的坐标点,让后就是画矩形,这里主要是画矩形,在不在圈内 ...

  3. vue使用高德地图画电子围栏_地理围栏-辅助功能-开发指南-iOS 定位SDK | 高德地图API...

    以下内容自 iOS 定位SDK V2.3.0 后支持. 第 1 步,引入头文件 在调用地理围栏功能的类中引入AMapFoundationKit.h和AMapLocationKit.h这两个头文件,注意 ...

  4. vue 扫码页面限制区域_Vue.js 单页面多路由区域操作的实例详解

    单页面多路由区域操作 在一个页面中有两个及以上的区域,需要通过设置路由的index.js,来操作这些区域的内容 app.vue 中设置: index.js中设置: import vue from 'v ...

  5. vue 懒人_Vue.js 中的实用工具方法【推荐】

    收集日常开发中常用到的一些工具方法, 包含 vue 的公用过滤器.公用指令等 (PS: 懒人养成记) 公用自定义过滤器 import Vue from 'vue' import moment from ...

  6. vue watch 修改滚动条_Vue.js 中滚动条始终定位在底部的方法

    Vue.js 中滚动条始终定位在底部的方法 发布于 2020-2-23| 复制链接 分享一篇关于vue 中滚动条始终定位在底部的方法,具有很好的参考价值,希望对大家有所帮助.一起跟随小妖过来看看吧 滚 ...

  7. vue滚动条禁止_vue.js中实现禁止浏览器滚动方法

    大家好,本次在开发项目中,点击按钮,弹出一个自定义的弹出窗口和遮罩层,因为页面的超出一屏,有滚动条,但是想让弹出窗时候,禁止浏览器滚动,那么就简单写一个方法给大家. 思路是这样的,当弹窗弹出时候,让b ...

  8. js定义全局变量 vue页面_vue.js中如何定义全局变量?

    vue.js中如何定义全局变量?下面本篇文章给大家介绍一下在 Vuejs 项目中如何定义全局变量.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. 在 Vuejs 项目中如何定义全局变 ...

  9. vue在created调用点击方法_vue.js中created方法的使用详解

    这次给大家带来vue.js中created方法的使用详解,使用vue.js中created方法的注意事项有哪些,下面就是实战案例,一起来看一下. 这是它的一个生命周期钩子函数,就是一个vue实例被生成 ...

最新文章

  1. c++ cin不能输入的问题
  2. c++ 模板教程(c语言中文网) 自己运行实例
  3. TypeScript 使用三个点号表示的 Rest 参数语法和 spread syntax
  4. Apache Accumulo 1.9.3 发布,高性能 K/V 存储方案
  5. java setfilter_Java – setFileFilter问题
  6. 查询语句的练习45道题
  7. R|ggplot2(七)|自定义主题
  8. 百度编辑器ueditor 的 submit 表单提交
  9. SPEI不同时间尺度的意义
  10. linux 常用软件推荐
  11. 物联卡中心:物联网卡代理商这么多,我怎么选?
  12. 在‘句子迷’爬取网友总结的方文山歌词并作词频统计
  13. 红警战网服务器端源码,红色警戒2战网平台完整版
  14. Hadoop生态系统
  15. Python爬虫入门-fiddler抓取手机新闻评论
  16. USB ncm虚拟网卡
  17. java批量发短信软件_如何获得批量短信的发送短信
  18. SAP采购业务发票校验和后继凭证关联与参考码逻辑关系
  19. [译] Erlang 之禅第一部分
  20. 在Linux(unix)中,以波浪线“~”开始的文件名

热门文章

  1. Angular / Ionic,React,Vue? 使用Stencil.js面向未来的应用程序!
  2. Python打包文件为exe,PyInstaller应用
  3. 教你用Python 每日定时推送睡前小故事给你__的人
  4. jinja2模板用法详解
  5. LeetCode 题 - 69. x 的平方根 python解法
  6. 浮点类型误区 “!=”
  7. 算法中的算子是什么意思,图像处理一样理解
  8. jQuery框架学习第三天:如何管理jQuery包装集
  9. 漫步线性代数二十六——特征值和特征向量(续)
  10. 深度学习:优化方法——momentum、Nesterov Momentum、AdaGrad、Adadelta、RMSprop、Adam