【发布时间】:2012-05-07 02:12:51
【问题描述】:
我正在使用 MvvmCross 框架来构建一个跨平台(iOS、Android、WP7)应用程序。我正在使用 MvxGeoLocationWatcher 为我创建具有所需的经度、纬度、速度、航向等的 MvxGeoLocation 对象。
我需要找到两个位置之间的距离(如乌鸦飞过)。在 Android 上,我打电话给fromLocation.distanceTo(toLocation)。在 iO 上,我会使用 CLLocationDistance distance = [fromLocation distanceFromLocation:toLocation];。
因此,这两个平台都在位置上使用一种方法来计算距离,而这目前在 MvxGeoLocation 对象上不可用。
有计划尽快添加吗?如果不是,我添加此功能的最佳方法是什么?
- 我是否会更改类本身并提供特定于平台的实现 - 可能通过使其成为部分类并将特定代码放入特定于平台的代码部分类中。或者也许通过使用扩展方法?
- 或者最好的方法是采用两点并返回距离。在什么情况下这个方法应该在 MvxGeoLocationWatcher 上?
- 可能使用Calculate distance of two geo points in km c# 中的某些内容在我自己中添加计算算法,然后忘记使用特定于平台的实现
【问题讨论】:
-
我会选择 1 - 使用扩展方法 - 然后我可能会将其作为 Git 示例或仅作为 Gist 发布
-
其实我认为我误读了 1... 我要做的是编写一个消耗两个位置的扩展方法。我个人会尝试将其保留在 mvvmcross 之外-例如在可选的附加库中,甚至只是作为代码 sn-p。我正在考虑尝试让 mvvmcross 尽可能轻量级 - 特别是为了避免 monotouch 造成不必要的链接器膨胀。
标签: windows-phone-7 xamarin.ios xamarin.android mvvmcross