问题描述[问题描述:尽可能简洁清晰地把问题描述清楚]当第一次进入h5页面获取坐标授权的时候(迟一点点击授权坐标的时候),就会导致map组件show-location会得不到当前位置的坐标点。而且不能重新获取当前位置的坐标点。
vvppvyoh1#
您好,方便提供一份可以复现的测试代码吗?
jaql4c8m2#
<template> <map id="mymap" :longitude="longitude" :latitude="latitude" scale="14" :markers="markers" @markertap="markertap" :show-location="showLocation" :style="{width: '100%', height: kHeight+'px'}"> </map> </template>微信公众号h5 有腾讯key 测试过腾讯地图h5它是之后点击授权才加载整个地图即坐标的,但是uniapp里面是还没有授权地图已经加载完成,且得不到坐标。export default { data() { return { latitude: 0, longitude: 0, kHeight: 0, showLocation: true, // 如果是第一次授权的时候进入会得不到当前定位(因为授权当前位置弹窗未点击的时候页面加载完成,点击授权之后也未能显示,第二次进入(已经授权)开始正常) markers: [], coverShow: false, store_info: {}, storeList: {} }; }, onLoad () { var that = this; uni.getSystemInfo({ success: function(res) { console.log(res) that.setData({ kHeight: res.windowHeight }); } }); uni.getLocation({ type: "gcj02", success(res) { var latitude = res.latitude; var longitude = res.longitude; console.log('show-location', that.showLocation) that.setData({ latitude: latitude, longitude: longitude }); that.loadStoreList(); }, fail: function(res) { console.log(res) // 如果是第一次授权的时候进入会fail(因为它授权弹窗的时候,页面已经加载完成) } }) }, } }
<template> <map id="mymap" :longitude="longitude" :latitude="latitude" scale="14" :markers="markers" @markertap="markertap" :show-location="showLocation" :style="{width: '100%', height: kHeight+'px'}"> </map> </template>
export default { data() { return { latitude: 0, longitude: 0, kHeight: 0, showLocation: true, // 如果是第一次授权的时候进入会得不到当前定位(因为授权当前位置弹窗未点击的时候页面加载完成,点击授权之后也未能显示,第二次进入(已经授权)开始正常) markers: [], coverShow: false, store_info: {}, storeList: {} }; }, onLoad () { var that = this; uni.getSystemInfo({ success: function(res) { console.log(res) that.setData({ kHeight: res.windowHeight }); } }); uni.getLocation({ type: "gcj02", success(res) { var latitude = res.latitude; var longitude = res.longitude; console.log('show-location', that.showLocation) that.setData({ latitude: latitude, longitude: longitude }); that.loadStoreList(); }, fail: function(res) { console.log(res) // 如果是第一次授权的时候进入会fail(因为它授权弹窗的时候,页面已经加载完成) } }) }, } }
2w2cym1i3#
那你在他点击授权之后再调用uni.getLocation不就好了吗?
pxyaymoc4#
一、这个定位授权不是组件内部实现的吗?我哪里写回调授权。二、uni.getLocation获得的坐标只是地图赋值中心位置而已三、我要在地图上显示带有方向的当前定位点用的是showLocation也是内部实现的,我怎么要它定位授权完显示呢?
puruo6ea5#
麻烦请你发一份完整的测试代码
hgncfbus6#
麻烦请你发一份完整的测试代码上面就是一个单页面的完整代码,uniapp就是没等定位授权之后map组件就出地图了,我已经测好几遍,弹窗我还没有授权呢 地图出来了所以第一次没有获取到定位,获取定位是失败的,你们可以单测一下map这个组件在微信h5上。步骤应该是授权定位然后回调完成中出地图的。辛苦了
6条答案
按热度按时间vvppvyoh1#
您好,方便提供一份可以复现的测试代码吗?
jaql4c8m2#
您好,方便提供一份可以复现的测试代码吗?
<template> <map id="mymap" :longitude="longitude" :latitude="latitude" scale="14" :markers="markers" @markertap="markertap" :show-location="showLocation" :style="{width: '100%', height: kHeight+'px'}"> </map> </template>
微信公众号h5 有腾讯key 测试过腾讯地图h5它是之后点击授权才加载整个地图即坐标的,但是uniapp里面是还没有授权地图已经加载完成,且得不到坐标。
export default { data() { return { latitude: 0, longitude: 0, kHeight: 0, showLocation: true, // 如果是第一次授权的时候进入会得不到当前定位(因为授权当前位置弹窗未点击的时候页面加载完成,点击授权之后也未能显示,第二次进入(已经授权)开始正常) markers: [], coverShow: false, store_info: {}, storeList: {} }; }, onLoad () { var that = this; uni.getSystemInfo({ success: function(res) { console.log(res) that.setData({ kHeight: res.windowHeight }); } }); uni.getLocation({ type: "gcj02", success(res) { var latitude = res.latitude; var longitude = res.longitude; console.log('show-location', that.showLocation) that.setData({ latitude: latitude, longitude: longitude }); that.loadStoreList(); }, fail: function(res) { console.log(res) // 如果是第一次授权的时候进入会fail(因为它授权弹窗的时候,页面已经加载完成) } }) }, } }
2w2cym1i3#
那你在他点击授权之后再调用uni.getLocation不就好了吗?
pxyaymoc4#
那你在他点击授权之后再调用uni.getLocation不就好了吗?
一、这个定位授权不是组件内部实现的吗?我哪里写回调授权。
二、uni.getLocation获得的坐标只是地图赋值中心位置而已
三、我要在地图上显示带有方向的当前定位点用的是showLocation也是内部实现的,我怎么要它定位授权完显示呢?
puruo6ea5#
麻烦请你发一份完整的测试代码
hgncfbus6#
麻烦请你发一份完整的测试代码
上面就是一个单页面的完整代码,uniapp就是没等定位授权之后map组件就出地图了,我已经测好几遍,弹窗我还没有授权呢 地图出来了所以第一次没有获取到定位,获取定位是失败的,你们可以单测一下map这个组件在微信h5上。步骤应该是授权定位然后回调完成中出地图的。辛苦了