效果图
1.准备key值(详细步骤,里面有坑)
申请你的key 官方地址:https://lbs.qq.com/guides/startup.html
选择WebServiceAPI
坑!!画圈的里面都是不填的(填不对的话,会在后续使用的时候地图出现 腾讯地图获取列表失败)
2.看官网讲的贼详细
官方文档有详细介绍 https://lbs.qq.com/tool/component-picker.html
3.下面是我的代码通过获取当前定位来在地图实现地图选点的功能 (直接复制的话样式上可能会有所不一样,自己按需要修改就行)(代码逻辑,通过点击按钮来调用uni.getLocation方法,获取当前定位,传给web-view组件来使用,同时webview配置一下里面的东西,腾讯文档里面的调用方式一,输出的东西都在MAPxuan里面)
效果图
<template> <view> <view class="cu-form-group"> <view class="title">详细地址<text class="text-red">*</text></view> <input placeholder="请输入详细地址" name="input" v-model="form.address"></input> <text class='cuIcon-locationfill text-orange' @tap="MAPxuan">地图定位</text> <web-view v-if="panDuan" ref='map' :src="'https://apis.map.qq.com/tools/locpicker?search=1&type=1&coordtype=1&coord='+ form.longitude+','+ form.latitude +'&key=你的key&referer=你的key名称'"> </web-view> </view> </view> </template> <script> export default { created() { var _this = this window.addEventListener('message', function(event) { // 接收位置信息,用户选择确认位置点后选点组件会触发该事件,回传用户的位置信息 var loc = event.data; if (loc && loc.module == 'locationPicker') { //防止其他应用也会向该页面post信息,需判断module是否为'locationPicker' console.log('location', loc);//在这里输出全部信息经纬度以及信息 _this.form.address = loc.poiaddress + loc.poiname _this.form.longitude = loc.latlng.lng _this.form.latitude = loc.latlng.lat _this.panDuan = false } }, false); }, data() { return { panDuan: false,//通过这个来让地图组件显示或者隐藏 form: { address: '', longitude: '', //经度 latitude: '' //纬度 } } }, methods: { MAPxuan() { var _this = this uni.getLocation({ isHighAccuracy: true, success(res) { console.log(res) _this.form.longitude = res.longitude _this.form.latitude = res.latitude _this.panDuan = !_this.panDuan }, fail(err) { uni.showToast({ title: '频繁定位失败,请重试', icon: 'none' }) } }) }, } } </script> <style> </style>
坑 uni.getLocation多次调用会失败
在微信开发者工具和真机调试时,uni.getLocation()获取定位失败,一直fail()。