Android |获取North / S / E / W lat&距当前位置很远

时间:2018-03-15 16:47:35

标签: java android geolocation location compass

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

这些设备我希望按照我的设备指向方向的北/南/东/西分类的方式进行过滤。

我读了一篇文章说将罗盘轴承转换成lat& amp;很长,但我怎么知道lat&我的右边还是左边?北方还是南方?

2 个答案:

答案 0 :(得分:0)

所以我假设你有纬度和经度坐标。 纬度表示赤道的北部和南部,经度表示本初子午线的东部和西部。

如果您想将latitutde-longitude转换为东西南北方向,您可以使用此方案。

正纬度表示赤道以北,正经度表示本初子午线以东,反之亦然。

所以简而言之

+,+ -> North/East
+,- -> North/West
-,+ -> South/East
-,- -> South/West

使用此键,您可以从基准位置找出任何lat-lon对的相对方向。

修改 示例

如果您的位置为(50,50),而其他设备的位置为(60,60),则表示其他设备位于相对位置的北纬10度和东经10度。你可以在android中轻松实现这个逻辑。

答案 1 :(得分:0)

Android Maps Util库具有计算2 LatLng个对象之间的方位的功能。

如果您还没有

,请包含Android地图库
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