缩放到Google Maps API V3中的地图中心

时间:2011-12-01 01:17:43

标签: javascript google-maps google-maps-api-3

我是新手使用谷歌地图,我试图找出如何限制缩放功能,以便它不会缩放除地图中心以外的任何地方,而不是缩放到鼠标点。基本上,无论鼠标指针在地图上的哪个位置,它都会缩放到返回地图的中心,而不是缩放鼠标指针在地图上的位置。我甚至不知道目前是否可能,我们将不胜感激。

<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>

3 个答案:

答案 0 :(得分:5)

有几种缩放类型:

  • 使用缩放控制 - 缩放到地图的中心
  • 使用滚轮 - 在您投诉时缩放到鼠标指针
  • 使用双击 - 首先使鼠标指针下方的位置居中,然后缩放

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

此外,你可以处理dblclick map事件(滚轮事件不是那么简单,但也许你会找到一种方法how to handle the scroll wheel in javascript)并且在这个处理程序中只需使用map.setZoom()更改地图比例。地图中心将保持不变。相当容易。

答案 1 :(得分:2)

或者通过在缩放变化时重新定位地图来处理此问题。这样可以在双击和滚轮上保留预期的功能。

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

答案 2 :(得分:0)

从我在代码中看到的内容,您可以放大上面声明的latlng变量。那是正确的。然后,myOptions变量将传递到新的map声明中。所以你应该集中在51.285583,1.091045,这是英国的Caterbury Kent。

如果这是你的鼠标指向的位置它正在工作,如果这没有帮助我建议从谷歌示例复制一个例子,并删除你的第一个演示不需要的。

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