关于如何在vue中使用高德地图,以及添加信息窗体

本文介绍了如何在Vue项目中使用高德地图API,包括注册开发者账号获取key,通过命令行安装地图插件,以及在组件内初始化地图。特别提到在mounted生命周期钩子中初始化地图,并展示了添加信息窗体的代码示例。注意在封装成函数时,由于this指向问题,需要保存this到that变量以正确操作Vue组件。
摘要由CSDN通过智能技术生成

首先需要自己去注册高德地图开发者平台的账号获取key码,

然后在vue项目中输入命令下载高德地图插件

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

然后在你想要使用的组件中导入

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

创建一个盛放地图的盒子

 <div class="map-box" id="container">

 </div>

然后在methods里使用,并且需要在mounted中初始化地图插件

     methods:{
            initMap() {
                var that=this
                AMapLoader.load({
                    "key": "", // 申请好的Web端开发者Key,首次调用 load 时必填
                    "version": "2.0", // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15
                    "plugins": [],           // 需要使用的的插件列表,如比例尺'AMap.Scale'等
                    "AMapUI": {             // 是否加载 AMapUI,缺省不加载
                        "version": '1.1',   // AMapUI 缺省 1.1
                        "plugins":[],       // 需要加载的 AMapUI ui插件
                    }
                }).then(AMap => {
                        this.map = new AMap.Map("container", {
                            //设置地图显示的缩放级别
                            zoom: 15,
                            // 是否允许鼠标拖拽
                            dragEnable: true,
                            // 鼠标滚轮放大缩小
                            scrollWheel: true,
             
Vue 2 使用高德地图 (AMap) 和 Element UI 等库来创建动态的标记点窗口可以分为几个步骤: 1. 首先,你需要在项目安装高德地图相关的依赖,如 `@vue-amap/core` 和 `element-ui` 或者你选择的 UI 组件库。 ```bash npm install @vue-amap/core element-ui --save ``` 2. 引入所需的模块,并在组件注册 AMap 服务: ```javascript import { Map, Marker } from '@vue-amap/core'; import { ElButton, ElPopover } from 'element-ui'; Vue.use(Map, { ak: 'your_amap_key', // 你的高德地图 API 密钥 }); ``` 3. 创建一个数据列表,每个元素代表一个标记点及其信息: ```javascript data() { return { markers: [ { name: '地点1', coordinate: { lng: 116.404, lat: 39.915 } }, { name: '地点2', coordinate: { lng: 121.473, lat: 31.230 } }, // 更多地点... ], }; } ``` 4. 使用 `v-for` 循环遍历这个列表,在模板为每个标记点创建一个新的标记和对应的点击事件: ```html <template> <div> <map :center="center" :zoom="zoom"> <!-- 循环生成标记 --> <marker v-for="(item, index) in markers" :key="index" :position="item.coordinate"> <el-popover :placement="item.position" title="地点名称"> <p>{{ item.name }}</p> <!-- 可选:添加更多内容或操作按钮 --> <el-button slot="reference">详情</el-button> </el-popover> </marker> </map> </div> </template> <script> export default { data() { //... }, computed: { center: { get() { // 如果需要计算位置,这里可以根据需要计算 return this.markers[0].coordinate; } }, zoom: { // 设置初始缩放级别 default: 12, }, }, }; </script> ``` 每当你点击一个标记点时,对应的ElPopover会显示出来,提供有关该位置信息。记得替换 `your_amap_key` 为你自己的高德API密钥。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值