gpt4 book ai didi

javascript - 谷歌街景缩放到 Fov

转载 作者:搜寻专家 更新时间:2023-11-01 05:04:16 31 4
gpt4 key购买 nike

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

            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 (default is 90) determines the horizontal field of view of the image. The field of view is expressed in degrees, with a maximum allowed value of 120. When dealing with a fixed-size viewport, as with a Street View image of a set size, field of view in essence represents zoom, with smaller numbers indicating a higher level of zoom.

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

enter image description here

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

此外,在 pov_changed 中捕捉放大似乎不是最好的方法。有时缩放未正确更新

最佳答案

找到了下面这个从缩放到FOV转换的函数:

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

它有效(几乎完全正确):)

已添加

更精确的结果:

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

感谢 trungk18

关于javascript - 谷歌街景缩放到 Fov,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35327235/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com