Как я могу найти длину лота точки с заданным значением длины лата и расстоянием - PullRequest
3 голосов
/ 03 марта 2011

У меня есть точка A (52.132781727864, -106,63492619991302).Из точки A я хотел бы получить широту, длинную точки B, которая находится на 5 км южнее точки A.

Как я могу получить длинную точку точки B?Я пишу на Java.

Редактировать: Если точка находится на юго-востоке, что мне делать?

Ответы [ 5 ]

4 голосов
/ 03 марта 2011

5 км в углах = ((5 / (6371 * pi)) * 180) = 0,0449660803.Это число должно быть вычтено из широты.Долгота остается неизменной.

PS.Спасибо Карлосу Хойбергеру за исправление.

1 голос
/ 08 марта 2011

Расширение вопроса: «Как найти широту и длину точки с заданным значением широты и долготы, расстоянием и направлением », здесь приближение для более коротких расстояний (менее чем около 1000 км)

d = dist / 111.12      (1)
dlat = d * cos(dir)
latm = lat1 + dlat / 2
dlon = d * sin(dir) / cos(latm)

lat2 = lat1 + dlat
lon2 = lon1 + dlon

Где:
- lat1 и lon1 - начальные координаты (север и восток положительные) - dist - расстояние в километрах
- dir - начальныйнаправление (2)
- lat2 и lon2 - результирующие координаты

(1) в предположении сферической модели Земли
(2) dir = 135° для юго-востока


на основе Astrosail - Mittelbreitenverfahren

1 голос
/ 03 марта 2011

Я настоятельно рекомендую использовать GeoTools для геометрии земной поверхности, поскольку она учитывает землю как эллипсоид (земля не является идеальной сферой). В частности, взгляните на GeodeticCalculator , где вы устанавливаете начальную позицию и направление (азимут и расстояние), а затем получаете конечную позицию.

1 голос
/ 03 марта 2011
0 голосов
/ 04 марта 2011

У меня была такая же проблема немного времени.Так как в моем случае исходные данные были в UTM, продукт должен был работать только в определенной зоне, а расстояние для добавления было не очень большим, все, что мне нужно было сделать, это вычислить синус и косинус и добавить восток и север к исходномуПоинг

...