gpt4 book ai didi

android - 如何在谷歌地图中缩小/缩小到 x km 半径

转载 作者:行者123 更新时间:2023-11-29 17:54:50 27 4
gpt4 key购买 nike

我的数据库有各种兴趣点。我希望用户根据他们的位置看到他们。还有3个按钮,显示2km/5km/15km半径内的兴趣点。我无法对这些半径实现放大功能。所以我正在寻找缩放系数(从 2 到 21)和物理距离(以公里为单位)之间的关系。

我在 SO 的另一个问题上看到了这段代码。

private int calculateZoomLevel(int screenWidth) {
double equatorLength = 40075004; // in meters
double widthInPixels = screenWidth;
double metersPerPixel = equatorLength / 256;
int zoomLevel = 1;
while ((metersPerPixel * widthInPixels) > 2000) {
metersPerPixel /= 2;
++zoomLevel;
}
Log.i("ADNAN", "zoom level = "+zoomLevel);
return zoomLevel;
}

然而,这是用于 google maps v1 的,恐怕从那时起事情可能已经改变了。我能做到map.moveCamera(CameraUpdateFactory.newLatLngZoom(myLocation, 15f));以 15 的缩放系数放大到我的位置,但我现在不知道 map 的半径。

谢谢

最佳答案

您可以使用 map 的 VisibleRegion (GoogleMap.getProjection().getVisibleRegion()) 并计算 nearLeft 和 nearRight 坐标之间的距离来获取以公里为单位的当前屏幕宽度。这将为您提供 map 下边缘的范围。这有点取决于你对“半径”的意思,这是否足够准确。

缩放因子在 GoogleMap API V2 中的行为应该仍然相同:增量 1 应该使距离加倍。 (我没有检查,但我得出结论,整个地球映射到的瓦片数量取决于缩放级别:它是 4 ^ zoomlevel 因为瓦片数量在 x 和 y 维度上都翻了一番,每个缩放级别。)

关于android - 如何在谷歌地图中缩小/缩小到 x km 半径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20195859/

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