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