java - 安卓 |获取当前位置的北/东南/东/西经纬度和经度范围

标签 java android geolocation location compass

我正在一个应用程序上做一个项目,我需要根据我当前的位置发现其他设备。

我想以某种方式过滤这些设备,按照设备指向的北/南/东/西进行分类。

我读到一些文章说将 compass 方位转换为纬度和经度,但我如何知道纬度和经度是在我的右边还是左边?北还是南?

最佳答案

Android Maps Util 库有一个函数可以计算 2 个 LatLng 对象之间的方位角。

如果您还没有 Android map 库,请添加它

implementation 'com.google.maps.android:android-maps-utils:0.5'

将您当前的 LatLng 与其他设备的 LatLng 进行比较。

LatLng myLocation;
LatLng otherPhone;

double heading = SphericalUtil.computeHeading(myLocation, otherPhone);

现在您可以根据需要使用标题, double 代表从一个 LatLng 到另一个 LatLng 的标题。航向以从北开始顺时针旋转的度数表示,范围为 [-180,180)。

可以找到文档 here

关于java - 安卓 |获取当前位置的北/东南/东/西经纬度和经度范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49304961/

相关文章:

java - 计算链表中值的总和

java - Android 中 toString() 实现的问题

algorithm - 山脉识别算法

来自 BaseClassLoader 的 java.lang.ClassNotFoundException : org. apache.commons.lang.StringUtils

java - 为什么这里的主线程不等待t2?在这里,输出始终大于20000,但不一致

android - Flutter App 卡在 Android 启动器屏幕上

android - 是否可以以编程方式滚动到 LinearLayout 中的特定元素?

javascript - 根据用户当前位置查询位置数据库

browser - HTML5 地理定位如何工作?

具有嵌入式数据库的 Java EE