Intereting Posts
Является ли использование registerReceiver в классе приложения понятным хорошей, известной практикой? Опубликовать данные в webview в android NotifyDataSetChanged () обновляет список и прокручивает подсказки назад Android ViewPager – просмотр предварительного просмотра страницы слева и справа SQLiteOpenHelper onUpgrade () Confusion Android Код ошибки -7 при попытке установить выпуск APK Проблема производительности на пользовательском шрифте TextView Использование? SelectableItemBackground с белым цветом фона Android: Lint говорит – класс, указанный в файле макета, не был найден в проекте или в библиотеках Проблемы с защитой с файлами jar, как найти недостающую банку? Выбрать фотографию из галереи в android 5.0 Эта активность уже имеет панель действий, предоставляемую декором окна Ошибка Android «Not_Market_Managed» Как отключить RadioGroup до тех пор, пока флажок не установлен Crashlytics обесценивает logException (), что такое замена?

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

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

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

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

  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 (…), поскольку он избегает ненужных создания объектов.

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