【发布时间】:2016-08-05 04:01:10
【问题描述】:
我正在开发一个使用 google maps api 的项目。我希望用户拥有的一项功能是能够通过长按/单击添加标记,但前提是地图没有移动(即中心保持不变)。
//event listener
google.maps.event.addListener(map, 'mousedown', function(event){
//current center
var centerPoint = map.getCenter();
var latLng = event.latLng;
//timeout function
var counter = setTimeout(function(){
//function called
setPressedLocationMarker(latLng, centerPoint);
}, 1500);
google.maps.event.addListener(map, 'mouseup', function(){
clearTimeout(counter)
});
});
//function in question
function setPressedLocationMarker(latLng, centerPoint) {
if (centerPoint == map.getCenter()) {
//DO STUFF
}
}
为此,我为获得当前中心的 mousedown 事件添加了一个事件侦听器,并启动了 Timeout。如果超时在没有释放它们的情况下完成,那么它将调用一个函数,该函数首先检查地图的当前中心与事件开始时设置的中心,如果它们相同,则设置一个标记,否则什么也不做。
这在我的桌面上运行良好,但在我的手机上总是将中心读取为相同,我不知道为什么。
任何想法为什么这可能适用于桌面而不是移动设备?
【问题讨论】:
标签: javascript google-maps mobile