主要是想记录一下使用高德地图地位以及标记当前位置,搜索位置的过程。

创建Vue项目的流程

引入高德地图

在index.html 的head中引入代码。

复制代码

设置容器,初始化地图。

.container { // 容器大小 margin-left: 10%; width: 80%; height: 300px;}

mounted() { this.initMap()},

methods: { initMap() { this.map = new AMap.Map('container', { zoom:11,//级别 center: [116.397428, 39.90923],//中心点坐标 }); }}

复制代码

这样,地图显示就完成了

使用的插件

AMap.Geolocation      定位,提供了获取用户当前准确位置、所在城市的方法

AMap.Autocomplete  输入提示,提供了根据关键字获得提示信息的功能

AMap.PlaceSearch     地点搜索服务,提供了关键字搜索、周边搜索、范围内搜索等功能

AMap.Geocoder         地理编码与逆地理编码服务,提供地址与坐标间的相互转换

点击地图进行标记

因为我需要在点击后显示当前位置。所以需要根据选中的位置坐标去查找对应的地址,所以需要使用到插件AMap.Geocoder

loadClickMap() { let vm = this this.map.on('click', function(e) { let lng = e.lnglat.getLng() let lat = e.lnglat.getLat() // 这里通过高德 SDK 完成。根据坐标点获取地址 var geocoder = new AMap.Geocoder({ radius: 1000, extensions: "all" }); geocoder.getAddress([lng, lat], (status, result) => { if (status === 'complete' && result.info === 'OK') { if (result && result.regeocode) { if(vm.preMark) { vm.map.remove(vm.preMark); } let serviceAddress = result.regeocode.formattedAddress; var marker = new AMap.Marker({ map: vm.map, icon : require("../assets/location.png"), position: [e.lnglat.getLng(), e.lnglat.getLat()], offset: new AMap.Pixel(-13, -30), label: { content: "

"+serviceAddress+"

", direction: 'top' // 文本标注方位 可选值:'top'|'right'|'bottom'|'left'|'center',默认值:'right' } });// 获取到位置 vm.preMark = marker; } } }); });},

复制代码

定位

需要引入高德提供的插件

复制代码

加载插件,自定义回调方法

getCurrentLocation() { let vm = this vm.map.plugin('AMap.Geolocation', function() { var geolocation = new AMap.Geolocation({ enableHighAccuracy: true,//是否使用高精度定位,默认:true timeout: 10000, //超过10秒后停止定位,默认:无穷大 maximumAge: 0, //定位结果缓存0毫秒,默认:0 convert: true, //自动偏移坐标,偏移后的坐标为高德坐标,默认:true showButton: true, //显示定位按钮,默认:true buttonPosition: 'RB', //定位按钮停靠位置,默认:'LB',左下角 buttonOffset: new AMap.Pixel(10, 20),//定位按钮与设置的停靠位置的偏移量,默认:Pixel(10, 20) showMarker: true, //定位成功后在定位到的位置显示点标记,默认:true showCircle: true, //定位成功后用圆圈表示定位精度范围,默认:true panToLocation: true, //定位成功后将定位到的位置作为地图中心点,默认:true zoomToAccuracy:true //定位成功后调整地图视野范围使定位位置及精度范围视野内可见,默认:false }); vm.map.addControl(geolocation) geolocation.getCurrentPosition(); // 获取用户当前的精确位置信息 AMap.event.addListener(geolocation, 'complete', getLocationComplete); // AMap.event.addListener(geolocation, 'error', onError) function getLocationComplete(data) { alert(data.formattedAddress) } })},

复制代码

搜索位置,1.1标记返回的位置

引入插件AMap.Autocomplete

复制代码

2.定义文本框。我当前使用得是element-UI样式

请输入关键字

复制代码

3.根据输入的关键字查找地址,并对查找出的地址进行标记。

searchAddress() { let keywords = this.keywords let vm = this AMap.plugin('AMap.Autocomplete', function(){ // 实例化Autocomplete var autoOptions = { //city 限定城市,默认全国 city: '全国', } var autoComplete= new AMap.Autocomplete(autoOptions); autoComplete.search(keywords, (status, result) => {vm.handleSearchResult(status, result)}) })},

handleSearchResult(status, result) { let vm = this // data 里包含info,count, tips if(status == "complete" && result && result.count > 0) { var markerList = []; // 标记列表 let lng = 0, lat = 0; // 记录中心点 for(let i=0; i"+item.name+"

",direction: 'top' // 文本标注方位 可选值:'top'|'right'|'bottom'|'left'|'center',默认值:'right' }, clickable: true, extData:item.name, position: new AMap.LngLat(item.location.lng, item.location.lat), title: item.name }); // 为标记添加监听事件 AMap.event.addListener(marker, 'click', function(e) { if(vm.preMark) { // 移除上一个标记 vm.map.remove(vm.preMark); } let serviceAddress = e.target.getExtData() var marker = new AMap.Marker({ // 点击标记当前点击的位置 map: vm.map, icon : require("../assets/location.png"), position: [e.lnglat.lng, e.lnglat.lat], offset: new AMap.Pixel(-13, -30), label: { content: "

vue 获取用户位置 高德_Vue使用高德地图相关推荐

  1. 微信小程序获取用户位置信息并显示到地图上

    1.配置地理位置用途说明 在app.json中的大括号内输入 "permission": {"scope.userLocation": {"desc& ...

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

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

  3. html自动获取用户位置,html5获取用户当前位置

    支持地理定位的浏览器有IE9+.Firefox 3.5+ .Opera 10.6+ .Safari 5+ .Chrome.iOS 版Safari.Android版WebKit. navigator.g ...

  4. 地图篇-01.获取用户位置

    地图篇-01.获取用户位置 今天把地图整理了一下,共享出来和大家一起分享,希望帮助到不了解的朋友,当然很精通的朋友希望指正小生的不足. 1.说到地图,首先要接触一个framework -CoreLoc ...

  5. 微信小程序开发——小程序API获取用户位置及异常流处理完整示例

    前言: 小程序需要添加一个定位功能,主要的就是获取用户位置的经纬度,然后根据用户经纬度进行一些判断操作. 在小程序提供的Api中,获取用户定位信息的主要Api是 wx.getLocation(obj) ...

  6. 微信服务号开发-获取用户位置信息

    微信服务号开发-获取用户位置信息 在微信公众号开发的中,获取用户位置信息是非常常见的功能需求,通过用户的位置信息,可以做一些地图导航,以及基于LBS的营销活动. 下面将介绍微信服务号获取用户位置信息的 ...

  7. vue获取用户本机ip方法

    记录vue获取用户本机ip方法 <script setup> import { reactive, toRefs ,onMounted} from "vue" cons ...

  8. uniapp开发获取用户位置信息功能解析

    uniapp开发获取用户位置信息功能解析 问题描述 uniapp相关接口 1.uni.authorize 提前向用户发起授权请求. 接口描述及demo演示 2.uni.getLocation 获取当前 ...

  9. Android获取用户位置

    在很多生活类工具应用中都会包含用户位置信息,这样更方便的为用户服务. 经常我们使用三种方式进行定位,获取用户位置,分别是基于基站定位, 网络定位,GPS定位. 一:基站定位(passive):这是基于 ...

最新文章

  1. 如何监听WebView完成加载URL?
  2. 两个div叠加触发事件发生闪烁问题
  3. vs显式导入(代码注入)依赖库
  4. php中插入表格 标签,PHP_HTML中的表格元素,一,table标签。tablegt - phpStudy
  5. linux下桥接模式设置静态IP实现上网
  6. 在线模拟器RollerCoin使采矿业重回游戏
  7. Linux基础命令---findfs
  8. 第七节:利用CancellationTokenSource实现任务取消和利用CancellationToken类检测取消异常。
  9. Spring知识点一站到底(转载)
  10. 3个好用的3D点云数据标注工具推荐
  11. C/C++编辑器Source Insight技巧收集
  12. 在windows中桌面显示itunes音乐滚动歌词
  13. Android 使用Notification进行消息提示
  14. 瑞萨开发记录01:点亮一颗LED灯(R5F104FEA芯片)
  15. python twisted教程_twisted基础教程.pdf
  16. 织梦网站数据入库接口(实现图片本地化,自动图片打水印)【原创】
  17. 变量n1和n2是什么关系
  18. 【手把手】教你玩转消息中间件之RabbitMQ
  19. 中国快递的“无冕之王”要回港上市了? 管理层身家超刘强东!
  20. 黑客X元素关闭了,给大家完成了一份电子杂志《黑客X元素》Terminator X

热门文章

  1. 反馈 术语 串小鸭 并大流
  2. matlab在生物学中的应用,MATLAB在生物医学信号处理中的应用
  3. 安卓开发— —仿微信界面(一)
  4. win10浏览器闪退_Win10 Build 14942 Edge 浏览器闪退怎么解决?
  5. Outlook2019添加126邮箱方法
  6. ofo小黄车仍在自动续费!如何关闭微信自动扣费?
  7. MASQUERADE target在负载均衡中引出的问题
  8. Java迷你共享单车系统(面向对象作业)
  9. ICLR 2022最佳论文解读
  10. uniapp一套代码开发app和微信小程序