我正在使用google maps api的項目。我希望用戶擁有的一個功能是能夠通過長按/單擊添加標記,但前提是地圖尚未移動(即中心保持不變)。使用Javascript來檢查地圖中心是否移動了移動設備
//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。如果超時完成而沒有釋放它,那麼它將調用一個函數,該函數首先檢查地圖的當前中心與事件開始時設置的地圖中心,如果它們是相同的標記,則不執行任何操作。
這工作正常在我的桌面上,但總是讀取中心,因爲我的手機上是相同的,我不明白爲什麼。
任何想法,爲什麼這可能會在桌面上,但不是在移動?
感謝您的快速響應!我補充說,但它仍然只能在桌面上運行。無法完全說明,但我不確定Google Maps API是否會在移動中釋放手指之前註冊中心更改,即使它立即在桌面上註冊 – SomeSchmo