【Vue3 配合高德地图实现精准定位并获取定位信息】

在 vue3 中使用高德地图 自定义 Marker 内容可以是字符串拼接的 DOM 元素。可以根据 class 名去定义样式。//点标记显示内容`;如果不想使用 JS API 的结果面板,panel 可以缺省或者赋值 false,然后在 search()的回调中处理自己的逻辑,自定义搜索教程前往 输入提示与 POI 搜索。//在回调函数中使用插件功能placeSearch.search("北京大学", function (status, result) {//查询成功时,result 即对应匹配的 POI 信息}) 阅读详情
AI摘要

该博客主要介绍在Vue3中使用高德地图的开发过程。首先讲述了高德密钥的创建和插件安装,接着说明了创建地图容器、设置样式、引入JS API Loade等步骤,并给出完整代码。最后介绍如何获取详细具体定位信息,可通过查看官方文档使用AMap.Geolocation插件进行配置。

高德密钥创建

进入控制台中
在这里插入图片描述
新建
在这里插入图片描述
可以得到我们的密钥
在这里插入图片描述

高德插件安装

从官方文档中可看到 添加链接描述
在这里插入图片描述

安装高德依赖

npm i @amap/amap-jsapi-loader --save

创建地图容器

<template>
  <div id="container"></div>
</template>

设置地图容器样式

<style  scoped>
    #container{
        padding:0px;
        margin: 0px;
        width: 100%;
        height: 800px;
    }
</style>

引入 JS API Loade

import AMapLoader from '@amap/amap-jsapi-loader';

完整代码

<script setup>
import { onMounted, onUnmounted } from "vue";
import AMapLoader from "@amap/amap-jsapi-loader";

let map = null;

onMounted(() => {
  window._AMapSecurityConfig = {
    securityJsCode: "「你申请的安全密钥」",
  };
  AMapLoader.load({
    key: "", // 申请好的Web端开发者Key,首次调用 load 时必填
    version: "2.0", // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15
    plugins: ["AMap.Scale"], //需要使用的的插件列表,如比例尺'AMap.Scale',支持添加多个如:['...','...']
  })
    .then((AMap) => {
      map = new AMap.Map("container", {
        // 设置地图容器id
        viewMode: "3D", // 是否为3D地图模式
        zoom: 11, // 初始化地图级别
        center: [116.397428, 39.90923], // 初始化地图中心点位置
      });
    })
    .catch((e) => {
      console.log(e);
    });
});

onUnmounted(() => {
  map?.destroy();
});
</script>

<template>
  <div id="container"></div>
</template>

<style scoped>
#container {
  width: 100%;
  height: 800px;
}
</style>

获取详细具体定位信息

上面我们已经可以在软件中获取基本的地图信息了
接下来进行配置具体定位信息包括经纬度等等
查看官方文档可查看到 AMap.Geolocation 插件

在这里插入图片描述
使用插件可进行配置

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

结果如下
在这里插入图片描述
Vue3完整的代码如下

<script setup>
import { onMounted, onUnmounted } from "vue";
import AMapLoader from "@amap/amap-jsapi-loader";
import { ElMessage } from 'element-plus'
let map = null;

onMounted(() => {
  window._AMapSecurityConfig = {
    securityJsCode: "",
  };

  
  AMapLoader.load({
    key: "", // 申请好的Web端开发者Key,首次调用 load 时必填
    version: "2.0", // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15
    plugins: ["AMap.Scale"], //需要使用的的插件列表,如比例尺'AMap.Scale',支持添加多个如:['...','...']
  })
    .then((AMap) => {
      map = new AMap.Map("container", {
        // 设置地图容器id
        resizeEnable: true,
        zoom: 15, // 初始化地图级别
      });

      AMap.plugin('AMap.Geolocation', function() {
        var geolocation = new AMap.Geolocation({
        enableHighAccuracy: true, // 是否使用高精度定位,默认:true
        timeout: 10000, // 设置定位超时时间,默认:无穷大
        offset: [10, 20],  // 定位按钮的停靠位置的偏移量
        zoomToAccuracy: true,  //  定位成功后调整地图视野范围使定位位置及精度范围视野内可见,默认:false
        position: 'RB', //  定位按钮的排放位置,  RB表示右下
        zoomToAccuracy:true  ,
      })
      map.addControl(geolocation);
      geolocation.getCurrentPosition(
        function(status,result){
            if(status=='complete'){
              onComplete(result)
            }else{
              onError(result)
            }
      }
    );
    })
    })
});
onUnmounted(() => {
  map?.destroy();
});
function onError(data) {

  ElMessage('定位失败')
  // ElMessage(data.message)

  
    }
function onComplete(data) {
  
        ElMessage('定位成功')

    }

</script>
vue 使用高德地图,选点定位,搜索定位 效果图: 一、申请高德地图的使用密钥key。 高德开放平台 | 高德地图API 在高德地图控制台里面“我的应用”中创建应用,并添加key就可以拿到密钥key和安全密钥了。 二、安装依赖。 npm install -S vue-amap 三、使用。 main.js引入依赖。 import VueAMap from 'vue-amap' Vue.use(VueAMap); // 初始化vue-amap VueAMap.initAMapApiLoader({ key:. 阅读详情

相关推荐

Vue3 + 高德地图JS API 2.0实战:从搜索定位到自定义弹窗的完整开发指南

本文提供了一份基于Vue3和高德地图JS API 2.0的PC端地图应用完整开发指南。详细讲解了从项目初始化、模块化架构设计,到实现搜索定位、地址标记、自定义信息弹窗等核心功能的实战步骤,并重点介绍了利用Composition API进行优雅封装和性能优化的方案。

weixin_29001655的博客 406

Vue之如何调用高德地图步骤详解

Vue项目中使用高德地图详细步骤如下 一.获取高德地图的key 获取地址:高德开放平台https://lbs.amap.com/ 1.手机号登录高德开放平台 2. 3、选择web服务,然后提交,就会生成key的值 二.npm 安装 vue-amap npm install --save vue-amap 三.在 main.js 中引用 vue-amap // 引入高德地图 import ......

wwyxjjz的博客 6974

别再只用地图显示了!用el-amap的Geolocation和PlaceSearch插件,在Vue里做个店铺查找器

本文详细介绍了如何在Vue项目中使用el-amap结合高德地图的Geolocation和PlaceSearch插件,构建一个智能店铺查找器。通过精准定位、智能搜索和地图与列表联动展示等核心功能,帮助开发者快速实现高效的店铺查找解决方案,提升用户体验。

weixin_28693309的博客 94

vue使用高德导航

https://blog.csdn.net/qq_37831545/article/details/127056959?ops_request_misc=&request_id=&biz_id=102&utm_term=vue%E9%A1%B9%E7%9B%AE%E4%BD%BF%E7%94%A8%E9%AB%98%E5%BE%B7%E5%AF%BC%E8%88%AA%E8%B7%AF%E7%BA%BF&utm_medium=distribute.pc_search_result.none-task-blo

YUlangML的博客 380

vue + 高德精准定位(示例)

要在 Vue 中实现高德精准定位,可以使用 AMap JavaScript API 和 Vue.js 之间的集成插件 vue-amap。方法配置高德地图 API,包括 API key、插件集合和 SDK 版本。方法使用高德地图定位插件获取当前位置信息,并在定位成功后调用。和高德地图 API 在 Vue 项目中实现精准定位的示例代码。在地图上添加标记,并将地图中心设置为定位点。方法,以避免出现地图容器未渲染完毕就调用。方法,确保地图容器已经渲染完毕后再调用。方法初始化高德地图,使用。方法在地图上显示定位点。

走向CTO的路上... 2792

电力-平衡式IEC 60870-5-101规约报文解析

本文详细介绍了电力自动化中平衡式IEC 60870-5-101规约的应用,包括链路建立与初始化、对时、遥控操作、数据上送和总召唤等关键步骤,通过实例解析了报文格式和交互过程,是理解配网自动化通信的重要参考资料。

让你爱上电路设计 5685

如何用AI快速开发高德地图MCP应用

最近在开发一个基于高德地图MCP的智能导航应用,过程中发现AI辅助开发工具能大幅提升效率。今天就和大家分享一下我的实战经验,从功能设计到代码生成,再到调试优化的全流程。如果你也在开发地图类应用,强烈推荐试试这种AI辅助开发的模式。不需要从头开始写每一行代码,把更多精力放在核心业务逻辑和用户体验优化上,开发效率能提升好几倍。一键部署功能,几分钟就让应用上线运行。整个过程非常顺畅,不需要手动配置服务器环境,特别适合快速验证产品原型。

AmberLeopard26的博客 314

从Podfile到分享成功:ShareSDK小红书模块集成全流程实战(附视频分享代码)

本文详细介绍了iOS应用如何通过ShareSDK集成小红书分享功能的全流程,包括环境配置、SDK初始化、图片和视频分享实现,以及常见问题排查和性能优化策略。特别针对视频分享这一高频需求场景,提供了完整的代码示例和实战技巧,帮助开发者快速实现社交分享功能。

weixin_42540248的博客 226

uniapp集成高德地图实现安卓端位置选择功能

地图服务在现代移动应用开发中扮演着关键角色,特别是在LBS(基于位置服务)场景下。通过调用地图API,开发者可以实现精准定位、地址解析等核心功能。高德地图凭借其在国内市场的定位精度和丰富API接口,成为安卓端开发的首选方案之一。在uniapp跨平台框架中集成高德地图SDK,既能保证多端一致性,又能充分发挥原生性能优势。本文以位置选择功能为例,详细讲解如何实现地图初始化、标记交互、地址反解析等关键技术点,并分享内存管理、性能优化等工程实践经验。该方案已在外卖配送、社交打卡等实际业务场景中得到验证,特别适合需要

weixin_42531886的博客 76

Unity3D用c#脚本调用前端javascript函数:H5获取unity - webgl 加载并初始化完成的消息

unity3d发布的Webgl 可以作为静态文件加载到H5页面中,并通过javascript 调用unity内置的C#脚本函数,详见Webgl调用unity api。而往往我们需要知道Webgl ready的消息,本文将给出unity 内部调用javascript函数的方案加以解决。

Bravo 2476

ComfyUI-controlnet控制出图

提供加载预处理器节点。

Bu2n的博客 5494

湖北美食分享平台开发实践:SpringBoot+Vue全栈解决方案

的一键部署功能特别适合这类Web应用,无需手动配置服务器环境,生成的代码结构清晰易扩展。平台内置的AI辅助还能自动补全常见功能模块代码,大幅缩短了开发周期。

PinkFlower67的博客 444

YOLOv8环境搭建+训练自己的数据详细项目

直接按照路径会有问题,找到自己 requirements.txt 文件路径,我这里是pip install -r D:\ultralytics-main\ultralytics-main\requirements.txt。首先去自己的anaconda的安装的envs(虚拟环境),在导航栏输入cmd,进入命令窗口。到官方网站下载yolo模型 ,下载好后解压,里面有个文件requirements.txt。然后安装ultralytics ,这是必须的。

m0_63172128的博客 2万+

别再只写CRUD了!用SpringBoot+Vue给你的校园志愿者系统加上这些实用功能

本文详细介绍了如何利用SpringBoot和Vue技术栈为校园志愿者系统添加高级功能,包括动态审核工作流、社区化交互体系、实时通知系统等。通过实战代码示例和架构设计,帮助开发者超越基础CRUD,打造具备产品级体验的系统,特别适合毕业设计和实际项目开发。

weixin_33726313的博客 352

人形机器人 vs 机器狗SLAM:FAST_LIO_LOCALIZATION_HUMANOID的差异化优化方向

《FAST_LIO_LOCALIZATION_HUMANOID在人形与机器狗应用中的差异化优化策略》摘要: 格灵深瞳开源的FAST_LIO_LOCALIZATION_HUMANOID系统针对人形机器人和机器狗提出了差异化优化方案。人形机器人需应对双足步态带来的周期性晃动,通过动态盲区滤波、二阶运动模型补偿步态相位畸变,并修复重力向量计算误差。机器狗则需解决四足高频运动挑战,包括设计自适应地面分割算法、抑制IMU高频振动噪声,以及基于足端接触序列的非匀速运动建模。二者在传感器配置(高度/视角)、运动频率(1-

Studying…… 326

LoRA 完整解析:从理论到实践

LoRA(低秩适应)是一种高效的大模型微调方法,通过添加少量可训练参数(低秩矩阵)来适配新任务,避免全参数微调的高成本。其核心是将权重更新ΔW分解为两个小矩阵B×A的乘积,大幅减少训练参数量(仅0.1-1%)。LoRA基于内在维度假设,通过低秩约束捕捉核心任务信息,兼具效率与效果。实际应用中,常用配置为秩r=16-32,目标模块选择注意力层的q_proj和v_proj,学习率比全参数微调大10倍(约1e-4)。优势包括参数高效(内存降低60-80%)、多任务适配灵活、保留预训练知识等,已成为大模型微调的主流

echo的博客 1412

AI星盘星座运势分析解读流量主广告小程序完整源码含DeepSeek AI接口

AI星盘星座运势分析解读流量主广告小程序完整源码含DeepSeek AI接口

云起SAAS 581

北斗导航 | 2023 PTTI会议论文 2023 ITM会议论文 2022 ION GNSS+ 会议论文下载:ION 美国导航学会

2023 国际技术会议(ITM) 2023 精密时间和时间间隔系统和应用会议(PTTI) 2022 美国导航学会国际会议(ION GNSS +)

尘世冰封的专栏 4614

JAVA旅游系统畅享旅游系统源码支持小程序+公众号+H5

JAVA旅游系统畅享旅游系统源码:构建智慧文旅新生态

2301_76386147的博客 352

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

JAVA预约停车畅停无忧约停随行停车系统源码支持小程序+公众号+H5

JAVA预约停车畅停无忧约停随行停车系统源码:构建智慧停车新范式

2401_89605681的博客 303

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

上一篇: 【Lombok学习】
下一篇: 【Java 整合ElasticSearch实现文章内容搜索】
Timy_bai
博客等级 码龄7年 201粉丝 13原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Timy_bai

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值