2012-07-20 60 views
0

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

解决

下面的代码缺少在MVX(触摸/ Android设备)GeoLocationWatcher。

在Android中

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

在iPhone

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

回答

1

YAGNI是为什么...塔尔代码为那个并不需要它的一个项目建立的原因。


当前的地理位置监视器只是一个核心实现。它被写为一个项目的一部分,只需要一次性的相当粗略的位置信息。一些代码也从chrisntr的移动扩展项目中借用。因为原始项目不需要轴承或速度信息(也许还因为我们的一些测试手机不合适),那么我们不包括该功能。


如果您当前的项目需要更多的功能,那么最简单的路线向前可能实现新的地理位置观察家符合您的需求 - 你也许可以建立这个代码从现有的样品开始。

另一种替代方法是在xamarin移动API库中的位置代码周围封装一些接口。

如果你这样做,那么我很希望看到你的代码被推回开源 - 无论是在mvx中,作为一个插件还是作为一个单独的项目。

诗遗憾的打字...我手机键盘上....

+0

当然,这只是一个在取消 的问题,如果(androidLocation.HasSpeed)coords.Speed = androidLocation.Speed;或者加入 coords.Speed = HackReadValue(testString,“mSpeed =”); – Jake 2012-07-21 08:16:29

+0

也许 - 对不起,现在不在代码前面 - 黑客代码正在为我敲响警钟。希望现在可以删除它! - 如果不是,可以提交一份xam错误报告。请尝试自己。 – Stuart 2012-07-21 08:57:08