Как добавить х км расстояние в заданном шире, длинный - PullRequest
3 голосов
/ 22 ноября 2011

Я получил точку с широтой и долготой, используя десятичные дроби. Точка центрирована по окружности, радиус окружности равен х км. Как мне найти все широты и долготы, которые охватывают круг?

1 Ответ

2 голосов
/ 22 ноября 2011

Наверное, самый простой ответ - использование пифагора.

У вас есть точка (x, y), которая является центром круга радиуса r.

«Как мне найти все широты и долготы, которые охватывают круг?» почти бесконечен.

Вместо этого вы бы предпочли проверить, находится ли центральная точка в радиусе круга (предположив, что вы хотите выяснить, какие точки находятся в пределах k км от точки (x, y)).

Учитывая точку (x1, y1), вы должны выполнить sqrt ((x1-x) ^ 2 + (y1-y) ^ 2) (теорема Пифагора a ^ 2 = b ^ 2 + c ^ 2), чтобы найти расстояние от точки (x, y) до точки (x1, y1) и проверьте, является ли расстояние <= до радиуса r. Границы легко вычисляются (xmin = x-r, xmax = x + r и т. Д.). </p>

Что касается фактического расстояния, вам, вероятно, потребуется использовать формулу Хаверсайна:

a = sin² (Δlat / 2) + cos (lat1) .cos (lat2) .sin² (Δlong / 2)

c = 2.atan2 (√a, √ (1-a))

d = R.c

где R - радиус Земли (средний радиус = 6 371 км) (d - расстояние); обратите внимание, что углы должны быть в радианах, чтобы перейти к функциям триггера!

Подробнее об этом здесь http://www.movable -type.co.uk / scripts / latlong.html

...