Я создал мобильное приложение xamarin и хочу создать следующую функцию: Создать одну или несколько геозон. Когда пользователь с телефоном находится на месте, я хочу вызвать какой-то код. Существуют ли какие-либо библиотеки, которые я могу использовать для реализации этой кросс-платформы с формами xamarin?
Xamarin Forms - библиотека геозон
Ответы (1)
Если ваша геозона имеет круглую форму, вы можете использовать Xamarin.Essentials, чтобы получить расстояние между двумя точками, и если расстояние меньше расстояния геозоны, оно находится внутри геозоны.
long geofenceDistance = 2;
Location geofenceCentercordinate = new Location(centrerCoordinate.Latitude, centrerCoordinate.Longitude);
Location userLocation = new Location(position.Latitude, position.Longitude);
var distance = (long)Location.CalculateDistance(userLocation ,geofenceCentercordinate, DistanceUnits.Kilometers);
if(distance < geofenceDistance){
//it's inside the Geofence
}
Кроме того, если вы хотите постоянно отслеживать свое местоположение, вы можете проверить мой другой ответ здесь.
person
Ricardo Dias Morais
schedule
11.03.2020
Спасибо за помощь. Вы знаете, какие xamarin.essentials мне нужны для этого?
- person M Yil; 11.03.2020
@MYil Если вы используете последнюю версию, у вас обязательно будет это, я рад, что смог помочь, если это решило вашу проблему, не забудьте отметить его как правильный ответ
- person Ricardo Dias Morais; 11.03.2020
@MYil также не забывайте, что вы можете изменить DistanceUnits.Kilometer на то, какая единица соответствует вашей цели, я также добавил ссылку на другой вопрос, где я могу узнать, как прослушивать изменения местоположения, но я думаю, вам не нужно изменение местоположения каждый раз
- person Ricardo Dias Morais; 11.03.2020
Благодарю за ваш ответ. Ваше решение - получить расстояние между двумя точками, но мне действительно нужно знать, как создать геозону, и я не смог найти этого в вашей реакции. Надеюсь, ты поможешь мне с этим.
- person M Yil; 11.03.2020
Хорошо, не могли бы вы уточнить тип геозоны, который вам нужен?
- person Ricardo Dias Morais; 11.03.2020
Это многоугольник на карте? это просто программно?
- person Ricardo Dias Morais; 11.03.2020
если это круглая
- person Ricardo Dias Morais; 11.03.2020
Можете ли вы сказать мне, какой тип геозон вы ищете?
- person Ricardo Dias Morais; 11.03.2020
Я ищу круговую геозону радиусом около 50 метров. Это просто программно, когда пользователь находится в регионе, я хочу только что-то напечатать.
- person M Yil; 11.03.2020
Позвольте нам продолжить это обсуждение в чате.
- person Ricardo Dias Morais; 11.03.2020
Вы, может быть, знаете, следует ли мне использовать таймер для получения местоположения каждые 10 секунд или мне следует использовать что-то еще для этого?
- person M Yil; 12.03.2020