Я использую фреймворк MvvmCross для создания кросс-платформенного (iOS, Android, WP7) приложения. Я использую MvxGeoLocationWatcher, который создает для меня объекты MvxGeoLocation с требуемой долготой, широтой, скоростью, заголовком и т. д.
Мне нужно найти расстояние между двумя точками (по прямой). На Android я звоню fromLocation.distanceTo(toLocation)
. На iOS я бы использовал CLLocationDistance distance = [fromLocation distanceFromLocation:toLocation];
.
Таким образом, обе эти платформы используют метод местоположения для расчета расстояния, и в настоящее время он недоступен для объекта MvxGeoLocation.
Есть ли планы добавить его в ближайшее время? Если нет, что было бы лучшим подходом для добавления этой функциональности?
- Я бы изменил сам класс и предоставил реализации для конкретной платформы - возможно, сделав его частичным классом и поместив конкретный код в частичный класс кода для конкретной платформы. Или, возможно, с помощью методов расширения?
- Или, возможно, лучше всего использовать метод, который принимает две точки и возвращает расстояние. В каком случае этот метод должен быть в MvxGeoLocationWatcher?
- Добавьте алгоритм расчета в себя, возможно, используя что-то из Рассчитать расстояние двух географических точек в км c# и забудьте об использовании специфичных для платформы реализаций