Javascript 用于放大或缩小的事件
是否存在任何事件来检查用户是否最终放大地图或最终缩小地图 我们所做的是。。我们希望在服务器更改地图时将纬度或经度发送给服务器。例如,当他们结束拖动时,我们将向服务器发送纬度和经度,以加载位于该纬度和经度边界内的一些车间位置,并将销放在其上。因此,所有可能的事件都是用户拖动地图、放大、缩小和滚动。我们将不使用更改事件,因为它将始终向服务器发送数据Javascript 用于放大或缩小的事件,javascript,google-maps-api-3,Javascript,Google Maps Api 3,是否存在任何事件来检查用户是否最终放大地图或最终缩小地图 我们所做的是。。我们希望在服务器更改地图时将纬度或经度发送给服务器。例如,当他们结束拖动时,我们将向服务器发送纬度和经度,以加载位于该纬度和经度边界内的一些车间位置,并将销放在其上。因此,所有可能的事件都是用户拖动地图、放大、缩小和滚动。我们将不使用更改事件,因为它将始终向服务器发送数据 //Get bound of the map when a user dragged the map. google.maps.even
//Get bound of the map when a user dragged the map.
google.maps.event.addListener(map, 'dragend', function () {
bound = map.getBounds();
var latlng_NE = bound.getNorthEast();
var latlng_SW = bound.getSouthWest();
// Some code to send latitude or longtitude to server here
throw new Error(latlng_NE, latlng_SW);
});
从谷歌地图API文档
google.maps.event.addListener(map, 'zoom_changed', function() {
setTimeout(moveToDarwin, 3000);
});
)
编辑
我真的搞不懂,你想干什么?搞缩小活动。。它已经可以工作了,但我想知道为什么我们需要延迟3秒钟?这只是API页面中的一个例子。你的意思是:用户可以缩放、拖动、滚动等。所有动作都会改变地图的中心,你会通过向服务器发送消息作出反应,但只有在所有更改完成后,所以你不会在每一步之后发送消息,但是只有在复杂的行动发生之后?是的,这样我们就不会经常发送行动。。如果用户操作停止3秒以进行滚动,则可能会发生这种情况。
// closure
(function() {
var timeout = null;
var delay = 500;
function react() {
if (timeout) {
clearTimeout(timeout)
}
timeout = setTimeout(react, delay)
}
function sendBoundsToServer() {
bound = map.getBounds();
var latlng_NE = bound.getNorthEast();
var latlng_SW = bound.getSouthWest();
// some AJAX action to send bound to server
// ...
}
//Action after a user dragged the map.
google.maps.event.addListener(map, 'zoom_changed', function () {
// Some code to send latitude or longtitude to server here
setTimeout(sendMessageToServer, 1000)
});
google.maps.event.addListener(map, 'dragend', function () {
// Some code to send latitude or longtitude to server here
setTimeout(react, 1000)
});
// Add more events here like the two above
}())