我正在一个应用程序上做一个项目,我需要根据我当前的位置发现其他设备。
这些设备我希望按照我的设备指向方向的北/南/东/西分类的方式进行过滤。
我读了一篇文章说将罗盘轴承转换成lat& amp;很长,但我怎么知道lat&我的右边还是左边?北方还是南方?
答案 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