百度地图api:Geolocation().getCurrentPosition()

使用百度地图api

地图绘制BMap.Point没问题
getCurrentPosition一直弹框要获取位置
Geolocation()的getCurrentPosition()方法在安卓手机上总是获取不到位置及获取的位置与真实位置相差太大,但苹果手机无此问题。

签到逻辑:

使用Geolocation().getCurrentPosition()获取当前位置经纬度,使用BMap.Geocoder().getLocation()将经纬度解析为汉字地址,此过程每10s触发一次。

测试结果:

测试环境安卓手机和苹果手机都正常,没有偏移。
正式环境苹果手机正常,安卓异常

问题描述:

第一次调用Geolocation().getCurrentPosition()解析地址弹框要获取信息时点了允许是拿到数据了,但是地址偏移太大,之后就会一直弹XXX.com想获取您的位置信息,这个框。
测试环境https协议,正式环境http协议

问题猜想:

[1.禁止app权限访问?----用手机开始始终允许权限还是不行]
[2.https与http的区别?----通过把测试环境的https协议换成http协议就会出现上述问题,换回https就一切正常]

结束:

后端同学去申请购买https证书了。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在iOS端使用H5页面调用百度地图API获取定位时,确保您已经正确配置了以下内容: 1. 在您的H5页面中引入百度地图API的JavaScript库。您可以在`<head>`标签内添加以下代码: ```html <script src="https://api.map.baidu.com/api?type=webgl&v=1.0&ak=YOUR_API_KEY"></script> ``` 请替换`YOUR_API_KEY`为您在百度地图开放平台申请的API Key。 2. 在调用`getCurrentPosition`方法之前,确保页面已经加载完成,并且百度地图API已经完全加载。您可以在`window.onload`事件中调用该方法,确保在页面加载完成后再进行定位请求,例如: ```javascript window.onload = function() { // 创建定位对象 var geolocation = new BMapGL.Geolocation(); // 获取位置信息 geolocation.getCurrentPosition(function(result) { // 定位成功,处理结果 console.log(result); }, function(error) { // 定位失败,处理错误 console.log(error); }); }; ``` 3. 在iOS端,您需要确保用户已经授权访问位置信息。请在iOS的`Info.plist`文件中添加以下权限声明: ```xml <key>NSLocationWhenInUseUsageDescription</key> <string>需要获取您的位置信息以提供定位服务</string> ``` 这样用户在首次访问页面时会收到位置权限请求弹窗。 请注意,百度地图定位功能可能受到用户设备、网络环境等因素的影响,可能无法在某些情况下成功获取位置信息。您可以通过监听`getCurrentPosition`方法的回调函数来获取定位结果并进行相应处理。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值