vue高德地图H5定位及城市选择器控件实现详细教程

个人博客地址:https://qingmuzhang.gitee.io/

需求说明:H5实现初始化通过高德地图进行定位城市,用户也可以自行点击选择其他城市

主要功能点:定位、城市选择器

实现效果
在这里插入图片描述

一、初始准备

这里采用 高德地图 JS API去实现上述两项功能,使用高德地图 JS API 开发地图应用需要先注册账号并申请Key,https://lbs.amap.com/api/javascript-api/guide/abc/prepare

  1. 首先,注册开发者账号,成为高德开放平台开发者,地址 https://console.amap.com/dev/id/choose

在这里插入图片描述

这里我选择的个人开发者,只需要手机号认证即可创建,后续有需求可以选择企业开发者。

  1. 登陆之后,在进入「应用管理」 页面「创建新应用」在这里插入图片描述
  2. 为应用添加 Key,「服务平台」一项选择「 Web 端 ( JSAPI ) 」
    在这里插入图片描述
  3. 添加后点击可以查看新生成的key,将其复制添加到项目中
    在这里插入图片描述
二、Vue项目初始配置
  1. 在main.html页面添加 JS API 的入口脚本标签,并将其中key值=刚刚申请的 key,由于还使用到高德的城市选择器组件,所以还需要引入ui组件库

    <!--引入高德地图JSAPI -->
    <script src="//webapi.amap.com/maps?v=2.0&key=申请的key"></script>
    <!--引入UI组件库(1.1版本) -->
    <script src="//webapi.amap.com/ui/1.1/main.js"></script>
    
  2. 在webpack.base.conf.js中加入

    module.exports = {
         
    	  externals: {
         
            'AMap': 'AMap',
            'AMapUI': 'AMapUI'
        },
    }
    
三、定位功能实现

https://lbs.amap.com/api/javascript-api/reference/location

import AMap from 'AMap'; //在页面中引入高德地图
methods:{
   
	//定位
    getLocation() {
   
        const self = this
        AMap.plugin('AMap.Geolocation', function () 
  • 10
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Vue高德地图定位按钮功能的实现可以分为以下几个步骤: 1. 引入高德地图JavaScript SDK库。在Vue的项目中,可以通过npm安装amap-jsapi-loader库,并在入口文件(如main.js)中导入并使用该库加载高德地图的JS API。 2. 在Vue组件中创建地图容器。可以使用AMap.Map()方法创建一个地图的实例并指定容器的id,例如:new AMap.Map('map-container')。 3. 创建定位按钮并绑定相应的点击事件。在Vue组件的template中添加一个按钮元素,并为其添加一个@click事件监听器,用来触发定位功能的实现。 4. 实现定位功能。在点击定位按钮时,触发点击事件的处理函数,在该函数中调用高德地图定位服务API,如AMap.Geolocation()来获取当前位置的经纬度。 5. 将定位的经纬度设置为地图的中心点,并在地图上显示一个标记点。可以使用AMap.Marker()创建一个标记点实例,然后设置其position为定位的经纬度,并添加到地图上。 6. 可以根据需要,将经纬度转换为具体的地址信息,并在页面中显示。可以使用AMap.Geocoder()的逆地理编码功能,将经纬度转换为地址。 具体代码示例: ```vue <template> <div> <button @click="getLocation">定位</button> <div id="map-container"></div> <div>{{location}}</div> </div> </template> <script> import AMapLoader from 'amap-jsapi-loader'; export default { data() { return { map: null, location: '' } }, mounted() { AMapLoader.load({ key: 'your-amap-api-key', version: '2.0' }).then(() => { this.map = new AMap.Map('map-container'); }); }, methods: { getLocation() { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition((position) => { const { latitude, longitude } = position.coords; this.map.setCenter([longitude, latitude]); new AMap.Marker({ position: [longitude, latitude], map: this.map }); const geocoder = new AMap.Geocoder(); geocoder.getAddress([longitude, latitude]).then((result) => { this.location = result.regeocode.formattedAddress; }); }); } else { alert('浏览器不支持定位功能'); } } } }; </script> ``` 需要注意的是,代码中的'your-amap-api-key'需要替换为你自己申请的高德地图API的秘钥。另外,在使用定位功能时,需要用户授权浏览器获取其位置信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值