4

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

4

2 回答 2

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

    3960 * 2 * pi /360 * cosine(latitude)以英里为单位

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

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

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

于 2012-09-21T22:05:44.410 回答
7
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);
于 2013-11-16T20:41:55.180 回答