Java - 新点,X与纬度/经度点的距离

时间:2012-07-06 20:18:06

标签: java latitude-longitude trigonometry haversine

我需要指出一点,并确定它的西北方向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 );

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