百度地图API事件绑定问题-移动端

    百度地图开放平台-JavaScriptAPI使用事件绑定的时候发现一个设计缺陷(移动设备),以下是具体情况说明。
/** 创建地图函数 **/
var map = new BMap.Map("allmap");

var point = new BMap.Point(lng, lat);

/** 绑定触摸结束事件 **/
map.addEventListener("touchend", getPoint);

/**
* 地图点击回调函数,用来获取经纬度
* @param {Object} e 百度点击参数,包含很多信息
*/
function getPoint(e){
    point = new BMap.Point(e.point.lng, e.point.lat);//定义一个中心点坐标
}

代码段主要创建了一个地图实例,绑定了一个点击(触摸结束)事件。希望的用户使用场景是:

打开地图,用户可以用双指来控制地图缩放级别,可以拖动地图位置,并且单击选中自己想要的位置,然后程序获取用户点击位置的经纬度,并给对应位置添加一个标注。

然而,事与愿违。本人使用touchend事件绑定获取经纬度的函数,但是发现一个问题,即用户在移动设备上缩放地图或者拖动地图位置等其他接触地图的操作时,也会触发touchend事件,这个体验相信没有哪位朋友会喜欢,希望百度地图API的开发者能给移动端一个可用的单独的"CLICK"事件。

 

个人尝试过使用以下事件来满足本人的需求

1,Click 左键单机触发事件

移动端JS-Click事件本身就有兼容性问题,这个锅不给百度地图背...

 

2,Touchend 触摸结束时触发事件

百度地图API针对移动设备的事件类型只有以下四种:

touchstart 触摸开始时触发此事件,仅适用移动设备。(自 1.5新增)

touchmove 触摸移动时触发此事件,仅适用移动设备。(自 1.5新增)

touchend 触摸结束时触发此事件,仅适用移动设备。(自 1.5新增)

longpress 长按事件,仅适用移动设备。(自 1.5新增)

 

 

 

如果有朋友发现本人上述的问题是不存在的问题,请指出,感谢之至!如果也有遇到该问题的朋友也可以一起讨论一下

 

转载于:https://my.oschina.net/pengdake/blog/737935

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值