我通过使用 JQuery Mobile(vmousemove
事件) 模拟我自己的触摸功能来解决它。替换#map-element
为包含实际地图的元素的名称。还设置map
为允许您平移的 Google Maps 对象。它工作得很好。
注意:我只需要在 Chrome 上使用它,所以我没有尝试过任何其他浏览器。
var mouseIsDown = false;
var oldX = 0; var oldY = 0;
var newX = 0; var newY = 0;
var toid;
$("#map-element").on("vmousemove vmousedown", function(e) {
clearTimeout(toid);
if (e.target.id == "map-div") {
if (e.type == "vmousedown") { // resets all values
oldX = 0; oldY = 0; newX = 0; newY = 0;
mouseIsDown = true;
}
if (mouseIsDown) {
if (newX != 0 && newY != 0) {
oldX = newX;
oldY = newY;
newX = e.pageX;
newY = e.pageY;
map.panBy(-(newX - oldX), -(newY - oldY));
} else {
newX = e.pageX;
newY = e.pageY;
}
}
toid = setTimeout(function() {
mouseIsDown = false;
}, 100);
}