Я хочу создать 2 новые долготы и 2 новые широты на основе координаты и расстояния в метрах, я хочу создать красивую ограничивающую рамку вокруг определенной точки. Это для части города и максимум ± 1500 метров. Поэтому я не думаю, что нужно принимать во внимание кривизну Земли.
Итак, у меня есть 50.0452345
(x) и 4.3242234
(y), и я хочу знать x + 500 метров, x - 500 метров, y - 500 метров, y + 500 метров.
Я нашел много алгоритмов, но почти все, похоже, имеют дело с расстоянием между точками.
algorithm
geolocation
Бенджамин Удинк тен Кейт
источник
источник
Ответы:
Количество километров на градус долготы составляет примерно
где
theta
- широта в градусах иr_earth
составляет примерно 6378 км.Количество километров на градус широты примерно одинаково во всех местах, примерно
Итак, вы можете:
Пока
dx
иdy
малы по сравнению с радиусом земли, и вы не подходите слишком близко к полюсам.источник
cos(latitude*180/pi)
Принятый ответ совершенно правильный и работает. Я сделал некоторые настройки и превратился в это:
Надеюсь, это тоже поможет.
источник
0.0000089
? Старайтесь избегать магических чисел, этого никто не поймет.Для широты:
Для долготы сделайте:
Переменная
your_meters
может содержать положительное или отрицательное значение.источник
Вы проверили: как мне найти широту / долготу, которая находится на x км к северу от заданной широты / долготы ?
Эти расчеты в лучшем случае раздражают, я их много проделал. Формула гаверсина станет вашим другом.
Некоторая ссылка: http://www.movable-type.co.uk/scripts/latlong.html
источник
Мне пришлось потратить около двух часов, чтобы разработать решение с помощью @nibot, мне просто нужен был метод для создания граничного прямоугольника с учетом его центральной точки и ширины / высоты (или радиуса) в километрах:
Я не понимаю решения математически / географически. Я настроил решение (попыткой и ошибкой), чтобы получить четыре координаты:
Север:
Восток:
Юг:
Запад:
источник
если нет необходимости быть очень точным: каждые 10000 метров составляют примерно 0,1 для широты и долготы. например, я хочу загрузить местоположения на 3000 метров вокруг точки_A из моей базы данных:
источник
источник
источник