0

有一些背景知识的人能告诉我具体的轴承GeofencingEvent.getTriggeringLocation ().getBearing()返回吗?

因为我的彻底测试告诉我:-

  • 它返回的值不是用户在触发地理围栏时行驶的方位。

  • 它返回的值不是地理围栏位置与触发位置的方位角(反之亦然)

getTriggeringLocation() 文档很方便地没有提到任何关于bearing(). 那么任何人都可以告诉我返回的值实际上等于什么吗?

从非常严格的测试来看,它似乎没有返回我的地理围栏、触发位置和行进方向之间的任何相关性?

随机数有人吗??

[测试示例 LogCat 提取]

D/MainActivity(13349): 位置: (51.2758,-1.1168) 方位:276.0 (计算:277.6) 速度:55.07 D/MainActivity(13349): 位置: (51.2759,-1.1175) 方位:278.0 (计算:276.7) 速度:55.18 D/MainActivity(13349): 位置: (51.2760,-1.1183) 方位:280.0 (计算:279.9) 速度:55.28 D/MainActivity(13349): onReceive: passGeofenceReceiver 已收到广播 D/MainActivity(13349): ENTERING地理围栏 - 触发编号 = 1。触发位置 (51.2760,-1.1183) 轴承:78

D/MainActivity(13349):触发地理围栏 ID:1481037411000 位置:(51.2761,-1.1192)

4

1 回答 1

0

getBearing()以度为单位返回方位角。属于所属getTriggeringLocation()的类。您正在寻找位置LocationgetBearing()

“方位是该设备的水平行进方向,与设备方位无关。如果设备有方位,保证在(0.0, 360.0]范围内。”

进一步看,我相信它抛出一个看似随机的值的原因GeofencingEvent.getTriggerLocation().getBearing()是,这是在事件触发点拉一个位置。虽然这会返回一个 Location 对象,但根据Location文档,

LocationManager 生成的所有位置都保证具有有效的纬度、经度和时间戳(包括 UTC 时间和自启动以来经过的实时时间),所有其他参数都是可选的。”

我想知道您在使用它时,虽然它返回一个有效Location对象,但看到它是触发器的位置,“轴承”参数不知何故是一个幻像空值?

编辑:想知道轴承是否由于某种奇怪的原因被镜像...看看下面的度数轮,虽然轴承不精确,但可能值得研究。也许尝试增加价值180GeofencingEvent.getTriggerLocation().getBearing()比较回报?或者,根据车轮示例,一个是逆时针方向,另一个是顺时针方向?

在此处输入图像描述

于 2016-12-07T23:24:02.957 回答