Java 安卓|从当前位置获得北/南/东/西横向和远程
我正在一个应用程序上做一个项目,我需要根据我的当前位置发现其他设备 我希望以一种方式过滤这些设备,根据设备指向方向的北/南/东/西对它们进行分类Java 安卓|从当前位置获得北/南/东/西横向和远程,java,android,geolocation,location,compass,Java,Android,Geolocation,Location,Compass,我正在一个应用程序上做一个项目,我需要根据我的当前位置发现其他设备 我希望以一种方式过滤这些设备,根据设备指向方向的北/南/东/西对它们进行分类 我读到一篇文章说将指南针方位转换为纵横向,但我怎么知道纵横向是在我的右边还是左边?北方还是南方 所以我假设你有纬度和经度坐标。 纬度表示赤道的北部和南部,经度表示本初子午线的东部和西部 如果要将纬度经度转换为东西南北方向,可以使用此方案 正纬度表示赤道以北,正经度表示本初子午线以东,反之亦然 简言之 +,+ -> North/East +,- -
我读到一篇文章说将指南针方位转换为纵横向,但我怎么知道纵横向是在我的右边还是左边?北方还是南方 所以我假设你有纬度和经度坐标。 纬度表示赤道的北部和南部,经度表示本初子午线的东部和西部 如果要将纬度经度转换为东西南北方向,可以使用此方案 正纬度表示赤道以北,正经度表示本初子午线以东,反之亦然 简言之
+,+ -> North/East
+,- -> North/West
-,+ -> South/East
-,- -> South/West
使用此键,您可以从您的基本位置找到任何板条对的相对方向
编辑示例
如果您的位置为50,50,而其他设备的位置为60,60,则意味着其他设备与您的相对位置分别向北10度和向东10度。您可以在android中轻松实现这种逻辑 Android Maps Util库有一个计算两个LatLng对象之间方位的函数 如果您还没有Android地图库,请将其包括在内
implementation 'com.google.maps.android:android-maps-utils:0.5'
将您当前的LatLng与其他设备的LatLng进行比较
LatLng myLocation;
LatLng otherPhone;
double heading = SphericalUtil.computeHeading(myLocation, otherPhone);
现在您可以随意使用标题,双精度表示从一个板条到另一个板条的标题。航向在[-180180]范围内以从北顺时针的角度表示
文档可以找到右侧或左侧以及东部或西部都不相同,除非您向北行驶。那么,您想要哪一个?