获取用户坐标的最简单方法是什么?我只需要它们看看它们是否与我想要的坐标匹配,并且它们不必完美匹配,用户可以在 0.3 英里之内
我尝试使用谷歌地图 v1 和 v2,但它变得比应有的更复杂,因为我只需要它与一些设置的坐标进行比较
所以我需要帮助的是获取用户的坐标(位置),然后获取他们距我所需位置(-80.000000,40.000000)的距离,并查看它们是否在半径(480~ 0.3 英里)内
有人能够听听我需要采取哪些步骤来实现这一目标吗?
最佳答案
要获取用户坐标,您需要使用 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 ,以下是有关创建和监控地理围栏的文档中的一个简短 fragment :
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());
这里有更多details关于使用 Geofence.Builder。
关于java - 获取用户坐标并比较距所需位置的距离的最简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47003879/