首页 > 其他分享 >h5使用高德获取用户当前位置信息

h5使用高德获取用户当前位置信息

时间:2023-04-13 13:58:39浏览次数:50  
标签:定位 locationService 默认 h5 获取 AMap true 高德 result

在index.html文件中引入高德js文件:

key 需要从高德获取 获取key

<script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.15&key=f77da011880c2d55aeccba6446b85c78"></script>

js文件

我将方法写入了单独的js文件:
locationService.js

import AMap from 'AMap'

export const locationService = {
    getUserPosition: () => {
        return new Promise((resolve, reject) => {
            const options = {
                enableHighAccuracy: true,//是否使用高精度定位,默认:true
                timeout: 10000,          //超过10秒后停止定位,默认:5s
                buttonPosition: 'RB',    //定位按钮的停靠位置

                // maximumAge: 0, // 定位结果缓存0毫秒,默认:0
                // convert: true, // 自动偏移坐标,偏移后的坐标为高德坐标,默认:true
                showButton: true, //  显示定位按钮,默认:true
                buttonOffset: new AMap.Pixel(10, 20), //  定位按钮与设置的停靠位置的偏移量,默认:Pixel(10, 20)
                // showMarker: true, //  定位成功后在定位到的位置显示点标记,默认:true
                // showCircle: true, //  定位成功后用圆圈表示定位精度范围,默认:true
                // panToLocation: true, //  定位成功后将定位到的位置作为地图中心点,默认:true
                zoomToAccuracy: true, //  定位成功后调整地图视野范围使定位位置及精度范围视野内可见,默认:false
            }
            AMap.plugin(['AMap.Geolocation'], () => {
                var geolocation = new AMap.Geolocation(options);
                geolocation.getCurrentPosition()

                AMap.event.addListener(geolocation, 'complete', (result) => locationService.onComplete(result, resolve, reject))
                AMap.event.addListener(geolocation, 'error', (err) => locationService.onError(err, resolve, reject))
            });
        });
    },
    onComplete: (result, resolve, reject) => {
        const { lng, lat } = result.position;
        window.latitude = lat;
        window.longitude = lng;
        resolve({
            lat,
            lng
        })
    },
    one rror: (err, resolve, reject) => {
        reject(err)
    }
};

使用:

import { locationService } from '@/services/locationService';

locationService.getUserPosition().then(result => {
    console.log('result---location', result)
    const { lat, lng } = result;
    setTimeout(function () {
        // 执行后续操作
    }, 1000)
}).catch(err => {
    console.log('location err:', err)
    message.error('获取定位失败')
})

附:

高德官网 - 获取精确定位

标签:定位,locationService,默认,h5,获取,AMap,true,高德,result
From: https://www.cnblogs.com/ZerlinM/p/17314501.html

相关文章

  • os.walk获取目录中所有文件
    一.遍历获取目录及子目录下的文件名os.walk(filepath,topdown=False)filepath:需要遍历的目录地址,返回一个三元素的元组(root,dirs,files)root是当前正在遍历父文件夹的地址dirs是一个列表,内容是父目录中所有的文件夹的名字(不包括子目录下的文件夹)files是一个列表,内容......
  • 每日一模块-获取电脑的mac地址
    wmi模块importwmiw=wmi.WMI()forninw.Win32_NetworkAdapter():ifn.MACADDressisNoneorn.PhysicalAdapterisFalse:continuemac=n.MACADDressname=n.Nameif"PCI"inname:#有线网卡print("%......
  • 前端_发起axios请求,前端无法获取response的全部header
    问题描述使用vueaxios向python+flask搭建的服务端发起请求,请求成功后,前端无法拿到服务端添加到header中的token。问题原因前后端分离,默认reponseheader只能取到以下信息Content-LanguageContent-TypeExpiresLast-ModifiedPragma解决方法要获取其他的headers信息......
  • 水文站点位置信息获取
    setp1下载json文件打开全国雨水情站点位置查询网地址为:http://xxfb.mwr.cn/hydroSearch/mapSearch将该网址下载为.json文件setp2将json文件转为excel表格利用在线工具转换下载即可,例如在线json转excel工具处理好的excel文件如果不想自己做,也可以直接下载处理好......
  • taro 3.0 官方模板运行报错 插件依赖 "@tarojs/plugin-platform-h5" 加载失败
    taroError:插件依赖"@tarojs/plugin-platform-h5"加载失败,请检查插件配置报错如下,原因:node版本的问题,使用nvm切换node版本就可以了......
  • chatGPT 2W次提问机会获取
    写作助手作为一名中文写作改进助理,你的任务是改进所提供文本的拼写、语法、清晰、简洁和整体可读性,同时分解长句,减少重复,并提供改进建议。请只提供文本的更正版本,避免包括解释。请从编辑以下文本开始:[文章内容]小红书风格请使用Emoji风格编辑以下段落,该风格以引人入胜的标题、每个......
  • SpringBoot启动后获取特定注解的Bean实例代码(转)
    来自:https://zhuanlan.zhihu.com/p/375973197本文研究的主要是Spring启动后获取所有拥有特定注解的Bean,具体如下。最近项目中遇到一个业务场景,就是在Spring容器启动后获取所有的Bean中实现了一个特定接口的对象,第一个想到的是ApplicationContextAware,在setApplicationContext中......
  • springboot中获取指定包下的包含某个注解的全部类(转)
    来自:https://www.cnblogs.com/lexiaoyao1995/p/13943784.html需求获取spring项目里的带有某个注解的全部类难点需要扫描指定包路径下的类,同时也要扫描其下所有子包思路可以自己实现,推荐使用spring的工具类代码packagecom.example.demo;importcom.example.demo.annos......
  • 可视化H5(h5py)文件
    与深度学习打交道的一般都遇见过后缀名为.h5的文件,它该如何打开?它是一种层级形式的、用于存储和组织大量数据的文件格式。想要直观可视化内容很简单,只需安装一个python第三方库即可pipinstallvitablesvitablesxxxx.h5执行该命后,就会弹出一个可视化页面,此时h5文件......
  • yaml文件获取key的全路径
    importyamlwithopen('aa.yaml',"r")asfile:data=yaml.load(file,Loader=yaml.FullLoader)defyaml_flat(x):forkey,valueinx.items():ifisinstance(value,dict):fork,vinyaml_flat(value):......