为什么在Google Maps API v3中删除了“重置为初始地图状态”按钮?

时间:2010-08-04 09:02:34

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

我想知道为什么我们知道为什么“重置为初始地图状态”按钮/功能似乎已被删除在Google Maps API v3中?

在API v2中,箭头按钮中间的手形按钮是一种“主页​​”或“重置”按钮,可将地图重新​​调整到其初始位置和缩放级别。

当然不是世界末日,只是好奇......

2 个答案:

答案 0 :(得分:3)

我认为,因为开发人员很容易做到这一点并且它不是一个非常广泛使用的功能,因此他们可能决定不使用只有少数人使用的代码来减轻所有人的负担。

您可以做的是在页面上添加自定义控件,当用户点击它时,然后将地图移回到您想要的缩放和中心。收集它的一种方法是收听地图'idle'事件,然后将超时设置为仅在未触摸X秒后存储地图位置。当然这看起来不像v2版本:))

答案 1 :(得分:1)

这是一个让重置按钮在v3上运行的小黑客。我在这里使用jQuery。

var attachEventToResetButton;

// Attach event to the reset button
var attachResetEvent = function(){
    var $resetImg = $('img[src*=mapcontrols3d6.png]');

    // We have to check if the image is available yet.
    // The reason is although the map has been loaded, the navigation might
    // take some time to load and we don't know when it will be fully loaded.
    // There doesn't seem to have an event for "Navigation loaded" in the API
    // So here is a way to work around
    if ($resetImg.length > 0)
    {
        $resetImg.css('cursor', 'pointer').attr('title', 'Return to center').click(function(){
            alert('Clicked on reset button');

            // Put your code to reset the map here. For example:
            //map.setMapTypeId(MAP_TYPE_ID);
            //map.setCenter(new google.maps.LatLng(LAT, LNG));
            //map.setZoom(ZOOM_LEVEL);
        });

        window.clearInterval(attachEventToResetButton);
    }
}

// Periodically checking to attach event to the reset button
attachEventToResetButton = window.setInterval(attachResetEvent, 500);

我做的是,我注意到重置图像文件名是'mapcontrols3d6.png'。所以我设置一个间隔来检查该图像是否已经加载(即可用)。如果是,我将一个函数附加到其中。

由于这是一个黑客,它有一些问题。主要的是我们必须依赖重置图像文件名。所以手指交叉,谷歌不会更新。

有没有人有更好的方法?