这篇文章主要介绍了vue 使用高德地图vue-amap组件过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

首先

npm install -S vue-amap

然后在 main.js

import VueAMap from 'vue-amap'; //注意不要和 AMap原始名称覆盖

Vue.use(VueAMap);

// 初始化vue-amap

VueAMap.initAMapApiLoader({

// 高德的key

key: 'you key',

// 插件集合

plugin: ['AMap.Autocomplete', 'AMap.PlaceSearch', 'AMap.Scale', 'AMap.OverView', 'AMap.ToolBar', 'AMap.MapType', 'AMap.PolyEditor', 'AMap.CircleEditor','AMap.Geolocation'],

v: '1.4.4'

});

map.vue文件

其中有个BUS.js,是基于观察者模式的发布订阅封装

  • {{item.address}}

    {{item.name}}

.amap-page-container{

height: 300px;

position: relative;

}

.search-box {

position: absolute !important;

top: 25px;

left: 20px;

z-index: 200 !important;

}

.amap-demo {

height: 300px;

}

.amap-logo {

display: none;

}

.amap-copyright {

bottom:-100px;

display: none;

}

.amap-scalecontrol{

bottom: 4px !important;

}

.amap-geolocation-con{

bottom: 30px !important;

z-index: 199 !important;

}

ul li.active{

color: deeppink;

}

export default {

name: 'amap-page',

components: {},

data() {

var me = this;

me.city = me.city || '武汉';

return {

list:[],

currIndex:0,

zoom: 16,

center: [114.397169, 30.50576],

events:{

init: (o) => {

o.setCity(me.city,result => {

console.log("----------setCity",result);

if(result && result.length > 0){

me.zoom = 16;

me.makerConf.position = result;

me.getList(result);

}

});

//去掉logo

document.getElementsByClassName("amap-logo")[0].style.display = "none";

},

"dragend":function(e){

//console.log("dragging",e,this.getCenter());

var point = this.getCenter();

var pos = [point.lng,point.lat];

me.makerConf.position = [point.lng,point.lat];

me.getList(pos);

}

},

makerConf: {

position: [114.397169, 30.50576],

content:""

},

searchOption: {

city: me.city,

citylimit: true

},

plugin:[

'ToolBar',

'Scale',

{

pName: 'Geolocation',

events: {

init(o) {

},

complete:function(result){

//定位成功

var address = result.formattedAddress

var point = result.position;

var obj = {

address:address,

name:"",

location:point

}

me.list = [obj];

me.makerConf.position = [point.lng,point.lat];

},

error:function(){

}

}

}

]

};

},

created(){

var me = this;

},

mounted(){

},

methods: {

select:function(item,index){

var me = this;

me.currIndex = index;

var point = item.location;

me.makerConf.position = [point.lng,point.lat];

me.center = [point.lng,point.lat];

},

//this.$refs.map.$$getCenter()

getList:function(result){

//获取列表

var me = this;

me.$Geocoder({

lnglatXY:result,

success:function(res){

if(res.regeocode && res.regeocode.pois){

me.list = res.regeocode.pois;

}else{

me.list = [];

}

},

error:function(res){

me.list = [];

}

});

},

onSearchResult(pois) {

//搜索

let latSum = 0;

let lngSum = 0;

var me = this;

var mymap = me.$refs.map.$$getInstance();

if (pois && pois.length > 0) {

//如果长度为1则无需转化

var poi = pois[0];

var lng = poi["lng"];

var lat = poi["lat"];

me.center = [lng, lat];

me.makerConf.position = [lng, lat];

//me.makerConf.content = poi.name;

me.list = pois;

}else{

me.list = [];

}

},

$Geocoder(options){

//将坐标点转化为,详细地址

options = options || {};

if(AMap){

AMap.plugin(['AMap.Geocoder'], () => {

const geocoder = new AMap.Geocoder({

radius: options.radius || 1000,

extensions: options.extensions || "all"

})

var lnglatXY = options.lnglatXY || [114.397169, 30.50576]; //已知点坐标

geocoder.getAddress(lnglatXY, function(status, result) {

if (status === 'complete' && result.info === 'OK') {

options.success && options.success(result);

}else{

options.error && options.error(status,result);

}

});

});

}

}

},

"watch":{

list:function(){

this.currIndex = 0;

}

}

};

/*

me.$Geocoder({

lnglatXY:[center.lng, center.lat],

success:function(res){

console.log(res);

}

});

*

* */

bus.js

let instance = null;

class EventBus {

constructor() {

if (!instance) {

this.events = {};

instance = this;

}

return instance;

}

$emit(event, message) {

if (!this.events[event])

return;

const callbacks = this.events[event];

for (let i = 0, l = callbacks.length; i < l; i++) {

const callback = callbacks[i];

callback.call(this, message);

}

}

$on(event, callback) {

if (!this.events[event])

this.events[event] = [];

this.events[event].push(callback);

}

}

export default new EventBus();

效果图

https://elemefe.github.io/vue-amap/#/zh-cn/introduction/install

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

amap vueamap 与_vue 使用高德地图vue-amap组件过程解析相关推荐

  1. vue2(webpack)调用amap高德地图及其UI组件

    vue2(webpack)调用amap高德地图及其UI组件和标记物 aiprose 个人随笔上线,网址 aiprose.com 点击访问 https://www.aiprose.com/blog/3 ...

  2. 高德地图 Vue 中 加载 数据可视化 Loca 的方式

    高德地图 Vue 中 加载 数据可视化 Loca 的方式 今天想用 Loca 试试如何的,结果怎么都加载不上,我的代码是这样的 AMapLoader.load({key: "这个就不展示了& ...

  3. amap vueamap 与_vue中使用vue-amap(高德地图)

    因为项目要求调用高德地图,就按照官方文档按部就班的捣鼓,这一路上出了不少问题. 前言: vue-cli,node环境什么的自己安装设置推荐一个博客:https://blog.csdn.net/wula ...

  4. vue 获取用户位置 高德_Vue使用高德地图

    主要是想记录一下使用高德地图地位以及标记当前位置,搜索位置的过程. 创建Vue项目的流程 引入高德地图 在index.html 的head中引入代码. 复制代码 设置容器,初始化地图. .contai ...

  5. vue 定位所在地_vue使用高德地图,精确定位ip定位,获取城市、地区位置

    初心-杨瑞超个人博客诚邀您加入qq群(IT-程序猿-技术交流群): 757345416丨(IT-程序猿-技术交流2群): 936929828 1.高德地图准备 点进入网址:https://lbs.am ...

  6. vue 获取用户位置 高德_vue引入高德地图获取经纬度地址

    1.在index.html引入高德地图 //key找个适合例如:160cab8ad6c50752175d76e61ef92c50 2.在webpack.base.conf.js 配置引入 extern ...

  7. 高德地图api @amap/amap-jsapi-loader封装成方法(定位、点标记、路径规划、搜索等) 适用于vue等框架

    高德地图api 封装成公共方法用于项目中 目前封装的方法有 定位 点标记 比例尺插件 信息窗体 经纬度附近搜索 关键字搜索 交通路径规划(经纬度或地点名) 步行路径规划(经纬度或地点名) 经纬度获取地 ...

  8. 高德地图vue版本的截图打印功能

    需求:在高德地图中选择分辨率并进行截图打印功能 1.引入高德地图: (1)安装依赖 npm install vue-amap -S 或者淘宝镜像 cnpm install vue-amap --sav ...

  9. H5拖拽地址-高德地图VUE版

    注意:这是直接引入vue.js的,没有用脚手架webpack 如果用webpack有专门vue的高德地图,但是暂时还没看到里面有拖拽UI HTML的代码如下 1 <template id=&qu ...

最新文章

  1. 细节决定成败(竞赛错题经验总结)
  2. python核心数据类型_Python核心数据类型—元组
  3. python爬虫——论抓包的正确姿势和学好Javascript的重要性(1)
  4. 广州站 | 云原生 Serverless 技术实践营精彩回顾
  5. GPU Gems 3
  6. 操作系统(二十八)死锁的概念
  7. Android Gradle Plugin 源码阅读与编译
  8. Linux 用户管理命令id、su
  9. 石油化工静设备计算机辅助设计桌面系统,PV Desktop 石油化工静设备计算机辅助设计桌面系统简介...
  10. 设置springboot日志级别_Spring Boot 日志框架实践
  11. UVA 11582 Colossal Fibonacci Numbers!【数学】
  12. 备战双 11!蚂蚁金服万级规模 K8s 集群管理系统如何设计?
  13. python编程理论_Python并发编程理论篇,来看看
  14. xposed学习四:总结
  15. 《Linux编程》上机作业 ·001【Linux命令】
  16. 正则表达式(二)之元字符
  17. 安装Keil uVision5 破解失败
  18. danfoss 变频器的profinet通讯调试_西门子G120变频器S7-300之间的PN通讯
  19. Ubuntu安装GIMP
  20. xp系统计算机蓝屏,xp系统电脑一直蓝屏重启循环的原因和解决方法

热门文章

  1. 对A1A2A10B1B2N12排序
  2. c#同时上传文件和参数,Java接收的完整教程,炒鸡简单!网上的教程弱爆了!
  3. java调用clang编译的so_在Linux上编译LLVM/Clang等全部源代码
  4. MATLAB程序详细解析,遗传算法——matlab代码解析
  5. Android 应用开机自启和无需权限开启悬浮框
  6. 0.3 preface
  7. DataGrid与GridView的区别应用小实例
  8. SQL开头quoted和ansiNULL
  9. 如何将Netbeans配置更加合理
  10. GDAL交流 QQ群