将高德坐标拾取工具放入Element UI 对话框

在创建使用Element UI的坐标拾取页面时,发现地图无法在对话框内显示。通过研究发现,问题在于对话框的v-if指令导致地图未正确初始化。解决方案是使用Vue的watch监听对话框状态,在内容渲染后初始化地图,从而成功集成高德坐标拾取工具。此外,还需调整高德下拉框的z-index以避免被对话框覆盖。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在使用Element UI制作坐标拾取页面时我遇到一个问题:被包裹在对话框组件中的地图无法显示,而写在普通页面的地图则没有这种问题

坐标拾取是借用了高德地图的工具:http://lbs.amap.com/api/javascript-api/example/map/click-to-get-lnglat

想要实现的效果是点击经纬度输入框
这里写图片描述
弹出一个对话框,里面放坐标拾取工具
这里写图片描述

选择好坐标后点击确认,关闭对话框,并将拿到的经纬度数据放到经纬度输入框里(截图里坐标出现差异请自行忽略。。。)

### 集成高德地图API实现坐标拾取功能 为了在Vue2项目中集成高德地图并实现坐标拾取功能,需先完成前置准备工作。这包括引入必要的依赖项以及配置环境设置[^1]。 #### 安装与配置 安装`vue-amap`插件来简化操作流程: ```bash npm install vue-amap --save ``` 接着,在项目的入口文件(main.js)里注册该组件库,并初始化相关参数: ```javascript import Vue from 'vue'; import VueAmap from 'vue-amap'; // 初始化vue-amap. Vue.use(VueAmap); // 设置高德地图key. VueAmap.initAMapApiLoader({ key: '你的Key', v: '1.4.15', // 版本号, }); ``` #### 页面布局设计 创建用于展示地图的容器结构,定义好样式以便更好地显示效果: ```html <div id="app"> <div class="amap-wrapper"> <!-- 地图容器 --> <el-amap vid="amapDemo" :zoom="zoom" :center="center"></el-amap> </div> <!-- 显示选中的经纬度 --> <p>经度:{{ lng }}</p> <p>纬度:{{ lat }}</p> </div> ``` 这里使用了Element UI框架下的`<el-amap>`标签作为地图承载区域;同时通过两个变量(`lng`, `lat`)动态绑定到视图上实时更新所选取的位置信息[^3]。 #### JavaScript逻辑编写 最后一步是在JavaScript部分处理交互事件,监听用户的鼠标单击动作从而捕获当前光标的地理坐标位置: ```javascript export default { data() { return { zoom: 10, // 初始缩放比例 center: [116.397428, 39.90923], // 默认中心点 lng: null, // 经度 lat: null, // 纬度 events: { click(e) { this.lng = e.lnglat.lng; this.lat = e.lnglat.lat; }, }, }; }, }; ``` 上述代码片段展示了如何利用回调函数机制响应来自地图控件触发的时间流,进而达到获取具体坐标的目[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值