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

QQ登录

只需一步,快速开始

查看: 3918|回复: 8

wex5 3.4 百度地图2.0及页面传参分享

  [复制链接]

3

主题

9

帖子

85

积分

初级会员

Rank: 2

积分
85
QQ
发表于 2016-4-29 16:31:35 | 显示全部楼层 |阅读模式
本帖最后由 ludy 于 2016-4-29 16:34 编辑

参考Demo地图示例,百度api,以及x5页面交互demo制作。目录说明及实现功能介绍:
1. index.w: 定义ShellImpl,采用的shell跳转。必须定义这个,不定义的话,需要使用window方法。
2. main.w:部分外卖示例的内容,放了定位功能和定义了个定位按钮,传坐标给map页面,并接收map返回的string参数,放到文本框里。如何放到外卖里,不做说明了。
3. bmap/map.w:
   1)接收main页面的参数,做了判断,有参数,按参数坐标启动地图,没有就默然启动到北京。
   2)加了城市切换(注意,百度api用2.0,1.4不支持这个方法)
   3)鼠标单击事件,并将鼠标点击的坐标,解析成地址(判断是否是直辖市,直辖市不显示省份),放到文本框里。
   4)确认使用后,将地址传参给main页面,并显示在main页面的文本框里。
   另外说明一下。如果是window跳转,或者单独打开页面,可以直接初始化示例,把请求的参数放到源文件的window下面。
示例:
.w源文件
  1. <div xmlns="http://www.w3.org/1999/xhtml" xid="window" class="window" component="$UI/system/components/justep/window/window"
  2.   design="device:m;">  
  3.   <script src="http://api.map.baidu.com/api?v=2.0&ak=您的key"/>  
  4.   <div component="$UI/system/components/justep/model/model" xid="model" onLoad="modelLoad"/>  
复制代码
js文件
  1. Model.prototype.modelLoad = function(event) {
  2.                 // 百度地图API功能
  3.                 var point = new BMap.Point(116.404, 39.915);
  4.                 map.centerAndZoom(point, 15);
  5.                 var marker = new BMap.Marker(point);
  6.                 map.addControl(new BMap.MapTypeControl());
  7.                 map.enableScrollWheelZoom(true);
  8.                 map.addOverlay(marker);
  9. };
复制代码
如果要用shell跳转,必须要用函数请求回调。
.w文件不需要修改,直接js回调。代码贴不下。就去参考起步提供的map示例,或者我的附件。

具体原因不太清楚。估计是,直接加载或者window跳转,是从头开始启动的。所以在启动前,已经把百度的api请求加载进去了。
但是shell跳转,好像是跳过了window示例,直接调用的onModelLoad方法。所以在源码页面添加的< script />没有请求进去,就会出现BMAP没定义的错误。

另外,本来打算直接用百度地图Api的定位函数的。发现在safari浏览器正常,chrome浏览器,就会报一堆什么f.XX 没定义的错误。不知道啥原因。不搞了。
就直接使用传参了。


源码
try.zip (5.48 KB, 下载次数: 315)

评分

参与人数 1威望 +20 收起 理由
Masion + 20 赞赏分享精神

查看全部评分

93

主题

570

帖子

1411

积分

金牌会员

Rank: 6Rank: 6

积分
1411
QQ
发表于 2016-5-4 14:22:55 | 显示全部楼层
谢谢分享!

请问怎么获取经纬度呀
qq:7953899
回复 支持 反对

使用道具 举报

3

主题

9

帖子

85

积分

初级会员

Rank: 2

积分
85
QQ
 楼主| 发表于 2016-5-4 18:12:04 | 显示全部楼层
不羁的风 发表于 2016-5-4 14:22
谢谢分享!

请问怎么获取经纬度呀

定位获取,还是地图点击获取?
我是用起步提供的baidu定位,做的。你可以直接看 外卖 的视频,学习下。
或者看我代码里面的main.js,定位按钮的locationBtnClick事件。

地图点击的话,你看下map.js,鼠标单击,我做备注了。
回复 支持 反对

使用道具 举报

93

主题

570

帖子

1411

积分

金牌会员

Rank: 6Rank: 6

积分
1411
QQ
发表于 2016-5-4 18:58:47 | 显示全部楼层
justep.Shell.closePage( inParams);

还想问一下  在关闭页面的时候可以传参吗  类似上面这种写法
qq:7953899
回复 支持 反对

使用道具 举报

93

主题

570

帖子

1411

积分

金牌会员

Rank: 6Rank: 6

积分
1411
QQ
发表于 2016-5-4 19:00:01 | 显示全部楼层
因为打开页面传参的话   我上一页的导航栏会不见   关闭页面传参的话就不会出现这种情况  请问可以在关闭页面的时候传参吗
qq:7953899
回复 支持 反对

使用道具 举报

377

主题

2594

帖子

5117

积分

论坛元老

Rank: 8Rank: 8

积分
5117
QQ
发表于 2016-5-7 13:21:31 | 显示全部楼层
感谢楼主,你的实例解决了我的大问题
长春鱼熊企业管理咨询有限公司



X5开发出入库培训视频
(出处: 起步论坛)
回复 支持 反对

使用道具 举报

1014

主题

4371

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
10979
QQ
发表于 2016-5-8 12:06:32 | 显示全部楼层
发现在safari浏览器正常,chrome浏览器,就会报一堆什么f.XX 没定义的错误

关注下requirejs,应该是js加载问题
孤舟蓑笠翁,独钓寒江雪。
X5牛刀交流民间第一群:30057529
提供有偿服务,联系WX:18332024
bex5疑难问题解决方案
回复 支持 反对

使用道具 举报

56

主题

370

帖子

963

积分

高级会员

Rank: 4

积分
963
QQ
发表于 2016-5-12 13:27:53 | 显示全部楼层
已收藏,感谢楼主分享。
回复 支持 反对

使用道具 举报

5

主题

15

帖子

27

积分

新手上路

Rank: 1

积分
27
QQ
发表于 2016-10-27 20:28:32 | 显示全部楼层
多谢楼主,解决了困扰着我的问题,楼主威武,这帖子不火不行
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-23 15:56 , Processed in 0.059648 second(s), 27 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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