当前位置: 首页 > 知识库问答 >
问题:

谷歌街景放大到视野

孟光耀
2023-03-14

我需要完全按照用户选择的方式保存街景图像(包括全景、航向、俯仰和视野)。我有以下代码:

            panorama = new google.maps.StreetViewPanorama(document.getElementById('pano'));
            panorama.addListener('pano_changed', function () {
                $('#panoID').val(panorama.getPano());
            });
            panorama.addListener('pov_changed', function () {
                $('#heading').val(panorama.getPov().heading);
                $('#pitch').val(panorama.getPov().pitch);
                $('#fov').val(panorama.getZoom());
            });

问题是我想保存缩放为fov值https://developers.google.com/maps/documentation/streetview/intro(看fov可选参数)

fov(默认值为90)确定图像的水平视野。视野以度表示,最大允许值为120。当处理固定大小的视口时,就像处理设置大小的街景图像一样,视野本质上代表缩放,较小的数字表示更高级别的缩放。

我找到了一些“转换”信息https://developers.google.com/maps/documentation/javascript/streetview#TilingPanoramas

但它告诉我们,fov可以持续到180,但prev。链接告诉120的值是最大值。为什么?当然,我可以找到转换的比率,但可能存在正常的方式(即全景返回Fov而不是缩放)?

而且,在pov_changed中捕捉缩放似乎不是最好的方法。有时缩放没有正确更新

共有2个答案

姜育
2023-03-14

您可以使用以下公式将fov转换为缩放:

>

  • fov放大:

    缩放=Math.log(180/fov)/(Math.log(2))

    反之亦然:

    >

    fov=180/数学。pow(2,缩放

    原始答案

  • 伯庆
    2023-03-14

    找到了以下从缩放转换为FOV的函数:

    var k = Math.pow(0.5051, zoom);
    var fov = 103.7587 * k;
    

    它的工作原理(几乎完全正确):)

    补充

    更精确的结果:

    var fov = 180 / Math.pow(2,zoom) 
    

    感谢trungk18

     类似资料:
    • 我正在尝试使用谷歌街景API获取街景图像。我的代码适用于除法国以外的所有国家。出于某种原因,当我试图从法国任何地方获取数据时,我只会得到一张灰色图像,上面写着“对不起,我们这里没有图像。”但是,我知道那里有图像,因为我可以通过你的谷歌网站使用谷歌街景,看到街景。 例如,如果我去https://maps.google.com/maps/ms?ie=UTF8 知道我做错了什么吗?为什么会这样?

    • 有人知道一个公式,我可以用它来转换从谷歌地图缩放Android API:https://developers.google.com/maps/documentation/android-api/streetview到谷歌街景图像API中使用的FOV:https://developers.google.com/maps/documentation/streetview/intro? 我在这里找到了几

    • 我们使用谷歌街景图像应用编程接口(而不是Javascript应用编程接口)来构建一个返回街景图像的网址。问题是,有时它会返回建筑物内部的图像,而不是提供地址的建筑物图像,例如: https://maps.googleapis.com/maps/api/streetview?size=600x300 是否有只显示户外图像的解决方案/解决方法?

    • 我知道可以使用谷歌API视觉在网上找到类似的图片。我的目标是根据我的图像数据库找到类似的图像。我不想在网上看到类似的图片。 可能吗? 如果是,你能给我一些链接或建议吗? 谢谢

    • 我正在开发Android谷歌地图应用程序,但我用来获取用户附近地方结果的查询字符串不起作用。 我正在使用此链接获取Maps API密钥。 以下是我收到的回复。 谢谢

    • (1)https://stackoverflow.com/questions/34247347/initialize-google-map-to-zoom-to-bounds(2)bounds google maps (3)在google maps android api v2中设置最大缩放级别(4)android map v2缩放显示所有标记 (5)在android中调整google map(a