2012-07-20 14 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

相關問題