Наверное, самый простой ответ - использование пифагора.
У вас есть точка (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