我需要指出一点,并确定它的西北方向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 );
答案 0 :(得分:2)
这可能值得一读:Finding Points Within a Distance of a Latitude/Longitude Using Bounding Coordinates。它给出了球面坐标的简短理论背景,并提供了一些java代码。
链接是从SO上接受的回复中获取的: Calculating bounding box a certain distance away from a lat/long coordinate in Java