Google maps 谷歌地图:如何计算;“双”字;缩放级别?

Google maps 谷歌地图:如何计算;“双”字;缩放级别?,google-maps,Google Maps,到 这是解决我问题的好办法 现在,问题是:我如何计算“加倍”缩放级别 编辑 意思是: 地图正在看一个2平方公里的正方形,我想缩小看一个4平方公里的正方形 执行newZoom=oldZoom*2不起作用:-((使用SetZoom()方法: map.setZoom(oldZoom * 2); 同样使用GetZoom(): 最大缩放级别通常为19。0是最大的缩放级别 值得注意的是,地图的每个部分并非总是可以缩放到19,以下是关于它的更多信息: 以及可以进一步缩放的部分: 使用SetZoom()

这是解决我问题的好办法

现在,问题是:我如何计算“加倍”缩放级别


编辑

意思是:

地图正在看一个2平方公里的正方形,我想缩小看一个4平方公里的正方形


执行
newZoom=oldZoom*2
不起作用:-((

使用
SetZoom()
方法:

map.setZoom(oldZoom * 2);
同样使用GetZoom():

最大缩放级别通常为19。0是最大的缩放级别

值得注意的是,地图的每个部分并非总是可以缩放到19,以下是关于它的更多信息:

以及可以进一步缩放的部分:

使用
SetZoom()
方法:

map.setZoom(oldZoom * 2);
同样使用GetZoom():

最大缩放级别通常为19。0是最大的缩放级别

值得注意的是,地图的每个部分并非总是可以缩放到19,以下是关于它的更多信息:

以及可以进一步缩放的部分:

使用
SetZoom()
方法:

map.setZoom(oldZoom * 2);
同样使用GetZoom():

最大缩放级别通常为19。0是最大的缩放级别

值得注意的是,地图的每个部分并非总是可以缩放到19,以下是关于它的更多信息:

以及可以进一步缩放的部分:

使用
SetZoom()
方法:

map.setZoom(oldZoom * 2);
同样使用GetZoom():

最大缩放级别通常为19。0是最大的缩放级别

值得注意的是,地图的每个部分并非总是可以缩放到19,以下是关于它的更多信息:

以及可以进一步缩放的部分:

虽然我还不确定你想要实现什么,但我做到了。这看起来有点傻,但我真的不知道还能是什么

代码段:

google.maps.event.addDomListener(zoomInButton, 'click', function () {
        if (newZoom <= 19) {

            oldZoom = newZoom;
            newZoom = oldZoom * 2; //maptOptions.zoom is the  initial oldZoom

            alert("New zoom is: " + newZoom);
            alert("Old zoom is: " + oldZoom);
            map.setZoom(newZoom);
        } else {
            alert("you have reached the maximum");


        }
    });

    // Setup the click event listener - zoomOut
    google.maps.event.addDomListener(zoomOutButton, 'click', function () {
        if (newZoom > 1) {
            oldZoom = newZoom;
            newZoom = parseInt(oldZoom / 2); 

            alert("New zoom is: " + newZoom);
            alert("Old zoom is: " + oldZoom);
            map.setZoom(newZoom);
        } else {
            alert("you have reached the minimum");


        }

    });
google.maps.event.addDomListener(缩放按钮,'click',函数(){
如果(新建缩放1){
oldZoom=newZoom;
newZoom=parseInt(oldZoom/2);
警报(“新缩放为:“+newZoom”);
警报(“旧缩放为:+oldZoom”);
map.setZoom(newZoom);
}否则{
警报(“您已达到最低值”);
}
});

fiddle URL:

虽然我还不确定你想要实现什么,但我做到了。这看起来有点傻,但我真的不知道还能是什么

代码段:

google.maps.event.addDomListener(zoomInButton, 'click', function () {
        if (newZoom <= 19) {

            oldZoom = newZoom;
            newZoom = oldZoom * 2; //maptOptions.zoom is the  initial oldZoom

            alert("New zoom is: " + newZoom);
            alert("Old zoom is: " + oldZoom);
            map.setZoom(newZoom);
        } else {
            alert("you have reached the maximum");


        }
    });

    // Setup the click event listener - zoomOut
    google.maps.event.addDomListener(zoomOutButton, 'click', function () {
        if (newZoom > 1) {
            oldZoom = newZoom;
            newZoom = parseInt(oldZoom / 2); 

            alert("New zoom is: " + newZoom);
            alert("Old zoom is: " + oldZoom);
            map.setZoom(newZoom);
        } else {
            alert("you have reached the minimum");


        }

    });
google.maps.event.addDomListener(缩放按钮,'click',函数(){
如果(新建缩放1){
oldZoom=newZoom;
newZoom=parseInt(oldZoom/2);
警报(“新缩放为:“+newZoom”);
警报(“旧缩放为:+oldZoom”);
map.setZoom(newZoom);
}否则{
警报(“您已达到最低值”);
}
});

fiddle URL:

虽然我还不确定你想要实现什么,但我做到了。这看起来有点傻,但我真的不知道还能是什么

代码段:

google.maps.event.addDomListener(zoomInButton, 'click', function () {
        if (newZoom <= 19) {

            oldZoom = newZoom;
            newZoom = oldZoom * 2; //maptOptions.zoom is the  initial oldZoom

            alert("New zoom is: " + newZoom);
            alert("Old zoom is: " + oldZoom);
            map.setZoom(newZoom);
        } else {
            alert("you have reached the maximum");


        }
    });

    // Setup the click event listener - zoomOut
    google.maps.event.addDomListener(zoomOutButton, 'click', function () {
        if (newZoom > 1) {
            oldZoom = newZoom;
            newZoom = parseInt(oldZoom / 2); 

            alert("New zoom is: " + newZoom);
            alert("Old zoom is: " + oldZoom);
            map.setZoom(newZoom);
        } else {
            alert("you have reached the minimum");


        }

    });
google.maps.event.addDomListener(缩放按钮,'click',函数(){
如果(新建缩放1){
oldZoom=newZoom;
newZoom=parseInt(oldZoom/2);
警报(“新缩放为:“+newZoom”);
警报(“旧缩放为:+oldZoom”);
map.setZoom(newZoom);
}否则{
警报(“您已达到最低值”);
}
});

fiddle URL:

虽然我还不确定你想要实现什么,但我做到了。这看起来有点傻,但我真的不知道还能是什么

代码段:

google.maps.event.addDomListener(zoomInButton, 'click', function () {
        if (newZoom <= 19) {

            oldZoom = newZoom;
            newZoom = oldZoom * 2; //maptOptions.zoom is the  initial oldZoom

            alert("New zoom is: " + newZoom);
            alert("Old zoom is: " + oldZoom);
            map.setZoom(newZoom);
        } else {
            alert("you have reached the maximum");


        }
    });

    // Setup the click event listener - zoomOut
    google.maps.event.addDomListener(zoomOutButton, 'click', function () {
        if (newZoom > 1) {
            oldZoom = newZoom;
            newZoom = parseInt(oldZoom / 2); 

            alert("New zoom is: " + newZoom);
            alert("Old zoom is: " + oldZoom);
            map.setZoom(newZoom);
        } else {
            alert("you have reached the minimum");


        }

    });
google.maps.event.addDomListener(缩放按钮,'click',函数(){
如果(新建缩放1){
oldZoom=newZoom;
newZoom=parseInt(oldZoom/2);
警报(“新缩放为:“+newZoom”);
警报(“旧缩放为:+oldZoom”);
map.setZoom(newZoom);
}否则{
警报(“您已达到最低值”);
}
});

小提琴URL:

缩放级别的每个增量都会使缩放比例加倍。若要缩小两倍,请在缩放级别上添加一倍

newZoom=oldZoom-1;
:

世界坐标反映给定投影上的绝对位置,但我们需要将其转换为像素坐标,以确定给定缩放级别上的“像素”偏移。这些像素坐标使用以下公式计算:

像素坐标=世界坐标*2缩放级别

从上面的等式中,请注意,每个增加的缩放级别在x和y方向上都是两倍大。因此,每个更高的缩放级别包含的分辨率是前一级别的四倍。例如,在缩放级别1,贴图由4个256x256像素的分片组成,从而形成512x512的像素空间。在缩放级别19,每个像素的分辨率都是前一级别的四倍可以使用0到256*219之间的值引用地图上的x和y像素


缩放级别的每一个增量都会使缩放比例加倍。若要缩小两倍,请在缩放级别上添加一个

newZoom=oldZoom-1;
:

世界坐标反映给定投影上的绝对位置,但我们需要将其转换为像素坐标,以确定给定缩放级别上的“像素”偏移。这些像素坐标使用以下公式计算:

像素坐标=世界坐标*2缩放级别

从上面的等式中,请注意,每个增加的缩放级别在x和y方向上都是两倍大。因此,每个更高的缩放级别包含的分辨率是前一级别的四倍。例如,在缩放级别1,贴图由4个256x256像素的分片组成,从而形成512x512的像素空间。在缩放级别19,每个像素的分辨率都是前一级别的四倍可以使用0到256*219之间的值引用地图上的x和y像素


缩放级别的每一个增量都会使缩放比例加倍。若要缩小两倍,请在缩放级别上添加一个

newZoom=oldZoom-1;
:

世界坐标