在Google Maps V3上禁用拖动惯性/动量

pix*_*eak 7 google-maps google-maps-api-3

有没有办法在谷歌地图V3上禁用拖曳惯性?看起来它应该是一个MapOption,但我找不到任何方法来做到这一点.

Edg*_*erg 5

我今天遇到了同样的问题,一些自定义 Div 漂浮在地图上方,需要在地图移动上重新定位。只要用户在拖动后完全停止然后松开鼠标(因此不会有动量),我的重新定位就可以正常工作,但如果只是快速拖动并释放 div,最终会有点偏离。

为了解决这个问题,我连接了拖动事件和空闲事件:

var map = /* All the map config */
var stickyCenter = map.getCenter();
/* ... Code ... */
google.maps.event.addListener(map, 'drag', function(){ stickyCenter = map.getCenter(); });
google.maps.event.addListener(map, 'idle', function() { map.setCenter(stickyCenter); });
Run Code Online (Sandbox Code Playgroud)

发生的情况是,在您拖动并且地图停止后(动量完成后),地图“捕捉”回原位。

如果捕捉太突然,人们可能会以某种方式平移或设置动画。希望这会有所帮助,它并不完美,但它是扭转阻力事件势头的一种方法。


Orw*_*ile 5

使用未记录的选项,disablePanMomentum 例如:

new google.maps.Map(document.getElementById(id), {
    disablePanMomentum: true,
    backgroundColor: 'none',
    disableDefaultUI: true,
    center: {
        lat: 40.674,
        lng: -73.945
    },
    zoom: 2,
    ...
Run Code Online (Sandbox Code Playgroud)


ple*_*xer 2

目前 Maps API V3 无法完成此操作。考虑在此处提交功能请求:

http://code.google.com/p/gmaps-api-issues/