gpt4 book ai didi

java - 获取靠近纬度/经度的邮政编码列表

转载 作者:行者123 更新时间:2023-12-01 05:22:00 29 4
gpt4 key购买 nike

我有一个 Android 应用程序可以找到您当前的位置,但我需要找出哪些邮政编码位于当前位置的 20 英里范围内。查找此信息的最佳方式是什么?是否有公共(public) API 或 Web 服务?我可以提供纬度/经度或邮政编码作为输入。

最佳答案

我会首先使用 Haversine公式。使用由此获得的结果来查找相对于该半径的邮政编码。

import com.google.android.maps.GeoPoint;  

public class DistanceCalculator {

private double Radius;

// R = earth's radius (mean radius = 6,371km)
// Constructor
DistanceCalculator(double R) {
Radius = R;
}

public double CalculationByDistance(GeoPoint StartP, GeoPoint EndP) {
double lat1 = StartP.getLatitudeE6()/1E6;
double lat2 = EndP.getLatitudeE6()/1E6;
double lon1 = StartP.getLongitudeE6()/1E6;
double lon2 = EndP.getLongitudeE6()/1E6;
double dLat = Math.toRadians(lat2-lat1);
double dLon = Math.toRadians(lon2-lon1);
double a = Math.sin(dLat/2) * Math.sin(dLat/2) +
Math.cos(Math.toRadians(lat1)) * Math.cos(Math.toRadians(lat2)) *
Math.sin(dLon/2) * Math.sin(dLon/2);
double c = 2 * Math.asin(Math.sqrt(a));
return Radius * c;
}
}

关于java - 获取靠近纬度/经度的邮政编码列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10247182/

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