gpt4 book ai didi

java - 如何知道 Android 设备是否在地址 google maps api 附近

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:31:49 25 4
gpt4 key购买 nike

我正在开发一个接收给定地址的 Android 应用程序。如果用户位于该地址或更接近该地址,我只想让应用在设备上运行。

是否可以仅使用 google maps api 来实现?

最佳答案

您可以获取地址并从地址获取纬度和经度:

Geocoder coder = new Geocoder(this);
List<Address> address;

try {
address = coder.getFromLocationName(strAddress,5);
if (address == null) {
return null;
}
Address location = address.get(0);
location.getLatitude();
location.getLongitude();


}

然后将其与您的位置进行比较:

if (distance(mylocation.latitude, mylocation.longitude,   location.getLatitude(), location.getLongitude()) < 0.1) { // if distance < 0.1

// launch the activity
}else {
finish();
}


/** calculates the distance between two locations in MILES */
private double distance(double lat1, double lng1, double lat2, double lng2) {

double earthRadius = 3958.75; // in miles, change to 6371 for kilometers

double dLat = Math.toRadians(lat2-lat1);
double dLng = Math.toRadians(lng2-lng1);

double sindLat = Math.sin(dLat / 2);
double sindLng = Math.sin(dLng / 2);

double a = Math.pow(sindLat, 2) + Math.pow(sindLng, 2)
* Math.cos(Math.toRadians(lat1)) * Math.cos(Math.toRadians(lat2));

double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));

double dist = earthRadius * c;

return dist;
}

编辑:正如@FelipeMosso 所说,您也可以使用 distanceBetween计算两个位置之间的近似距离(以米为单位)或 distanceTo这给了你你所在的地方和目的地之间的距离..

关于java - 如何知道 Android 设备是否在地址 google maps api 附近,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19056075/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com