放大标记google.maps

时间:2011-02-20 00:40:46

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

我无法正确缩放到标记。

我正在尝试将视图切换到指定的标记,但无法使ge tit工作。

我试过

map.setCenter(location);
map.setZoom(20);

map.fitBounds(new google.maps.latLngBounds(location,location));

但是在第一种情况下,我只是在没有注册中心变化的情况下放大,而在第二种情况下,我会在一个巨大的区域内得到这个概述,而不是放大。

也许这个问题可以通过设置从setcenter到setzoom的时间来解决,但这对我来说是一个丑陋的黑客,所以更喜欢更优秀的解决方案。

你们是怎么做到的?

此外 - 如果可以在不改变内容的情况下显示信息窗口,那将真正是一个加分,但最重要的是放大到正确位置的标记,关闭。

非常感谢你。

3 个答案:

答案 0 :(得分:87)

解决方案原来是

map.setZoom(17);
map.panTo(curmarker.position);

答案 1 :(得分:8)

我想我会在这里发布一个答案,因为人们想要一些示例代码。

一旦将标记添加到地图中,我也需要能够放大并居中。

希望这有助于某人。

function getPoint(postcode) {

    var geocoder = new google.maps.Geocoder();

    geocoder.geocode( { 'address': postcode + ', UK'}, function(results, status) {
        if (status == google.maps.GeocoderStatus.OK) {

            var marker = new google.maps.Marker({
                map: map,
                position: results[0].geometry.location
            });

            map.setZoom(10);
            map.panTo(marker.position);
        }
        else {
            alert('Geocode was not successful for the following reason: ' + status);
        }
    });
}

答案 2 :(得分:3)

这是您正在创建的地图对象的新实例吗?如果是这样,你可以只有一个包含位置和缩放的对象,然后将这个对象传递给地图,就像这样开始它(取自Gmaps基础教程http://code.google.com/apis/maps/documentation/javascript/basics.html

function initialize() {
var myLatlng = new google.maps.LatLng(-34.397, 150.644);
var myOptions = {
zoom: 8,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
}