vue-amap 地图定位打卡

news/2024/11/25 8:50:35/

1、注册并登录高德开放平台

1、首先,注册开发者账号,成为高德开放平台开发者

2、登陆之后,在进入「应用管理」 页面「创建新应用」

3、为应用添加 Key

4、添加成功后,可获取到key值和安全密钥jscode(自2021年12月02日升级,升级之后所申请的 key 必须配备安全密钥 jscode 一起使用;

2、安装依赖

npm install vue-amap

3、在项目中引入,该项目为vue项目,在main.js先引入初始化

import VueAMap from 'vue-amap';
Vue.use(VueAMap);
VueAMap.initAMapApiLoader({key: AMAP_KEY,// plugin: ['AMap.Geolocation','AMap.Scale', 'AMap.OverView'],plugin: ['AMap.ToolBar', 'AMap.MapType', 'AMap.Geolocation','AMap.Geocoder','AMap.AMapManager', 'AMap.Marker'],v: '1.4.4'
});

4、在定位页面使用

<template><div class="amap-page-container"><el-amap vid="amapDemo" ref="map" :center="center" :zoom="zoom" :plugin="plugin" :events="events"class="amap-demo" ><el-amap-circle:radius="radius":center="companyPosition"stroke-color="#8896FF"fill-color="#8896FF"stroke-weight="1":fill-opacity="0.1"></el-amap-circle><el-amap-marker vid="company-marker1" :position="companyPosition"></el-amap-marker><el-amap-marker vid="company-marker2" :position="companyTextPosition" :content-render="companyRender"></el-amap-marker><el-amap-marker v-if="!inCircle" vid="own-marker" :position="ownPosition" :content-render="tipRender"></el-amap-marker><el-amap-circle-marker :center="center" :radius="10" fill-color="#1890ff" :fill-opacity="1" stroke-color="#FFFFFF" :stroke-weight="5" :stroke-opacity="1"></el-amap-circle-marker></el-amap></div>
</template>
//设置经纬度和打卡范围
const COMPANY_LNG = map_obj.COMPANY_LNG
const COMPANY_LAT = map_obj.COMPANY_LAT
const Location_radius = map_obj.Location_radiusdata(){return {zoom: 15,center: [COMPANY_LNG, COMPANY_LAT],companyPosition:[COMPANY_LNG, COMPANY_LAT],lng: 0,lat: 0,events:{init:(o)=>{//设置中心点let getCenter = o.getCenter()console.log('getCenter',o.getCenter())self.set_location_center_point(getCenter.lng,getCenter.lat)}},plugin:['ToolBar',{//调用定位工具开始定位,该定位需要配置服务请看第五点pName:'Geolocation',events:{init(o){console.log('Geolocation init ',o)if(o.getCurrentPosition){o.getCurrentPosition((status, result) => {console.log('getCurrentPosition',result)if (result && result.position) {var lng = result.position.lng;var lat = result.position.lat;var formattedAddress = result.formattedAddressif(formattedAddress){self.$emit('update_address',formattedAddress)}self.set_location_center_point(lng,lat)self.get_address();//请求获取具体地址}});}}}}]}
},
methods:{set_location_center_point(lng,lat){this.lng = lng;this.lat = lat;this.center = [lng, lat]console.log('geoDistance',geoDistance(COMPANY_LNG, COMPANY_LAT, this.lng, this.lat ))this.distance = geoDistance(COMPANY_LNG, COMPANY_LAT, this.lng, this.lat )},get_address(){//需要使用get请求https://restapi.amap.com/v3/geocode/regeo,获取当前位置中文地址//参数为var params = {output:"JSON",location:this.center.join(','),key:'map_key',//申请的应用keyradius:1000,//radius取值范围在0~3000,默认是1000。单位:米,搜索半径extensions:'all'}}
}

5、设置定位服务,在全局设置定位变量,然后通过nginx代理

window._AMapSecurityConfig = {serviceHost:"服务器地址",//例如https://xxx.xxx.xxx/_AMapService//securityJsCode:'安全密钥',//此处也可以填写安全密钥,但是会造成密钥泄漏
}
location ^~ /_AMapService/ {set $args "$args&jscode=此处填写高德申请的安全密钥securityJsCode";proxy_pass https://restapi.amap.com/;
}

6、其他扩展的请看vue-map官网 https://www.wenjiangs.com/doc/mdxkhhtr

7、因为vue-map支持1.4.4,不满足需求可使用插件@amap/amap-jsapi-loader


http://www.ppmy.cn/news/427035.html

相关文章

记一次高德地图引入 AMap is not defined 血坑

步骤&#xff1a; 1 在pubic文件夹下的index.html中引入高德地图的js文件 <script type"text/javascript" src"https://webapi.amap.com/maps?v2.0&key自己申请的key&pluginAMap.CitySearch"></script> 2 在methods中写一个获取位置…

vue-amap(vue 地图)

亲测可用&#xff0c;若有疑问请私信 官网&#xff1a;组件 | vue-amap 昨天把vue的地图&#xff08;高德&#xff09;搞了下&#xff1a; 步骤&#xff1a; 1.去高德开发者平台申请key&#xff1b; 2.安装vue-amap&#xff1b; 3.使用组件调用地图 1.npm安装vue-amapnpm ins…

MapboxMap 加载Amap地图图源

MapboxMap 展示Amap地图 MapBox添加切片图源RasterSourceRasterLayer展示Amap地图上图 MapBox添加切片图源 本文中 Amap切片图源 来源于网络。目的为学习研究&#xff01;如果商用请注意版权问题。 功能实现主要借助RasterSource与RasterLayer。 RasterSource 栅格源&#x…

VUE——vue-amap简单使用

一、 down一个vue webpack的模板 vue init webpack vueamap根据提示完成模板下载&#xff0c;此处我的项目中选择router为yes 其他测试插件全为no vueamap为文件夹名称 模板下载后 安装依赖 cnpm install 依赖安装完成后 执行开发环境 npm run dev 若提示在"localhost…

在VUE中导入高德地图组件模块(vue-amap)

在VUE中导入高德地图组件模块 写在开头高德地图组件官方链接1、创建VUE项目2、在vue项目中导入高德地图组件3、修改地图尺寸4、最后效果5、写在结尾 写在开头 创建vue工程并将vue-amap导入到vue工程中 本文章参考 高德地图组件官方链接 vue-amap的guthub链接 高德开放平台官…

windowsapps文件夹可以删除吗_手机文件夹英文名称代表什么意思?哪些可以真正删除,涨见识了...

经常在网上看到有小伙伴问手机文件中的英文名称代表了什么意思&#xff1f;可以删除吗&#xff1f;当手机内存不够的时候&#xff0c;大家都会选择清理一些不需要保存的文件夹&#xff0c;但是往往在删除的时候都会误删一些数据&#xff0c;今天就来告诉大家手机文件夹究竟哪些…

安卓系统目录说明大全,各文件夹是什么,可以删除吗?(以MIUI为例)

由于安卓生态较为混乱&#xff0c;开发人员素质参差不齐&#xff0c;安卓手机的目录总是很混乱。有些像我一样有强迫症的人就喜欢清理一些没用的文件或文件夹&#xff0c;还自己手机一个清净之所。 而且在卸载一些app之后&#xff0c;可能还会在手机里残存一下文件夹或者垃圾文…

Android高德地图基本开发/在线高德离线地图开发/断网使用离线地图(Assets文件夹的使用)

文章目录 高德SDK基本使用前置操作需求一&#xff1a;显示地图&#xff0c;并以当前所在位置为中心权限申请布局功能代码活动功能代码效果展示 需求二&#xff1a;离线地图(直接添加到应用端项目内)需求三 &#xff1a;点击数据后以数据的经纬度为中心显示需求四 &#xff1a;把…