gpt4 book ai didi

android - 将位置放在用户周围一定半径的 map 上 - android

转载 作者:行者123 更新时间:2023-11-29 18:20:53 26 4
gpt4 key购买 nike

我正在开发一个 GPS 应用程序,并且正在考虑在用户周围放置标记的想法,就像在 Zombie Run 中那样。和 SpecTrek但对如何找出用户周围的位置完全感到困惑。

我一直在查看 Location 类的文档,并将 distanceTo() 函数用于其他用途以及 MapView 的 latitudeSpan()、longitudeSpan() 和 getProjection() 函数,但我想不出如何决定例如,用户周围 100 米的位置。

因为我知道用户的位置,我最多只会放置距用户约 1 公里的标记,我能否将该区域视为平坦区域而不是椭圆体,这样就可以获取用户的经度以及它们的纬度和 +/- 以在它们周围绘制标记(使用一些基本的三角函数,例如 x = cos(radius) 和 y = sin(radius) 以将其保持在玩家周围的半径大小的圆圈内)?

我不明白 long/lat 与实际标量距离的对应关系,因为 100long 100lat 与 90long 100lat 相距 10 米? (我知道这些值是完全错误的,但只是用它们来说明我的问题)。

谢谢你的时间,

无穷无尽

最佳答案

两个经/纬度点之间的距离是用haversine公式计算的。这是与理论的链接: http://www.movable-type.co.uk/scripts/latlong.html

为了您的目的,我会使用您已经提到的 distanceTo 方法。您拥有当前位置和所有兴趣点。只需为每个兴趣点调用 Location.distanceTo(Poi),如果距离大于 1000 米,您可以将该点绘制到 map 上。

如果您没有将 PoI 作为 Location 对象,只需像这样构建它们:

poiLocation = new Location(LocationManager.PASSIVE_PROVIDER);
poiLocation.setLatitude(latitude);
poiLocation.setLongitude(longitude);

我在类似雷达的应用程序中使用了 distanceTo 方法并且工作得很好。

关于android - 将位置放在用户周围一定半径的 map 上 - android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5524701/

26 4 0