java - 检查纬度和经度是否在一个圆圈内

标签 java android google-maps-android-api-2 latitude-longitude area

看这个插图:

enter image description here

我想知道的是:

  1. 在给定经纬度和距离(10 公里)时如何创建区域(圆)
  2. 如何检查(计算)纬度和经度是否在区域内或区域外

如果您可以给我 Java 代码示例或专门针对带有 Google Maps API V2 的 Android 代码示例,我更愿意

最佳答案

你基本上需要的是 map 上两点之间的距离:

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

关于java - 检查纬度和经度是否在一个圆圈内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22063842/

相关文章:

java - 系统属性 : user. 地区或用户.国家

Android:如何修复从 Firebase 获取的模糊的 Google 个人资料图片?

android - 如何使用 Espresso 检查 TextinputLayout 的错误

android - 使用 GroundOverlays 时考虑地球的曲率

java - HSQLDB 和 .lobs 文件大小

java - 如何在 logback 启动时滚动日志文件

java - WebView白屏怎么解决?

java - Android非常基础的游戏开发

android - 基于谷歌地图 API v2 的 Android 应用程序启动时的模糊 map 图 block

android - 如何让标记出现在谷歌地图初始窗口的中央?