Добро пожаловать!

Войдите или зарегистрируйтесь сейчас!

Войти

Как перевести широту и долготу от GPS в прямоугольные координаты?

Тема в разделе "Исходные данные", создана пользователем victor64, 8 ноя 2011.

  1. victor64

    Регистрация:
    6 май 2012
    Сообщения:
    0
    Симпатии:
    1
    точно! ночью писал туго соображаю ::biggrin24.gif::
    (Добавление)
    куда здесь воткнуть L0?
    (Добавление)
    наверное 0.00027778 а не 0.0027778
     
    #61
  2. chnav

    Форумчанин

    Регистрация:
    5 янв 2011
    Сообщения:
    1.003
    Симпатии:
    944
    Адрес:
    Москва
    Сорри, я стер это свое замечание т.к. вы работаете с приращениями, а я думал с проекцией UTM с произвольным центральным меридианом.
    L0 вам понадобится для расчета dL


    http://geodesist.ru/forum/topic.php?for ... 1321273347

    Давайте просто упорядочим алгоритм

    Расчитываем ОДНОКРАТНО на всю площадку:
    1. Для эллипсоида WGS84 считаете вспомогательные параметры e, f, либо используете их константные значения;
    2. Выбираете произвольную точку на своем обрабатываемом поле с координатами (B0, L0), во избежание недомолвок - это (широта, долгота). Например центр поля. B0 и L0 переводим в радианы;
    2. Подставляя B0, считаете величину W по формуле W = sqrt(1-(e*sinB0)^2);
    3. Считаете количество метров в радиане по широте по формуле a*(1-e^2)/W^3;
    4. Считаете количество метров в радиане по долготе по формуле a*cosB0/W;

    Расчитываем на каждую приходящую от приемника позицию:
    5. Переводим координаты приемника (B,L) в радианы;
    6. Считаем приращение координат в радианах (dB,dL), где dB=B-B0, dL=L-L0;
    7. Переводим приращение координат в метры, используя коэффициенты, полученные в п.3 и п.4

    (добавлено)
    Если быть совсем щепетильным, то п.2-4 надо считать для каждой приходящей от приемника координаты (это мизерная нагрузка на CPU). Но, как было продемонстрировано ранее, разница на небольшом поле будет в миллиметрах.
     
    #62
  3. victor64

    Регистрация:
    6 май 2012
    Сообщения:
    0
    Симпатии:
    1
    chnav
    Большое спасибо! попробую
     
    #63
  4. ZUCKtm

    Форумчанин

    Регистрация:
    21 май 2007
    Сообщения:
    1.832
    Симпатии:
    142
    Адрес:
    г. Мытищи Московской области
    2 stout
    Насчет UTM понял, спасибо.
    Насчет проекций Гаусса-Крюгера и Transverse Mercator есть вопросы.
    Столкнулся с вопросом соответствия двух упомянутых проекций. Не совсем уверен: они строятся по одному алгоритму? В Wiki есть фраза, меня смутившая:
    Я правильно понимаю, что при небольшом удалении от осевого меридиана (скажем, в пределах 6-градусной зоны) результаты расчета плоских прямоугольных координат из геодезических по формулам для UTM и по формулам для проекции Гаусса-Крюгера будут практически одинаковые?
     
    #64
  5. stout

    Форумчанин

    Регистрация:
    5 янв 2008
    Сообщения:
    4.172
    Симпатии:
    11.939
    Адрес:
    Златоглавая и Белокаменная
    2 victor64
    Я бы всё-таки рекомендовал вам использовать топоцентрические координаты.
    Как совершенно верно заметил chnav
    Выбор центра поля, как начала топоцентрической СК позволит уменьшить искажения.
    Вычисляем Xo, Yo, Zo
    BLH2XYZ(a, e, Bo, Lo, H, Xo, Yo, Zo);
    и матрицу:
    M[1][1] := -Sin(Lo);
    M[1][2] := Cos(Lo);
    M[1][3] := 0;
    M[2][1] := -Sin(Bo) * Cos(Lo);
    M[2][2] := -Sin(Bo) * Sin(Lo);
    M[2][3] := Cos(Bo);
    M[3][1] := Cos(Bo) * Cos(Lo);
    M[3][2] := Cos(Bo) * Sin(Lo);
    M[3][3] := Sin(Bo);

    Затем для каждой точки трека B, L , H
    вычисляем прямоугольные геоцентрические координаты Xp, Yp, Zp
    BLH2XYZ(a, e, B, L , H, Xp, Yp, Zp);
    а затем - топоцентрические:
    x := M[1][1] * (Xp - Xo) + M[1][2] * (Yp - Yo) + M[1][3] * (Zp - Zo);
    y := M[2][1] * (Xp - Xo) + M[2][2] * (Yp - Yo) + M[2][3] * (Zp - Zo);
    z := M[3][1] * (Xp - Xo) + M[3][2] * (Yp - Yo) + M[3][3] * (Zp - Zo);


    2 ZUCKtm
    Между координатами в проекции Гаусса-Крюгера и в transverse Mercator всегда выполняется соотношение
    (N,E)TM = 0.9996*(N,E)ГК
    само-собой разумеется, что в левой и правой частях нет соответствующих false Northing и false Easting, т.е. это "чистые" координаты проекции, в которые ещё не добавлены смещения.
    Приведённый в тексте класс TransverseMercator позволяет по единым (довольно точным) формулам вычислять координаты как в ГК, так и в TM в очень широкой зоне.
    На рисуночке представлена зависимость точности координаты Е от удаления от осевого меридиана (для координаты N точность чуть выше). Кроме того, это один из самых быстрых алгоритмов (если не самый быстрый).
     

    Вложения:

    #65
  6. ZUCKtm

    Форумчанин

    Регистрация:
    21 май 2007
    Сообщения:
    1.832
    Симпатии:
    142
    Адрес:
    г. Мытищи Московской области
    Все понял. Единственное различие - использование масштабного коэффициента. А то у меня уже сомнения появились - корректно ли применять в Topcon Tools проекцию TM с масштабным коэффициентом 1 и считать, что это и есть проекция Гаусса-Крюгера. Спасибо.
     
    #66
  7. victor64

    Регистрация:
    6 май 2012
    Сообщения:
    0
    Симпатии:
    1
    stout огромное спасибо за помощь, еще вопросик: как расчитывается Z и Н? навигатор выдаёт след. данные
    $GPGGA,123519,4807.038,N,01131.000,E,1,08,0.9,545.4,M,46.9,M,,*47
    где:
    GGA – Заговолок
    123519 –UTC время 12:35:19
    4807.038, N – Широта, 48 градусов 7.038 минуты северной широты
    01131.000, Е – Долгота, 11 градусов 31.000 минуты восточной долготы
    1 - тип решение, StandAlone решение
    0 – нет решения,
    1 – StandAlone,
    2 – DGPS,
    3 – PPS,
    4 – фиксированный RTK,
    5 – не фиксированный RTK,
    6 – использование данных инерциальных систем,
    7 – ручной режим,
    8 – режим симуляции
    08 – количество используемых спутников
    0.9 – геометрический фактор, HDOP
    545.4, М – высота над уровнем моря в метрах
    46.9, М – высота геоида над эллипсоидом WGS 84
    [пустое поле] – время прошедшее с момента получения последней DGPS поправки. Заполняется при активизации DGPS режима
    [пустое поле] – идентификационный номер базовой станции. Заполняется при активизации DGPS режима.
     
    #67
  8. stout

    Форумчанин

    Регистрация:
    5 янв 2008
    Сообщения:
    4.172
    Симпатии:
    11.939
    Адрес:
    Златоглавая и Белокаменная
    Оси Z принадлежит малая ось эллипсоида, координата Z вычисляется в процедуре BLH2XYZ.
    Т.е. фраза
    - это комментарий к вызову процедуры.
    Н - эллипсоидальная высота. Вычисляется как высота над уровнем моря + высота геоида над эллипсоидом
     
    #68
  9. Евгений555

    Регистрация:
    5 май 2012
    Сообщения:
    7
    Симпатии:
    0
    Всем доброго времени суток! К сожелению, не прочитал все сообщения данной темы,поэтому если где повторюсь-не серчайте)
    Вопрос такой: учебный проект по диплому. Исследую нагруженность двигателя по GPS. В общем проблема такая-приходят данные от точки к точке с определенным интервалом. Но таких сообщений приходит до 3 тысяч. Нужно расстояние между этими точками. А в ручную их замерять-как вы понимаете проблема. Но, выдает координаты следующие(пример):
    51.819698, 107.649788 (14). Как я понимаю - это долгота и широта? Также выдает данные: высота над уровнем моря. Из всего выше сказанного хотелось бы узнать:есть ли какая формула для определения расстояния между этими точками, по тем данным которые я предоставил. Заранее спасибо.
     
    #69
  10. В.Шуфотинский

    В.Шуфотинский Модератор
    Команда форума Форумчанин

    Регистрация:
    10 дек 2008
    Сообщения:
    17.390
    Симпатии:
    5.008
    Формулы, естественно, есть. Сложность их зависит от необходимой точности определения координат. Какая Вам нужна точность?
     
    #70
  11. Евгений555

    Регистрация:
    5 май 2012
    Сообщения:
    7
    Симпатии:
    0
    ну точность я думаю это только от этой программы зависит. какую уж она выдаст. а формула просто чтобы подставить выдаваемые ею данные и получились метры. или не так?
     
    #71
  12. В.Шуфотинский

    В.Шуфотинский Модератор
    Команда форума Форумчанин

    Регистрация:
    10 дек 2008
    Сообщения:
    17.390
    Симпатии:
    5.008
    Вам правильные метры или любые похожие?
     
    #72
  13. Евгений555

    Регистрация:
    5 май 2012
    Сообщения:
    7
    Симпатии:
    0
    чего то я не понял) как понять правильные или любые похожие?
     
    #73
  14. В.Шуфотинский

    В.Шуфотинский Модератор
    Команда форума Форумчанин

    Регистрация:
    10 дек 2008
    Сообщения:
    17.390
    Симпатии:
    5.008
    Правильные координаты - координаты точки переведенные по правильным формулам с необходимой пользователю точностью.
    Похожие на правильные - набор цифр до любого знака после запятой, но несоответствующие координатам данной точки.
    Если Вас устраивает точность не лучше первых метров, можно пользоваться геодезическими калькуляторами, задавая перед переводом необходимую Вам точность. Если надо точнее, этот способ не подойдёт.
     
    #74
  15. Евгений555

    Регистрация:
    5 май 2012
    Сообщения:
    7
    Симпатии:
    0
    ну хотелось бы на оба способа взглянуть, если возможно
     
    #75
  16. В.Шуфотинский

    В.Шуфотинский Модератор
    Команда форума Форумчанин

    Регистрация:
    10 дек 2008
    Сообщения:
    17.390
    Симпатии:
    5.008
    На любом геодезическом калькуляторе наберите любую широту и долготу.
    1. Если это будут секунды, и Вы получите прямоугольные координаты с точностью до 30м – это будут правильные координаты.
    2. Если это будут десятые доли секунды, и Вы получите прямоугольные координаты с точностью до 5м – это будут правильные координаты.
    3. Если это будут сотые доли секунды, и Вы получите прямоугольные координаты с точностью до 0.5м – это будут неправильные координаты, похожие на правильные.
    То же самое и формулы. Такова наша геодезия.
     
    #76
  17. Евгений555

    Регистрация:
    5 май 2012
    Сообщения:
    7
    Симпатии:
    0
    вопрос в том-где найти геодезический калькулятор этот?
     
    #77
  18. В.Шуфотинский

    В.Шуфотинский Модератор
    Команда форума Форумчанин

    Регистрация:
    10 дек 2008
    Сообщения:
    17.390
    Симпатии:
    5.008
    #78
  19. Евгений555

    Регистрация:
    5 май 2012
    Сообщения:
    7
    Симпатии:
    0
    #79
  20. В.Шуфотинский

    В.Шуфотинский Модератор
    Команда форума Форумчанин

    Регистрация:
    10 дек 2008
    Сообщения:
    17.390
    Симпатии:
    5.008
    Там нет такой функции.
     
    #80

Поделиться этой страницей

  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление