Как проверить, если точка внутри области с широтой / долготой и радиусом, используя Java? - PullRequest
3 голосов
/ 01 июля 2011

Я должен написать метод, который имеет следующую подпись

public class Position {
double longitude;
double latitude;
}

boolean isInsideTheArea(Position center, double radius, Position point);

Таким образом, если point находится внутри area, у которого center в качестве центра и radius в качестве его радиуса в миль , это должно вернуть true, false в противном случае .

Ответы [ 2 ]

7 голосов
/ 01 июля 2011

Используйте формулу Haversine , чтобы вычислить расстояние между center и point.Если это расстояние больше radius, верните false;в противном случае возвращается true.

Псевдокод:

def haversineDistance(a, b):
    # snip...
    return foo

def isInsideTheArea (center, radius, point):
    return haversineDistance(center, point) <= radius
1 голос
/ 01 июля 2011

надеюсь, это поможет, есть также примеры реализации http://en.wikipedia.org/wiki/Haversine_formula

...