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 公里)。
我想在地图上画一个正方形,中心是用户所在的位置。每种类型的用户都有不同的公里值。所有这些我都清楚,绘制多边形不是问题。
问题是我不知道经纬度换算成千米的值。
我的问题是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 公里)。