在地理点周围创建一个边界框

时间:2012-09-16 16:30:10

标签: android gps

我有一个地理纬度和经度(例如:39.6199,-79.9535)。如何在半径为1km的点周围用Java构建一个边界框?

2 个答案:

答案 0 :(得分:8)

  1. 两条经度线之间的距离根据您所在的纬度线而变化。它可以计算为:

    3960 * 2 * pi /360 * cosine(latitude)英里

  2. 两条纬度线之间的距离在任何地方都是恒定的:69英里。

  3. 因此,为了在地理位置周围绘制1x1英里的正方形,您应该找到平行于该点纬度的两条纬度线,沿南北方向距离为0.5英里。然后在西边和东边找到两条平行的经度线,距离为0.5英里。

    例如,0.5英里表示0.5 / 69纬度差。如果给定点的纬度为39.6199,则方形的上下两侧的纬度分别具有纬度值:36.6199+(0.5/69)36.6199-(0.5/69)

答案 1 :(得分:4)

double latitude = location.getLatitude();
double longitude = location.getLongitude();

// 6378000 Size of the Earth (in meters)
double longitudeD = (Math.asin(1000 / (6378000 * Math.cos(Math.PI*latitude/180))))*180/Math.PI;
double latitudeD = (Math.asin((double)1000 / (double)6378000))*180/Math.PI;

double latitudeMax = latitude+(latitudeD);
double latitudeMin = latitude-(latitudeD);
double longitudeMax = longitude+(longitudeD);
double longitudeMin = longitude-(longitudeD);