起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1729|回复: 7

[处理中3] 百度地图有时候不能定位

[复制链接]

5

主题

37

帖子

111

积分

初级会员

Rank: 2

积分
111
QQ
发表于 2016-11-24 21:31:31 | 显示全部楼层 |阅读模式
本帖最后由 takkuen 于 2016-11-24 21:34 编辑

按照外卖的案例,地图定位,发现有些问题,不明白的1、mapActivity.js 里面的$mapFrame.on('load',function(){}这个方法是不是只是第一次才会执行,后面只要没退出app,退出当前页面再进的话,我真机调试不会进这个方法,所以也就不会执行里面的mapFrame.contentWindow.postMessage(position, "*");方法,因此也不会触发map.html里面的$(window).on('message',function(message){}方法。



2、为什么map.html页面中需要
$(function(){
                    var premap = new BMap.Map("allmap");
                        var preOriginPoint = new BMap.Point("116.45764191999997","39.8622934399999");
                        premap.addControl(new BMap.ZoomControl());
                        premap.centerAndZoom(preOriginPoint, 20);
            });
这个方法,这个是一个默认地址,我查询到理解的是这是一个ready的方法,是不是弥补问题1中不会执行load方法的时候导致的空白页,默认设置一个地址?现在的问题是我不知道怎么还原测试出来这个默认地址,测试过程中偶尔就会出现这个默认地址。并不是我正确的定位地址。

发表于 2016-11-25 11:24:02 | 显示全部楼层
1.是的,页面加载后会缓存在内存里面了!这个事件是加载执行的事件!如果页面不加载就不会触发了!
如果你想重新加载,可以刷新iframe 应该就可以的!
2.是的,就是为解决,如果获取不到真正的地理位置(比如浏览器中运行的时候)可以显示一个默认位置!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

5

主题

37

帖子

111

积分

初级会员

Rank: 2

积分
111
QQ
 楼主| 发表于 2016-11-25 12:14:54 | 显示全部楼层
liangyongfei 发表于 2016-11-25 11:24
1.是的,页面加载后会缓存在内存里面了!这个事件是加载执行的事件!如果页面不加载就不会触发了!
如果你 ...

第二点,但是我是打包到app,在手机上运行,也偶尔会出现获取不到,这个是为什么呢,理论上应该按照你说的,应该加载过了缓存在内存里面,但是不知道为什么内存又找不到这个页面,所以就有了一个默认地址?这样应该算一个bug吧,app有时候可以获取到正确地址,有时候不行

我用真机夜神模拟的话就经常出现获取到默认地址的情况。。。
回复 支持 反对

使用道具 举报

发表于 2016-11-25 14:50:28 | 显示全部楼层
takkuen 发表于 2016-11-25 12:14
第二点,但是我是打包到app,在手机上运行,也偶尔会出现获取不到,这个是为什么呢,理论上应该按照你说 ...

夜神模拟器本来就不是真机的环境!这个是模拟器的bug !
使用这个方法,必须真机才可以测试的!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

5

主题

37

帖子

111

积分

初级会员

Rank: 2

积分
111
QQ
 楼主| 发表于 2016-11-25 15:24:08 | 显示全部楼层
liangyongfei 发表于 2016-11-25 14:50
夜神模拟器本来就不是真机的环境!这个是模拟器的bug !
使用这个方法,必须真机才可以测试的! ...

我真的手机也会出现这个问题,但是没有模拟器这么频繁,我不确定怎么能还原给你们看,但是确实是出现了
回复 支持 反对

使用道具 举报

发表于 2016-11-25 16:02:22 | 显示全部楼层
本帖最后由 liangyongfei 于 2016-11-25 17:19 编辑
takkuen 发表于 2016-11-25 15:24
我真的手机也会出现这个问题,但是没有模拟器这么频繁,我不确定怎么能还原给你们看,但是确实是出现了 ...

是没有网络的时候出现的吗?
Android 手机一般是通过调用百度API 实现定位的!需要有网络

------------------------------

不好意思,刚刚看了下!Android不需要网络,苹果是需要网络转换gps定位的!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

5

主题

37

帖子

111

积分

初级会员

Rank: 2

积分
111
QQ
 楼主| 发表于 2016-11-25 17:02:11 | 显示全部楼层
liangyongfei 发表于 2016-11-25 16:02
是没有网络的时候出现的吗?
Android 手机一般是通过调用百度API 实现定位的!需要有网络 ...

不是,有网络的,第一次是没有问题的,有进那个load事件,所以是可以取到正确的经纬度,但是后续不是说缓存在内存,然后每次都从内存去取吗,假设不知道什么操作导致内存没有缓存了,那就可能出现了默认地址的情况吧,逻辑上说应该是缓存的问题?但是我还没找到具体的规律是怎么样的,反正就测试测试就出现了默认地址


另外如果我只是app的调用的地图,原则上是不需要上面那个默认地址了吧,但是这样测试就变成了空白页,也出现过,所以上面默认地址不仅仅是针对你说的浏览器访问的问题
回复 支持 反对

使用道具 举报

发表于 2016-11-25 17:10:30 | 显示全部楼层
本帖最后由 liangyongfei 于 2016-11-25 17:18 编辑
takkuen 发表于 2016-11-25 17:02
不是,有网络的,第一次是没有问题的,有进那个load事件,所以是可以取到正确的经纬度,但是后续不是说缓 ...

可能是反应慢。因为代码默认有个定位的位置!等你的代码执行到了以后才会重新刷新的!要不你调试外卖案例代码看一下

/UI2/takeout/map.html 代码中

$(window).on('message',function(message){

这个方法的执行情况
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-5-17 12:45 , Processed in 0.056597 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表