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

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

ГЕОДЕЗИСТ.RU
  1. #81
    так где же она есть?
     
  2. В.Шуфотинский

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

    #82
    Понимаете, у каждого геодезиста, есть программы для обработки наблюдений. В них есть встроенные калькуляторы. Эти программы стоят тысячи $, а калькулятор занимает доли процента от их возможностей, потому Вам не с руки их приобретать. Есть бесплатные калькуляторы.
    Кто-нибудь знает, в "PHOTOMOD" есть перевод из эллипсоидальной системы координат в картографические проекции?
     
  3. #83
    Здравствуйте! А можно где-нибудь почитать про эти формулы?
    Интересно как вычисляются массивы коэффициентов pseG, pseH, pseF?
     
  4. stout

    stout Форумчанин

    #84
    На русском - Математические основы высшей геодезии и картографии Р. Кёниг, К. Вейзе ; пер. с нем. З. Г. Либина ; под ред. А. А. Изотова. - М. : Изд. иностр. лит-ры, 1954г.
    Возможно, есть у Морозова в "Курс сфероидической геодезии" - точно не помню. Алгоритм есть точно, различаются в деталях реализации.
    На английском - пройдитесь по ссылкам автора библиотеки http://geographiclib.sourceforge.net/
    Автор этой библиотеки в Maxima до 10 порядка нашёл коэффициенты.
    Там где-то есть ссылка и на оригинальную работу Л. Крюгера.
    В сети есть статья Karsten Engsager "A HIGHLY ACCURATE WORLD WIDE ALGORITHM FOR THE TRANSVERSE MERCATOR MAPPING" в формате MS Word, у него приведены только готовые разложения до 7-го порядка.
     
  5. #85
    Спасибо!
     
  6. #86
    Попробовал сравнить результаты работы этого алгоритма (с параметрами эллипсоида WGS-84) и этого калькулятора http://www.uwgb.edu/dutchs/usefuldata/ConvertUTMNoOZ.HTM - совершенно разные результаты. Что за значения выдает класс TransverseMercator - так и не понял.
     
  7. stout

    stout Форумчанин

    #87
    Вот результаты сравнения на тестовом массиве библиотеки GeographicLib (порядка 200 000 точек)
    deltaXorder7-b85.png deltaYorder7-b85.png

    Также сравнивал с калькулятором Pinnacle и Blue Marble - полёт нормальный.
    Если бы увидел ваш код, тогда бы можно было что-то подсказать.
     
    Lex K-G нравится это.
  8. #88
    Раскрыть Спойлер
    procedure TForm1.FormCreate(Sender: TObject);
    begin
    a := 6378137.;
    recF := 298.257223;
    f := 1.0 / recF;
    e := Sqrt(f * (2 - f));
    TM := TransverseMercator.Create(a, recF, 0, 0, 7, 0.9996); // UTM
    end;

    procedure TForm1.btnCalculate1Click(Sender: TObject);
    begin
    B := StrToFloat(edLatitudeWGS84.Text) / 180 * Pi;
    L := StrToFloat(edLongitudeWGS84.Text) / 180 * Pi;
    TM.BL2XY(B, L, X, Y);
    edN.Text := FloatToStr(X);
    edE.Text := FloatToStr(Y);
    end;


    Класс TransverseMercator взят один-в-один из поста #55. Для проверки взял одну лишь точку (56.857847 гр. СШ, 35.919966 гр. ВД).
    В результате работы этого кода получилось следующее: (X=6889815.34571907, Y=2124685.12654504). Вот этот результат и не понятен. И что является Easting, я что Northing? А тот калькулятор, что я указывал выше, говорит, что Easting= 678026.5, а Northing= 6305362.
     
  9. stout

    stout Форумчанин

    #89
    Уверен, проблема в том, что второй аргумент процедуры BL2XY(B, L, X, Y) не долгота, а удаление от осевого меридиана.
    Думаю, что операторы
    Код:
      X := Gm*(Beta1 + X) + FNorthing;
      Y := Gm*(Beta2 + Y) + FEasting;
    Отвечают на ваш вопрос.
     
  10. #90
    Я взял точку (56.857847 гр. СШ, 35.919966 гр. ВД) для проверки. Не может же значение "35.919966 гр. ВД" (второй аргумент процедуры BL2XY(B, L, X, Y)) быть удалением от осевого меридиана внутри 6-ти градусной зоны?
     
  11. stout

    stout Форумчанин

    #91
    Класс TransverseMercator - это вычисление координат в проекции ТМ в пределах одной зоны (и пофиг какая её ширина, если только она не больше 2*60°, тогда ошибки начинают быстро нарастать. Правда надо сказать, что ни одному вменяемому человеку и в голову не придет работать в такой зоне, т.к. масштабные искажения-просто обхохочешься). Для того, чтобы считать в картографической системе координат, надо знать правила задания осевых меридианов.
    Для вашего примера осевой меридиан Lc = 33°. Поэтому аргумент L=(35.919966-33)/180*Pi.
     
  12. SergKo

    SergKo Форумчанин

    #92
    удаление = L-L0, где для стандартной "гугковской" разграфки L0=(N*6-3) и N=ЦЕЛОЕ(L/6)+1
     
  13. stout

    stout Форумчанин

    #93
  14. #94
    Спасибо большое! Теперь все сошлось.
     
  15. В.Шуфотинский

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

    #95
    Этих систем координат даже на одну территорию уйма. Вам какую СК надо?
    --- Сообщения объединены, , Оригинальное время сообщения: ---
    Вы лучше градусы, минуты и секунды напишите словами после цифр.
     
  16. stout

    stout Форумчанин

    #96
    Так, для примера::laugh24.gif::
    [​IMG]

    И, плюс, источник происхождения этих цифр.
    З.Ы. Мне вот обратные азимутальные (retroazimuthal) нравятся.::biggrin24.gif::
     
  17. stout

    stout Форумчанин

    #97
    Еще раз.
    1. Условно говоря, кто дал? Источник происхождения этих цифр? Это показания навигатора, сняли с карты (с какой?) и т. д.
    2. Для чего вам нужны X и Y?
    Поясняю. Одна и та же точка для разных эллипсоидов (и даже для одного и того же эллипсоида, но в разных отсчётных системах) будет иметь разные координаты. И наоборот. Одни и те же координаты для разных эллипсоидов и отсчётных систем соответствуют физически разным точкам. Поэтому, не зная источника происхождения этих цифр, однозначного ответа не получить.
    Это же замечание относится и к прямоугольным координатам. Если вы скажете, для каких целей они вам нужны, тогда можно предположить, что делать дальше.
     
    Последнее редактирование модератором:
    ЮС и Geo_major нравится это.
  18. #98
    А что такое сдвиг участка карты и как его вычислить, подскажите пожалуйста
     
  19. В.Шуфотинский

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

    #99
    Далее обсуждение данных координат прекращаем, а общие вопросы разбирать продолжаем.
    --- Сообщения объединены, , Оригинальное время сообщения: ---
    Термин "сдвиг" в геодезии используется, вот только по отношению к картам он не используется. Бывает сдвиг координат. Вы об этом?
     
    Geo_major нравится это.
  20. В.Шуфотинский

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

    Кстати, примером правоты уважаемого stout является перечень координат той точки, которую Вы просили пересчитать (я оставил только последние цифры):
    x=079.2 y=206.5
    x=109.2 y=393.8
    x=116.4 y=294.4
    x=146.3 y=481.6
    И это только в основных системах координат на используемых у нас референц-эллипсоидах. А ещё есть местные системы координат...
     
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление