在Google Maps API V3中将地图缩放到中心

5

我刚接触谷歌地图,想知道如何限制缩放功能,使其仅在地图中心缩放而不会根据鼠标指针缩放。简单来说,它会根据返回的地图中心缩放,无论你的鼠标指针在地图上的位置,而不是根据鼠标指针所在位置缩放。我甚至不知道当前是否可能,希望能得到一些帮助。

<script type="text/javascript">
        function initialize() {
        var latlng = new google.maps.LatLng(51.285583, 1.091045);
        var myOptions = {
        zoom: 15,
        center: latlng,
        scrollwheel: true,
        navigationControl: false,
        mapTypeControl: false,
        scaleControl: false,
        draggable: false,
        mapTypeId: google.maps.MapTypeId.ROADMAP
        };
        var map = new google.maps.Map(document.getElementById("map_canvas"),
        myOptions);

        var marker = new google.maps.Marker({
            position: new google.maps.LatLng(51.285826, 1.089973),
            map: map,
            title: 'Run of The Mill',
            clickable: true
            });
        }
    </script>

看一下这个:https://dev59.com/VHE85IYBdhLWcg3wXCIv - Flukey
3个回答

5

有几种缩放类型:

  • 使用缩放控件 - 缩放到地图中心
  • 使用滚轮 - 鼠标指针所在位置为中心进行缩放
  • 使用双击 - 先将鼠标指针下的位置居中,然后再进行缩放

因此,如果您只想使用第一种缩放类型,可以通过将disableDoubleClickZoom和scrollwheel地图选项设置为false来禁用其他两种类型。

此外,您可以处理dblclick地图事件(滚轮事件不太直观,但也许您可以找到一种方法如何在JavaScript中处理滚轮),并在此处理程序中使用map.setZoom()更改地图比例尺。地图中心将保持不变。相当容易。


2

或者通过在缩放更改时重新将地图居中来处理。这将保留双击和滚轮的预期功能。

google.maps.event.addListener(map,'zoom_changed',function () {
  map.setCenter(new google.maps.LatLng(47.61388802057299,-122.31870898147581));
})

1
不是一个好的解决方案,因为地图移动到缩放点,然后回到所需中心的视觉效果绝对是错误的! - Jeremy Belolo

0

从您的代码中我可以看到,您正在缩放在上面声明的latlng变量上。这是正确的。然后将myOptions变量传递到新地图声明中。因此,您应该以51.285583、1.091045为中心,这是英国肯特郡的坎特伯雷。

如果您的鼠标指向那里,它就起作用了。如果这没有帮助,我建议从谷歌示例中复制一个示例,并剪切掉您第一个演示不需要的部分。

http://code.google.com/apis/maps/documentation/javascript/examples/index.html


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接