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

QQ登录

只需一步,快速开始

查看: 5038|回复: 7

[处理中3] 百度地图JS版调用问题

[复制链接]

140

主题

573

帖子

1080

积分

金牌会员

Rank: 6Rank: 6

积分
1080
QQ
发表于 2017-6-28 17:13:11 | 显示全部楼层 |阅读模式
异步JS加载百度地图,API只加载一次,HTML片段重复加载多次,从第二次加载时候就有问题!不知道你们是如何加载的?

代码:
Model.prototype.initBaiduMap = function(mapId) {
            if (!window._baiduInitialize) { // 首次加载
                    console.log("do baiduInitialize...");
                window._baiduInitialize = function(){
                        console.log("do _baiduInitialize...");
                        var map = new BMap.Map(mapId);    // 创建Map实例
                                map.centerAndZoom(new BMap.Point(116.404, 39.915), 11);  // 初始化地图,设置中心点坐标和地图级别
                                map.addControl(new BMap.MapTypeControl());   //添加地图类型控件
                                map.setCurrentCity("北京");          // 设置地图显示的城市 此项是必须设置的
                                map.enableScrollWheelZoom(true);     //开启鼠标滚轮缩放
                };
         
                require("http://api.map.baidu.com/api?v=2.0&ak=XXX&callback=_baiduInitialize");
            } else  { // 第二次加载
                    var map = new BMap.Map(mapId);    // 创建Map实例
                        map.centerAndZoom(new BMap.Point(116.404, 39.915), 11);  // 初始化地图,设置中心点坐标和地图级别
                        map.addControl(new BMap.MapTypeControl());   //添加地图类型控件
                        map.setCurrentCity("北京");          // 设置地图显示的城市 此项是必须设置的
                        map.enableScrollWheelZoom(true);     //开启鼠标滚轮缩放
            }
        };

异步加载这样操作,我看不出有什么问题,事实确实有问题的!第二次加载的时候,显示不完整!

140

主题

573

帖子

1080

积分

金牌会员

Rank: 6Rank: 6

积分
1080
QQ
 楼主| 发表于 2017-6-28 17:23:59 | 显示全部楼层
似乎百度地图JS API不支持重复使用的,每加载一次就只能用一次;
回复 支持 反对

使用道具 举报

13

主题

313

帖子

399

积分

中级会员

Rank: 3Rank: 3

积分
399
QQ
发表于 2017-6-29 14:35:04 | 显示全部楼层
1)wex5用的什么版本3.6还是3.7
2)3.6加载本身就有问题
3)3.7进行了修复
回复 支持 反对

使用道具 举报

140

主题

573

帖子

1080

积分

金牌会员

Rank: 6Rank: 6

积分
1080
QQ
 楼主| 发表于 2017-6-29 15:55:23 | 显示全部楼层
3.6的
我对案例web版的地图:
http://docs.wex5.com/integrate-map/
案例:/UI2/demo/misc/map/map.w

进行测试,案例跟我的效果差不多!在主页面MAIN上点击打开map.w,第一次正常,第二次显示不正常!还是没解决!
大概问题,应该是页面缓存问题!第二次打开的时候,页面有缓存了!
还在测试中,暂时还是无解!
回复 支持 反对

使用道具 举报

发表于 2017-6-29 19:15:58 | 显示全部楼层
ipan 发表于 2017-6-29 15:55
3.6的
我对案例web版的地图:
http://docs.wex5.com/integrate-map/

那就只让加载一次就可以了啊!不要加载多次!
或者你写好判断提交!加载过就不要加载了!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

140

主题

573

帖子

1080

积分

金牌会员

Rank: 6Rank: 6

积分
1080
QQ
 楼主| 发表于 2017-6-30 08:18:44 | 显示全部楼层
昨天使用iframe差不多可以解决问题!
总之,使用使用justep.Shell.showPage或者windowContainer去打开页面,然后再modelLoad中new BMap.Map的时候,脚步执行成功的,但是显示的地图有些显示不出来!只能显示左上角一小块地图;
大概,我猜就是第二次打开页面的时候页面被缓存了,没有从服务端加载,造成了new BMap.Map初始化地图失败!
回复 支持 反对

使用道具 举报

140

主题

573

帖子

1080

积分

金牌会员

Rank: 6Rank: 6

积分
1080
QQ
 楼主| 发表于 2017-6-30 08:22:49 | 显示全部楼层
其实,刚开始是想使用本地插件,但是,插件是封装了安卓跟苹果的,之前百度地图插件有些就有问题,还没在苹果系统好好测试过,担心插件有问题;并且使用插件的话,在微信中是打不开的;所以,最后还是选择web版的地图,虽然速度稍微慢一点,但是还是web版比较通用!而且由于是官方接口,bug少一点;
回复 支持 反对

使用道具 举报

发表于 2017-6-30 11:47:34 | 显示全部楼层
ipan 发表于 2017-6-30 08:22
其实,刚开始是想使用本地插件,但是,插件是封装了安卓跟苹果的,之前百度地图插件有些就有问题,还没在苹 ...

嗯!如果使用shell.showPage 打开页面!
js代码确实会缓存!你做好判断就行了!第一次初始化后!第二次判断如果 已经 初始化过了!就不要再次执行new BMap.Map了!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-13 01:55 , Processed in 0.062280 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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