获取用户坐标并比较距所需位置的距离的最简单方法

时间:2017-10-29 18:42:15

标签: java android location coordinates

获取用户坐标的最简单方法是什么?我只需要他们看看他们是否符合我想要的坐标,他们没有完全匹配,用户可以在0.3英里内

我曾尝试使用谷歌地图v1和v2,但它变得比它应该更复杂,因为我只需要它与一些设置坐标进行比较

所以我需要帮助的是获取用户的坐标(位置),然后从我想要的位置(-80.000000,40.000000)获得它们的距离,看看它们是否在半径范围内(480~0.3英里)< / p>

是否有人能够听取我需要采取的步骤才能完成此任务?

1 个答案:

答案 0 :(得分:1)

要获取用户坐标,您需要使用LocationManager,您可以查看此answer,以便详细了解如何获取坐标。根据该答案,您可以创建一个位置管理器:

LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
Location location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
longitude = location.getLongitude();
latitude = location.getLatitude();

然后您创建locationListener对象并将其附加到位置管理器:

lm.requestLocationUpdates(lm.getBestProvider(fine, true), minTime, 0, listenerFine);

获得坐标后,您可以使用Geofencing,这里是有关创建和监控地理围栏的文档的简短摘要:

mGeofenceList.add(new Geofence.Builder()
    .setRequestId("geofenceRequestID")
    .setCircularRegion(latitude, longitude, 480f)
    .setExpirationDuration("300000") // duration is in millis (5mins)
    .setTransitionTypes(Geofence.GEOFENCE_TRANSITION_ENTER | Geofence.GEOFENCE_TRANSITION_EXIT)
    .build());

使用Geofence.Builder时,details更多{。}}。