0

我注意到 Android 和 iOS 的 MvvmCross 框架 MvxGeoLocationWatcher 不返回速度或方位值。我已经看到Android上的代码被注释掉了,因为将这些值放在Android Location对象的MvxGeoLocation对象中,这是有原因的吗?有什么我想念的吗?

解决了

Mvx(Touch/Android)GeoLocationWatcher 中缺少以下代码。

在安卓中

position.Coordinates.Speed = androidLocation.Speed;
position.Coordinates.Heading = androidLocation.Bearing;

在 iPhone 中

position.Coordinates.Speed = location.Speed;
position.Coordinates.Heading = location.Course;
4

1 回答 1

1

YAGNI 是为什么... Thar 代码是为不需要它的项目构建的。


当前的 geolocationwatcher 只是一个核心实现。它是作为一个项目的一部分编写的,该项目只需要一次性的相当粗略的位置信息。一些代码也是从 chrisntr 的移动扩展项目中借来的。因为那个原始项目不需要方位或速度信息(也可能是因为我们的一些测试手机行为不端),所以我们没有包含该功能。


如果您当前的项目需要更多功能,那么最简单的转发路径可能是实现符合您需求的新地理定位观察器 - 您可能可以从现有示例开始构建此代码。

另一种选择可能是在 xamarin 的移动 API 库中围绕位置代码包装一些接口。

如果您这样做,那么我很乐意看到您的代码作为开源代码被推回 - 无论是在 mvx 内部、作为插件还是作为单独的项目。

PS对不起打字...我在手机键盘上...

于 2012-07-20T21:15:21.823 回答