Intereting Posts
Android: мягкая клавиатура выдвигает весь макет, необходимо изменить размер списка Как получить путь к файлу в папке с ресурсами в android Передача данных с помощью ультразвука Получить информацию об автоповорачивании на Android Могу ли я написать приложение в javascript / HTML / CSS и продать его в магазине приложений, в Google Play и в магазине мобильных приложений для Microsoft? Скрытое поле в ListView Android? Как получить отдельную информацию о ценах и валюте для покупки в приложении? Вывод кнопки Capture на Android Как сделать плагины Hugo и AndroidDevMetrics скомпилированы только при отладке: Как установить значок приложения в качестве значка уведомления в ящике уведомлений Единый экземпляр деятельности Не удалось найти метод onClick_Foo (View) – первый раз на Android Lollipop {Состояние сеанса: ОТКРЫТИЕ, токен: {токен AccessToken: ACCESS_TOKEN_REMOVED разрешения: }, appId: 1xxxxxxxxxxx} Пока я делаю источник Android 6.0, он не прошел Rjava.lang.IllegalArgumentException on startActivity (намерение, анимация пакетов)

Проверьте, находится ли широта и долгота в пределах круга

Смотрите эту иллюстрацию:

Введите описание изображения здесь

Я хотел бы знать:

  1. Как создать область (круг) при задании широты и долготы и расстояния (10 километров)
  2. Как проверить (рассчитать), если широта и долгота находятся либо внутри, либо за пределами области

Я бы предпочел, если вы можете дать мне пример кода на Java или специально для Android с Google Maps API V2

Solutions Collecting From Web of "Проверьте, находится ли широта и долгота в пределах круга"

То, что вам в основном нужно, – это расстояние между точками на карте:

float[] results = new float[1]; Location.distanceBetween(centerLatitude, centerLongitude, testLatitude, testLongitude, results); float distanceInMeters = results[0]; boolean isWithin10km = distanceInMeters < 10000; 

Если у вас уже есть объекты Location :

 Location center; Location test; float distanceInMeters = center.distanceTo(test); boolean isWithin10km = distanceInMeters < 10000; 

Вот интересная часть этого API: https://developer.android.com/reference/android/location/Location.html

Прошли ли вы через новый API GeoFencing . Это должно помочь вам. Нормальная реализация занимает много времени. Это должно помочь вам легко реализовать его.

См. https://developer.android.com/reference/android/location/Location.html

 Location areaOfIinterest = new Location; Location currentPosition = new Location; areaOfIinterest.setLatitude(aoiLat); areaOfIinterest.setLongitude(aoiLong); currentPosition.setLatitude(myLat); currentPosition.setLongitude(myLong); float dist = areaOfIinterest.distanceTo(currentPosition); return (dist < 10000); 

Если вы имеете в виду под названием «Как создать область», которую вы хотите нарисовать на карте, вы можете найти пример в справочной документации по V2 для класса Circle .

Чтобы проверить, превышает ли расстояние между центром круга и точкой больше 10 км, я бы предложил использовать статический метод Location.distanceBetween (…), поскольку он избегает ненужных создания объектов.

См. Также здесь (в самом конце ответа) для примера кода, если область является полигоном, а не кругом.