Android 地图 PolygonOptions 纬度和经度值(以千米为单位)

Android Maps PolygonOptions Lat and Long value in km

我想在地图上画一个正方形,中心是用户所在的位置。每种类型的用户都有不同的公里值。所有这些我都清楚,绘制多边形不是问题。

问题是我不知道经纬度换算成千米的值。

我的问题是1公里换算成纬度是多少?是 0.001 还是类似值?转换后的值在经度上是否不同

public float distance (float lat_a, float lng_a, float lat_b, float lng_b ) 
{
    double earthRadius = 3958.75;
    double latDiff = Math.toRadians(lat_b-lat_a);
    double lngDiff = Math.toRadians(lng_b-lng_a);
    double a = Math.sin(latDiff /2) * Math.sin(latDiff /2) +
    Math.cos(Math.toRadians(lat_a)) * Math.cos(Math.toRadians(lat_b)) *
    Math.sin(lngDiff /2) * Math.sin(lngDiff /2);
    double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
    double distance = earthRadius * c;

    int meterConversion = 1609;

    return new Float(distance * meterConversion).floatValue();
}

Try this code it will provide distance in Km from lat lan

它因地球不是平的而是球体而变化:

  • 每个纬度大约相隔 69 英里(111 公里)。
  • 在赤道,距离为 68.703 英里(110.567 公里)。
  • 在北回归线和北回归线(南北23.5°),距离为68.94英里(110.948公里)。
  • 在每个极点,距离为 69.407 英里(111.699 公里)。

More here.