1

我需要取一个点,并确定在它西北 N 英里处和东南 N 英里处的点是什么。它本质上会在初始点周围创建一个边界框。

我环顾四周,发现了一些关于 Haversine 的东西,但似乎所有代码实现都是针对两点之间的距离,而不是一个点的新点组件。

是否存在已经存在的这种东西的现有实现,最好是在 Java 中?还是其他语言?

这是我想象的我需要的方法:

public float longitudeFromPoint( float lat, float long, int vertical, int horizontal )
{
    // something
}

public float latitudeFromPoint( float lat, float long, int vertical, int horizontal )
{
    // something
}

float startLat  = 41.829347;
float startLong = -87.633788

float northWestLat  = latitudeFromPoint( startLat, startLong, 1, -1 );
float northWestLong = latitudeFromPoint( startLat, startLong, 1, -1 );

float southWestLat  = latitudeFromPoint( startLat, startLong, -1, 1 );
float southWestLong = latitudeFromPoint( startLat, startLong, -1, 1 );
4

1 回答 1

2

这可能值得一读:使用边界坐标查找纬度/经度距离内的点。它提供了关于球坐标的简短理论背景,并提供了一些 java 代码。

该链接是从 SO 上该线程的已接受答案中借用的: Calculating bounding box a certain distance from a lat/long coordinate in Java

于 2012-07-06T20:26:32.203 回答