私はあなたの現在の場所を見つけるAndroidアプリを持っていますが、どの郵便番号が現在の場所から20マイル以内にあるかを把握する必要があります。この情報を見つけるための最良の方法は何でしょうか?パブリックAPIまたはWebサービスはありますか?緯度/経度または郵便番号を入力として指定できます。
1666 次
3 に答える
0
たとえば、逆ジオコーダーを使用する必要があります。
于 2012-04-20T13:31:14.627 に答える
0
まず、 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;
}
}
于 2012-04-20T13:34:06.510 に答える
0
私の知る限り、このための API はありませんが、郵便番号データベースhttp://zips.sourceforge.net/を使用して、独自のデータベースを作成して操作できます
于 2012-04-20T13:34:27.057 に答える