расчёт координат от точки по азимуту?
-
andruxin
- Новоприбывший
- Сообщения: 6
- Зарегистрирован: 23 фев 2012, 20:50
- Репутация: 0
расчёт координат от точки по азимуту?
Есть точка А(lat,lng), есть некое направление с азимутом B. Подскажите формулу как вычислить координаты точки С, например, на расстоянии 1 градус от точки А?
Я пробовал вычислять как полярные координаты, но естественно получилось с большой погрешностью.
-
rnazarov
- Участник
- Сообщения: 57
- Зарегистрирован: 25 дек 2009, 15:44
- Репутация: 3
- Откуда: Казань
Re: расчёт координат от точки по азимуту?
Сообщение
rnazarov » 25 фев 2012, 09:43
Формулы приведены в книги Морозова «Курс сфероидической геодезии» стр.97-99
-
andruxin
- Новоприбывший
- Сообщения: 6
- Зарегистрирован: 23 фев 2012, 20:50
- Репутация: 0
Re: расчёт координат от точки по азимуту?
Сообщение
andruxin » 25 фев 2012, 16:50
rnazarov, спасибо. пошёл разбираться
-
andruxin
- Новоприбывший
- Сообщения: 6
- Зарегистрирован: 23 фев 2012, 20:50
- Репутация: 0
Re: расчёт координат от точки по азимуту?
Сообщение
andruxin » 08 апр 2012, 18:48
Опять вернулся к этому вопросу. Взял книгу Морозова и, как обычно получается, вижу фигу((. Помогите разобраться.
Использую формулы подчёркнутые красным, вот как это выглядит на PHP
Код: Выделить всё
//$lat - текущая широта, $lng - текущая долгота
//$dist - расстояние между искомыми точками
//$ang - азимут на искомую точку
$newlat=sin($lat * PI / 180)*cos($dist * PI / 180)+cos($lat * PI / 180)*sin($dist * PI / 180)*cos($ang * PI / 180);
$newlat=$lat+(asin($newlat));
$newlng=sin($dist * PI / 180)*sin($ang * PI / 180)/(cos($lat * PI / 180)*cos($dist * PI / 180)-sin($lat * PI / 180)*sin($dist * PI / 180)*cos($ang * PI / 180));
$newlng=$lng+(atan($newlng));
Пытаюсь нарисовать окружность, в итоге получается такое(первый скриншот). Красная точка, это точка вокруг которой пытаюсь построить окружность. А в результате окружность строится выше точки. Как так это получается, где я ошибся?
- Вложения
-
- staticmap.png (51.62 КБ) 30796 просмотров
-
- morozov-99-100.png (111.2 КБ) 30796 просмотров
-
Игорь Белов
- Гуру
- Сообщения: 2206
- Зарегистрирован: 04 янв 2011, 22:00
- Статьи: 12
- Проекты: 1
- Репутация: 1493
- Откуда: Казань
Re: расчёт координат от точки по азимуту?
Сообщение
Игорь Белов » 08 апр 2012, 20:06
Формулу (IV.17) следует понимать буквально:
т. е. $lat+ лишнее.
The purpose of computing is insight, not numbers
-
Petruxin
- Гуру
- Сообщения: 1695
- Зарегистрирован: 14 июн 2011, 16:47
- Статьи: 2
- Проекты: 2
- Репутация: 132
- Ваше звание: Завсегдатай
- Откуда: Череповец
Re: расчёт координат от точки по азимуту?
Сообщение
Petruxin » 08 апр 2012, 21:51
Если получилось то прочтите на Вики (организационные статьи) статью
Как задать вопрос на форуме GIS-Lab, чтобы получить содержательный ответ
Пункт 4.1.
-
tems-ya
- Интересующийся
- Сообщения: 39
- Зарегистрирован: 28 янв 2015, 22:07
- Репутация: 1
- Откуда: Воронеж
Re: расчёт координат от точки по азимуту?
Сообщение
tems-ya » 28 янв 2015, 22:56
Дабы не плодить множество одинаковых тем рискну еще раз спросить здесь.
Имеется карта в MapInfo в WGS-84. На данной карте есть точка с координатами LAT, LON (в принятых в MapInfo десятичных градусах). В данной точке расположен некий объект который имеет направление задаваемое углом AZIMUT в градусах. Необходимо на карте нарисовать линию фиксированной длины L (порядка от 100-300 м в масштабе карты) в направлении AZIMUT. Для этого необходимо найти координаты конечной точки LAT1, LON1 которые находятся от начальной LAT, LON на расстоянии L в направлении AZIMUT.
Никакие особые точности не важны. Простая адекватная визуализация +-1…3 градуса, +-10-20%L по дальности вполне допустимо. Вопрос как вычислить LAT1, LON1 — ? Как максимально просто вычислить LAT1, LON1 — ?
Есть предположение, что решение дается выражениями вида:
LAT1 = LAT + 0.718*COS(AZIMUT*PI/180)*L
LON1 = SIN(AZIMUT*PI/180)*L
если они имеют смысл откуда они такие? что такое 0.718 ?
З.Ы. Понимаю вопросы ламерские, но просьба обойтись без стеба, т.к. преследуются чисто практические цели, а конкретно разбираться в 500 страницах курса высшей геодезии как-то уже наверное поздновато — и других задач выше крыши. Также буду благодарен если, кто-то сможет грамотно описать название данной конкретной задачи, чтобы можно было более точно погуглить. То что это прямая геодезическая задача я уже уяснил. Меня интересует развернутое описание типа «это задача вычисление координат на эллипсоиде WGS84 … бла бла бла …через …бла бла бла» или как-то аналогично.
Спасибо.
-
Игорь Белов
- Гуру
- Сообщения: 2206
- Зарегистрирован: 04 янв 2011, 22:00
- Статьи: 12
- Проекты: 1
- Репутация: 1493
- Откуда: Казань
Re: расчёт координат от точки по азимуту?
Сообщение
Игорь Белов » 28 янв 2015, 23:55
tems-ya писал(а):Есть предположение, что решение дается выражениями вида:
LAT1 = LAT + 0.718*COS(AZIMUT*PI/180)*L
LON1 = SIN(AZIMUT*PI/180)*Lесли они имеют смысл откуда они такие? что такое 0.718 ?
Для расстояний 300 метров на местности без претензий к точности предположение годится. Будет как-то так:
Код: Выделить всё
LAT1 = LAT + L * COS(AZIMUT * PI / 180) / (6371000 * PI / 180)
LON1 = LON + L * SIN(AZIMUT * PI / 180) / COS(LAT * PI / 180) / (6371000 * PI / 180)
Откуда они такие? Просто забываем, что Земля круглая, и решаем задачу как плоскую. Только надо учесть, что меридианы к полюсам сближаются, отсюда деление приращения долготы на косинус широты. 6371000 — средний радиус Земли в метрах, так что (6371000 * PI / 180) ≈ 111195 — средняя длина 1° дуги в метрах.
Что такое 0.718? Тайна сия велика есть.
The purpose of computing is insight, not numbers
-
tems-ya
- Интересующийся
- Сообщения: 39
- Зарегистрирован: 28 янв 2015, 22:07
- Репутация: 1
- Откуда: Воронеж
Re: расчёт координат от точки по азимуту?
Сообщение
tems-ya » 29 янв 2015, 15:00
Спасибо за ответ. Все работает, только в ваших формулах длина L задается в метрах, а в моих, в км. Из-за этого я сначала подумал, что формулы не рабочие. Ваши формулы на взгляд заметно точнее. Еще раз спасибо.
-
tems-ya
- Интересующийся
- Сообщения: 39
- Зарегистрирован: 28 янв 2015, 22:07
- Репутация: 1
- Откуда: Воронеж
Re: расчёт координат от точки по азимуту?
Сообщение
tems-ya » 12 мар 2015, 15:44
Как повысить точность приведенных формул. Неожиданно оказалось, что существующей точности при рисовании дуги не хватает…
-
Игорь Белов
- Гуру
- Сообщения: 2206
- Зарегистрирован: 04 янв 2011, 22:00
- Статьи: 12
- Проекты: 1
- Репутация: 1493
- Откуда: Казань
Re: расчёт координат от точки по азимуту?
Сообщение
Игорь Белов » 12 мар 2015, 19:14
tems-ya писал(а):Как повысить точность приведенных формул. Неожиданно оказалось, что существующей точности при рисовании дуги не хватает…
Просто прочтите тему с начала.
The purpose of computing is insight, not numbers
-
Warden
- Интересующийся
- Сообщения: 25
- Зарегистрирован: 16 сен 2015, 16:43
- Репутация: 7
- Откуда: Королёв
Re: расчёт координат от точки по азимуту?
Сообщение
Warden » 05 май 2016, 10:47
Ребят, задача та же, пытаюсь рассчитать координаты точки, получаю координаты от изначальной с разницей порядка минут (хотя, расстояние между точками 1000км). Для проверки решал для нахождение координат Москвы, при известных координатах Питера, получил то же самое. Кто может подсказать что не так?
Код: Выделить всё
$phi = 62.8356; $lyambda = 61.2193; $A = 328.7625; $L = 1008.18; $R = 6371; $s = $L/$R;
Где phi — широта, lyambda — долгота, А — азимут, L — расстояние до точки (км), R — радиус Земли. $s — переход к угловой мере расстояния.
Код: Выделить всё
$grad = pi()/180;
$phi1 = asin(cos($s*$grad)*sin($phi*$grad)+sin($s*$grad)*cos($phi*$grad)*cos($a*$grad)*180/pi();
echo $phi1;
***62.970788480261***
$lyambda1 = $lyambda + atan(sin($s*$grad)*sin($A*$grad)/(cos($s*$grad)*cos($phi*$grad)-sin($s*$grad)*sin($phi*$grad)*cos($A*$grad)))*180/pi();
echo $lyambda1;
***61.038719442206***
В общем, прошу помощи разобраться, что не так.
P.S. программа написана на php.
-
Игорь Белов
- Гуру
- Сообщения: 2206
- Зарегистрирован: 04 янв 2011, 22:00
- Статьи: 12
- Проекты: 1
- Репутация: 1493
- Откуда: Казань
Re: расчёт координат от точки по азимуту?
Сообщение
Игорь Белов » 05 май 2016, 12:19
Warden писал(а):$s — переход к угловой мере расстояния
Вы подставляете в формулы дугу s, как будто она в градусах, хотя она в радианах.
The purpose of computing is insight, not numbers
Добро пожаловать!
Войдите или зарегистрируйтесь сейчас!
Войти
-
- Регистрация:
- 8 май 2010
- Сообщения:
- 2
- Симпатии:
- 0
есть задача:
дано текущее местоположение, широта долгота, а так же азимут и расстояние до другой точки, координаты которой необходимо найти.
как это сделать?
нужна именно формула(ы), алгоритм.один товарищ, сказал делать так : переводишь в меркатор, переводишь своё расстояние в метры меркатора, откладываешь на плоскости, переводишь в градусы.
я ничего не понял, точнее понял, что надо перевести первую точку в координаты меркатора, потом расстояние перевести туда же отложить до нужной точки и эту точку в градусы обратно перевести… формулы мне не приводились, кроме ссылки на википедию, по которой я не понял что к чему.
просьба к знающим людям, распишите все подробнее, или предложите какой-то другой способ…#1
-
Форумчанин
- Регистрация:
- 11 июл 2007
- Сообщения:
- 6.373
- Симпатии:
- 458
- Адрес:
-
Тула
-
- Регистрация:
- 8 май 2010
- Сообщения:
- 2
- Симпатии:
- 0
ах вот как оно называется. спасибо! то что надо…
#3
Поделиться этой страницей
Географические
координаты точки А, широту и долготу
определяют, пользуясь минутными шкалами
рамок карты. Из точки А опускают
перпендикуляры на рамки карты и в местах
пересечения со шкалой берут отсчеты:
западная или восточная – широта, северная
или южная – долгота ( см. рисунок).
Задание:
самостоятельно определить географические
координаты точки Б.
рис.
Прямоугольные
координаты точки В х и уопределяют
относительно километровых линий сетки.
Для этого измеряют расстояние по
перпендикулярам до ближайших километровых
линий.
Задание:
Самостоятельно определить координаты
точки Г.
Расстояние
между точками определяют с помощью
линейного или поперечного масштаба.
Криволинейные отрезки измеряют
курвиметром.
Тема 3. Прямая и обратная геодезическая задача.
При
производстве строительных работ
создается разбивочная основа в виде
строительной сетки. Пункт Государственной
геодезической сети выносится на
территорию строительства для обеспечения
исходными данными всех геодезических
работ. Решение прямой геодезической
задачи позволяет определить координаты
всех точек, расположенных в зоне
строительства.
В
геодезии принята система плоских
прямоугольных координат, в которой
относительно оси XX,
совпадающей
с направлением меридиана, и оси YY,
перпендикулярной
к оси XX,
определяют
положение каждой точки, т. е. её координаты
х
и у; при
этом счет четвертей идет по ходу часовой
стрелки,
согласно возрастанию азимутов и
дирекционных углов .
При
составлении планов ситуацию накладывают
от опорных точек
и линий, их соединяющих. Поэтому на
бумагу сначала наносят
опорные точки по их координатам. Так
как число этих точек
весьма велико, то при геодезических
работах часто решают прямую
задачу на координаты. Она состоит в том,
что по известным
координатам данной точки, а также
дирекционному углу и горизонтальному
проложению линии от этой точки до
определяемой вычисляют координаты
определяемой точки.
ПРИМЕР.
Решить
прямую геодезическую задачу, т.е Пример
определить
прямоугольные координаты точки 2 через
координаты точки 1
по следующим данным:
Кординаты
точки 1 — X,
= 4250 м. У,=6730 м;
Расстояние между
точками d =120,10
м; направление линии, т.е
дирекционный угол 48°30′ =r.
Для определения
координат точки 2 сначала нужно найти
приращение координат –ΔХ и ΔУ,затем
сами координаты Х2;У2
.
Решение:
1.Определяем приращение
координат ΔХ =d.
cosr
= 120,10.
0,6626 =79,51 м
ΔУ= d.
sinr
=12,10 .
0,7490 =89,95 м
х
ΔУ
х2 2
ΔХ
r d
х1 1
0 у1 у2 у
2. Определяем
координаты точки 2
Х2=
Х1+ΔХ
= 4250 +79,51 + 4329,51 м
У2=У1+
ΔУ =6730 + 89,95 + 6819,95 м
В практике прикладной
геодезии для нужд проектирования и
выноса проекта на местность приходиться
определять значения дирекционного угла
и длинны стороны по известным координатам
её конечных точек. Это и составляет
сущность решения обратной геодезической
задачи.
Решение обратной
геодезической задачи состоит в том,
что, зная координаты опорных точек,
можно вычислить дирекционный угол и
расстояние между данными точками.
Пример.
Решить
обратную геодезическую задачу, т.е.
найти расстояниеd
между точками и направление этой линии
( румб, азимут), если координаты точки1
Х1=
320,5 м, У1
= 780,2 м; координаты т очки 2 Х2=
230,7 м, У2
=900,1 м.
Решение.
1.
Определяем приращение координатΔХ =
Х2-Х1
= 230,7 -320,5 =
-89,8 м
ΔХ
= У2
–У1
=900,1 – 780,2 = 119,9 м
Знаки
приращений говорят, что линия расположена
во второй четверти (ЮВ)
Знаки
приращения координат можно определить
по следующей схеме:
СЗ
С х
СВ
З +ΔХ
— ΔУ +ΔХ + ΔУ В
у -ΔХ
— ΔУ -ΔХ + ΔУ у
ЮЗ ЮВ
Ю
х
Они
зависят от четверти, в которой расположена
линия.
2.
Величина румба определяется по формуле
tg
r=
=
= 1, 3352
ctgr
=
=
=
0,74,89
По
таблицам Брадиса находим величину румба
— 53⁰ 10ʹ
3.
Расстояние между точками найдем по
теореме Пифагора:
d=
ΔХ2+
ΔУ2 =
89,82
+ 119,92
=
22440,05
= 149,8 м
Контрольные
вопросы:
1.
Какие знаки у приращения координат ΔХ
и ΔУ, если наименование румба ЮЗ?
а)
–ΔХ, –ΔУ; б)+ ΔХ, +ΔУ; в)–ΔХ,+ΔУ; г))+
ΔХ,–ΔУ;
2.
Найдите координаты точки 2, если координаты
точки 1 Х= 10, У=5 и приращение ΔХ = 20, ΔУ
=15.
а)
30, 20; б) 20, 30; в) 20, 40; г) 30, 40;
3.
Решить обратную геодезическую задачу:
найти расстояние между двумя точками
и румб линии, если координаты начала и
конца линии Х1=
320,5 м, У1 =
780,2 м; Х2 230,7
м,
У2
= 900,1 м.
а);
160,7 м, 60⁰ 20ʹ; б)149,8 м, 53⁰ 10ʹ; в) 120, 9 м, 58⁰
45ʹ; г) 456,7м, 45⁰ 15ʹ;
4.
Решить прямую геодезическую задачу:
определить прямоугольные координаты
точки 2 через координаты точки 1 по
следующим данным: Х1
= 4250м, У1=
6730м, расстояние d – 120, 1 м, дирекционный
угол — 48⁰30ʹ.
а)
Х2
=2570 м,У2
=4820м; б)Х2
=357 м,У2
=724 м; в) Х2
=695м, У2=
611 м; г) Х2
=4329,5 м, У2
= 6819,9 м.
Тема:
Ориентирование
№ |
Вопросы |
Ответы |
Код |
I |
Какие |
Осевого |
1 |
Ближайшего |
2 |
||
Южного |
3 |
||
Северного |
4 |
||
II |
Азимут |
Сз |
1 |
каково |
Юв |
2 |
|
Юз |
3 |
||
Св |
4 |
||
III |
Азимут |
r°=А° |
1 |
r°=180°-А° |
2 |
||
r°=А°-180° |
3 |
||
r°=360°-А° |
4 |
||
IV |
каково |
А°=180°+r° |
1 |
Ао=360°-r° |
2 |
||
А°=180°-r° |
3 |
||
А°=r° |
4 |
||
V |
Каково |
Сз:r° |
1 |
Юз:r° |
2 |
||
Юв:r° |
3 |
||
Св:r° |
4 |
№ |
Вопросы |
Ответы |
Код |
I |
Какие |
Северного |
1 |
Осевого |
2 |
||
Южного |
3 |
||
направления |
|||
меридиана |
|||
Ближайшего |
4 |
||
направления |
|||
И |
Азимут |
Сз |
1 |
Юв |
2 |
||
Юз |
3 |
||
Св |
4 |
||
III |
Азимут |
r°=А° |
1 |
r°=180°-А° |
2 |
||
r°=А°-180° |
3 |
||
r°=360°-А° |
4 |
||
IV |
каково |
А°=180°-r° |
1 |
А°-360°-r° |
2 |
||
A°=180W |
3 |
||
А°=r° |
4 |
||
V |
Каково |
Сз:r° |
1 |
Юз:r° |
2 |
||
Юв:r° |
3 |
||
Св:r° |
4 |
№ |
Вопросы |
Ответы |
Код |
I |
Какие |
Северного |
1 |
Южного |
|||
направления |
2 |
||
меридиана |
|||
Ближайшего |
|||
направления |
3 |
||
Осевого |
4 |
||
меридиана |
|||
И |
Азимут |
Сз |
8 |
наименование |
Юв |
9 |
|
Юз |
1 |
||
Св |
2 |
||
III |
Азимут |
r°=А° |
3 |
r°=180°-А° |
4 |
||
r°=А°-180° |
5 |
||
r°=360°-А° |
6 |
||
IV |
каково |
А°=180°-r° |
7 |
А°=360°-r° |
8 |
||
А°=180°+r° |
9 |
||
А°=r° |
1 |
||
V |
Каково |
Сз:r° |
2 |
Юз:r° |
3 |
||
Юв:r° |
4 |
||
Св:r° |
5 |
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
Первое, что делает калькулятор, — это преобразует обе точки, точку A и точку B, в декартовы ( x, y, z ) координаты. Это осложняется тем, что Земля не является идеальной сферой. Из-за вращения Земля выпячивается на экваторе, образуя форму, известную как сплюснутый сфероид . Расстояние между полюсами равно 6357 км, а расстояние диаметра, проходящего через экватор, равно 6378 км. Рассмотрим эту диаграмму, на которой выпуклость преувеличена для иллюстрации:
Геоцентрическая широта θ не совпадает с геодезической широтой φ на сплюснутой Земле.
Здесь X — точка на поверхности Земли, N — северный полюс, S — южный полюс, C — центр Земли. Экватор представлен горизонтальной линией, проходящей через С. Представьте , что вы стоите в точке X. Пунктирная линия, касательная к Земле, указывает на ваш местный горизонт.
Перпендикулярно вашему горизонту проходит еще одна пунктирная линия, уходящая в землю. Там, где эта пунктирная линия касается плоскости земного экватора, вы видите угол, отмеченный φ (греческая буква phi ). Этот угол называется геодезической широтой . Именно такую широту сообщает GPS.
Действительно, геодезическая широта — это классический вид широты, используемый с древних времен. Грубо говоря, это широта, измеренная астрономами: это угол Северного небесного полюса (точки на небе рядом с Полярной звездой) над вашим местным горизонтом. Если вы стоите на северном полюсе Земли, Полярная звезда будет прямо вверху или на 90 градусов выше горизонта. Точно так же, если вы стоите на экваторе, Полярная звезда будет на горизонте или на 0 градусов выше горизонта. Таким образом, геодезическую широту может измерить непосредственно любой моряк при ясном ночном небе.
Однако, чтобы вычислить декартовы координаты X относительно центра C Земли, калькулятору нужна геоцентрическая широта , обозначенная на диаграмме θ (греческая буква theta ). Это угол между экватором и X , как видно из C. Преобразование основано на стандарте Всемирной геодезической системы WGS 84.
Точно так же и расстояние от центра Земли до данной точки на ее поверхности является переменным. Функция вычисляет это расстояние как функцию геодезической широты, также используя WGS 84.
Интересно отметить, что геоцентрическая и геодезическая широты одинаковы, когда вы находитесь на экваторе: обе равны 0 градусов. Оба вида широты также одинаковы, если вы находитесь на любом из полюсов Земли: +90 или -90 градусов. Но они расходятся в разной степени в других местах на Земле.
Калькулятор вычисления декартовых координат точки с учетом ее геодезической широты, долготы и высоты. Эта функция также вычисляет вектор нормали в заданной точке, то есть направление вверх, перпендикулярное горизонту наблюдателя, для правильной поправки на высоту над средним уровнем моря. Результирующие компоненты вектора все выражены в метрах.
Для завершения вычислений калькулятор использует хитрость. Он поворачивает систему координат так, что точка наблюдения (точка A) находится на условном экваторе и нулевом меридиане. Другими словами, представьте, что вы вращаете глобус, который держите в руках, так, что ваша точка наблюдения теперь находится на экваторе и обращена прямо к вам. Координаты теперь идеально расположены для расчета углов азимута и высоты, как их видит наблюдатель в точке А:
- Ось X указывает прямо вверх (от центра земного шара).
- Ось Y указывает точно на восток.
- Ось Z указывает точно на север.
После поворота системы координат вы можете провести линию от точки А на повернутом глобусе к точке Б на том же повернутом глобусе через трехмерное пространство. Эта линия обычно проходит через Землю, предполагая, что и A, и B находятся на поверхности Земли или вблизи нее. Используя комбинацию функций тригонометрии и скалярных произведений векторов, калькулятор определяет азимутальный угол и угол высоты. Он использует формулу Пифагора для определения расстояния по прямой между точками.
Этот калькулятор азимута позволит вам рассчитать азимут по широте и долготе. Он подскажет вам, в каком направлении вам нужно указать компас, и каково кратчайшее расстояние между двумя точками с известными географическими координатами. Эта статья включает в себя краткое объяснение используемых нами формул — они могут оказаться полезными, если вы планируете определять азимут вручную.
-
June 21 2010, 09:18
Расчет координат по известным точкам и азимутам
Есть задача, простая. Есть координаты, обычные, вида
54° 54.194’С
38° 22.430’В
Нужно вычислить координаты точки на расстоянии от данной в N километров по азимуту Х. Второй вариант — даны две точки, даны расстояния третьей от первых двух, надо вычислить координаты (оба варианта). Нашел один калькулятор — увы, считает только первый вариант и точность — два знака после запятой. В Ozi такого не нашел. А ведь по идее где-то это очень просто реализовано.
Спасибо