gpt4 book ai didi

android - 谷歌街景 : Conversion between FOV and Zoom

转载 作者:行者123 更新时间:2023-11-29 01:28:00 24 4
gpt4 key购买 nike

有谁知道我可以使用 Google Maps Android API 中的 Zoom 进行转换的公式:https://developers.google.com/maps/documentation/android-api/streetview到 Google StreetView Image API 中使用的 FOV:https://developers.google.com/maps/documentation/streetview/intro

我在这里找到了几个旧公式:

  1. https://groups.google.com/forum/#!topic/google-maps-js-api-v3/uqKfg0ZBhWc
  2. https://groups.google.com/forum/#!msg/google-maps-image-apis/O_Odb0A7_0c/Q74cHCoRuscJ

然后我对它们进行测试,当我在我的 Android 手机上缩放相机时,将计算 FOV:

FOV1:3.9018*Math.pow(streetViewPanoramaCamera.zoom,2) - 42.432*streetViewPanoramaCamera.zoom + 123

FOV2:Math.abs(streetViewPanoramaCamera.zoom/5*108-120

FOV3:180/Math.pow(2,streetViewPanoramaCamera.zoom)

@Override
public void onStreetViewPanoramaCameraChange(StreetViewPanoramaCamera streetViewPanoramaCamera) {

Log.e("Pano", "Bearing: " + streetViewPanoramaCamera.bearing + " Tilt: " + streetViewPanoramaCamera.tilt +
" Zoom: " + streetViewPanoramaCamera.zoom +
" FOV1: "+ String.valueOf(3.9018*Math.pow(streetViewPanoramaCamera.zoom,2) - 42.432*streetViewPanoramaCamera.zoom + 123) +" FOV2: "+
Math.abs(streetViewPanoramaCamera.zoom/5*108-120) +" FOV3: "+ 180/Math.pow(2,streetViewPanoramaCamera.zoom) ) ;

}

在 android 上缩放为 0.0 时,我们返回以下 FOV 值:

09-27 15:53:52.322 E/Pano﹕ Bearing: 228.28955 Tilt: 14.516191 Zoom: 0.0 FOV1: 123.0 FOV2: 120.0 FOV3: 180.0

由于 FOV 的最大值为 120,因此 FOV2 的公式起初看起来很有希望,但是当我放大 2 倍时,它给了我 76.8 的值,这与实际值相去甚远:

09-27 16:01:48.235 E/Pano﹕ Bearing: 223.11241 Tilt: 1.852709 Zoom: 2.0 FOV1: 53.7432 FOV2: 76.8 FOV3: 45.0

这是放大 2 倍后我手机上的图像:

Google Map Android Streetview

这是在 FOV 76.8 ( https://maps.googleapis.com/maps/api/streetview?size=600x300&location=-33.87365,151.20689&heading=223.11241&pitch=1.852709&fov=76.8&key=APIKEY ) 从 Google Streetview Image API 下载的图像:

GoogleStreetView Image API 76.8

这是在 FOV 45 ( https://maps.googleapis.com/maps/api/streetview?size=600x300&location=-33.87365,151.20689&heading=223.11241&pitch=1.852709&fov=45&key=APIKEY ) 从 Google Streetview Image API 下载的图像:

GoogleStreetView Image API 45

我得到的最接近的结果是我是否将 FOV 设为 26,但这是我的猜测,并没有使用公式 - 下图是 FOV 26:

GoogleStreetView Image API 26

最佳答案

我最终不得不对直线进行回归以得出指数公式。

我使用了这个网站并手动输入了 FOV 和缩放值的数据点组合,它们可以很好地协同工作:http://www.had2know.com/academics/regression-calculator-statistics-best-fit.html

我的数据点是:

FOV(FOV 旁边括号中的 ZOOM)

120 (0)

50 (1)

45 (1.2)

37 (1.5)

26 (2)

69 (0.5)

78 (0.3)

31 (1.9)

要获得更接近的公式,您可以不断添加更多“合适”的数据点,但我只是没有时间 - 任何其他想要完善公式的人都可以尝试。

我得到下面的公式,其中 Y 是 FOV,X 是缩放。

Y = 103.7587(0.5051^X)

相关性 = -0.9882

关于android - 谷歌街景 : Conversion between FOV and Zoom,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32808818/

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