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

QQ登录

只需一步,快速开始

查看: 1892|回复: 5

[结贴] 百度地图的点击拾取坐标问题

[复制链接]

5

主题

14

帖子

49

积分

新手上路

Rank: 1

积分
49
QQ
发表于 2015-7-30 13:09:25 | 显示全部楼层 |阅读模式
还是参考的外卖的百度地图,在map.html里边加如下代码:
  1. map.addEventListener("click",function(e){
  2.          if (confirm("选定坐标:"+e.point.lng+","+e.point.lat+"?")){
  3.            window.parent.setPosition(e.point.lng,e.point.lat);
  4.          }
  5.        })
复制代码
通过浏览器测试正常,但打成apk安装后,却弹不出对话框,感觉好诡异。其他的api都可以,如搜索啥的

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36174
发表于 2015-7-30 16:48:20 | 显示全部楼层
window.parent.setPosition这个是打开弹出框的?
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

5

主题

14

帖子

49

积分

新手上路

Rank: 1

积分
49
QQ
 楼主| 发表于 2015-7-30 17:44:18 | 显示全部楼层
不是,我是通过window.parent.setPosition调用iframe的父页面的方法,把值赋给上层的window,在上层的w文件调用一个定时器,发现一旦window有相应值,就调用model里边定义的方法。因为一直没有找到一个好的iframe调用上层w文件的model方法的处理方法
回复 支持 反对

使用道具 举报

5

主题

14

帖子

49

积分

新手上路

Rank: 1

积分
49
QQ
 楼主| 发表于 2015-7-30 17:47:49 | 显示全部楼层
我解决了这个问题了,把click事件改成touchend事件来解决了,手机点击还挺快的。参考的http://imwelkin.lofter.com/post/1ce8cc_7dc4e1
map.addEventListener("touchend",function(e){
         if (confirm("选定坐标:"+e.point.lng+","+e.point.lat+"?")){
           window.parent.setPosition(e.point.lng,e.point.lat);
         }
       })
回复 支持 反对

使用道具 举报

1

主题

8

帖子

46

积分

新手上路

Rank: 1

积分
46
QQ
发表于 2015-8-17 11:36:35 | 显示全部楼层
weiyongqing 发表于 2015-7-30 17:47
我解决了这个问题了,把click事件改成touchend事件来解决了,手机点击还挺快的。参考的http://imwelkin.lof ...

你好,你能分享一下你的源码吗?我也碰到这现个问题,一直不知道怎么把地图上的定位数据传给主页面
回复 支持 反对

使用道具 举报

5

主题

14

帖子

49

积分

新手上路

Rank: 1

积分
49
QQ
 楼主| 发表于 2015-8-23 20:53:14 | 显示全部楼层
好的,抱歉刚看到代码,在地图的js代码这样写:
  1.        map.addEventListener("touchend",function(e){
  2.          if (confirm("选定坐标:"+e.point.lng+","+e.point.lat+"?")){
  3.            window.parent.position = {lng:lng,lat:lat};
  4.          }
  5.        });
复制代码
把值赋给父窗口window
我是这样写的,然后在主页面的js里边:
  1.     this.watchPosition = setInterval(function(){
  2.       if (window.position && window.position.lng!=''){
  3.         clearInterval(_self.watchPosition);
  4.         
  5.         _self.comp('mapDataReceiver').windowEnsure(window.position);
  6.         window.position = null;
  7.         _self.comp('mapDataReceiver').windowCancel();
  8.       }

  9.     },1000);
复制代码
用个定时器监听window的position,有就传递出去了,应该不算最优方法,望有更好的方法
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-10 13:13 , Processed in 0.050566 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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