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

QQ登录

只需一步,快速开始

查看: 2272|回复: 8

[结贴] Wex5中,不同页面加载百度地图时,怎么处理呢?

[复制链接]

7

主题

33

帖子

93

积分

初级会员

Rank: 2

积分
93
QQ
发表于 2017-10-31 19:11:39 | 显示全部楼层 |阅读模式
在主页.w页加载了地图,创建地图对象,显示实时坐标点。
在子页.w文件也需要加载百度地图,根据多个坐标点显示折线轨迹。
现在如果我在子页中再次创建地图对象,主页的地图对象就被覆盖了。

子页的地图应该如何处理?

99

主题

216

帖子

870

积分

高级会员

Rank: 4

积分
870
QQ
发表于 2017-11-1 08:46:51 | 显示全部楼层
可以交流下那个地图这么显示,我这边也在做那个地图,经纬度获取到然后怎么把值传到地图里面呀。
回复 支持 反对

使用道具 举报

发表于 2017-11-1 10:38:48 | 显示全部楼层
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

7

主题

33

帖子

93

积分

初级会员

Rank: 2

积分
93
QQ
 楼主| 发表于 2017-11-2 10:10:47 | 显示全部楼层
liangyongfei 发表于 2017-11-1 10:38
http://docs.wex5.com/wex5-ui-question-list-0003/

http://docs.wex5.com/wex5-app-question-list-2040/

这种方法,自己集成百度web地图

Model.prototype.loadBaiduMap = function() {
                var id = this.getIDByXID("baiduMap");
                window._baiduInit = function() {
                        var map = new BMap.Map(id);
                        map.centerAndZoom(new BMap.Point(116.397428, 39.90923), 12);
                        map.addControl(new BMap.MapTypeControl());
                        map.setCurrentCity("北京");
                        map.enableScrollWheelZoom(true);
                };
                require([ 'http://api.map.baidu.com/api?v=1.4&ak=您的密钥&callback=_baiduInit' ], function() {
                        if (!(window.BMap && window.BMap.apiLoad)){
                                window._baiduInit();
                        }
                });
        };
回复 支持 反对

使用道具 举报

7

主题

33

帖子

93

积分

初级会员

Rank: 2

积分
93
QQ
 楼主| 发表于 2017-11-2 10:12:08 | 显示全部楼层
boss2967 发表于 2017-11-1 08:46
可以交流下那个地图这么显示,我这边也在做那个地图,经纬度获取到然后怎么把值传到地图里面呀。 ...

我用的是这种方法。
Model.prototype.loadBaiduMap = function() {
                var id = this.getIDByXID("baiduMap");
                window._baiduInit = function() {
                        var map = new BMap.Map(id);
                        map.centerAndZoom(new BMap.Point(116.397428, 39.90923), 12);
                        map.addControl(new BMap.MapTypeControl());
                        map.setCurrentCity("北京");
                        map.enableScrollWheelZoom(true);
                };
                require([ 'http://api.map.baidu.com/api?v=1.4&ak=您的密钥&callback=_baiduInit' ], function() {
                        if (!(window.BMap && window.BMap.apiLoad)){
                                window._baiduInit();
                        }
                });
        };
回复 支持 反对

使用道具 举报

7

主题

33

帖子

93

积分

初级会员

Rank: 2

积分
93
QQ
 楼主| 发表于 2017-11-2 10:13:06 | 显示全部楼层
boss2967 发表于 2017-11-1 08:46
可以交流下那个地图这么显示,我这边也在做那个地图,经纬度获取到然后怎么把值传到地图里面呀。 ...

我用的4#楼那种方法。把经纬度标注在地图上的。
回复 支持 反对

使用道具 举报

发表于 2017-11-2 10:34:35 | 显示全部楼层
dodevice 发表于 2017-11-2 10:10
这种方法,自己集成百度web地图

Model.prototype.loadBaiduMap = function() {

那就是没有使用cordova 插件!  而是直接js去调用 百度API 显示web 页面 地图 实现的是吧!
你也看到了!他是直接在window对象,全局对象上操作的!

而x5是单页应用! window对象当然会冲突的!
唯一的实现方法是!子页面中可以使用iframe嵌套 实现!这样 window就不会冲突了!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

7

主题

33

帖子

93

积分

初级会员

Rank: 2

积分
93
QQ
 楼主| 发表于 2017-11-2 16:31:22 | 显示全部楼层
liangyongfei 发表于 2017-11-2 10:34
那就是没有使用cordova 插件!  而是直接js去调用 百度API 显示web 页面 地图 实现的是吧!
你也看到了! ...

恩,按照你说的这种方式,可以了。谢谢。
回复 支持 反对

使用道具 举报

7

主题

33

帖子

93

积分

初级会员

Rank: 2

积分
93
QQ
 楼主| 发表于 2017-11-2 16:36:48 | 显示全部楼层
追问个定时器的问题。
modelLoad中,定义locationTimer 为全局变量,如下。
window.locationTimer = "";
window.me = this;

在其他地方调用了 setInterval定时器。定时器只执行了一次,但是locationTimer的值是undefined。导致定时器无法clearInterval
locationTimer = setInterval(function(){me.getDeviceLocation(event);}, 2000);

请问这是什么原因?怎么解决啊。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-28 11:47 , Processed in 0.108858 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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