1. ВНИМАНИЕ! В течении пары дней +- будет переезд форума на более защищённый сервер. Возможны перебои в работе.
    Скрыть объявление

библиотеки для работы с данными gnss/wsg84 и тд..

Тема в разделе "GNSS-измерения", создана пользователем whoim, 19 ноя 2012.

  1. whoim

    whoim Форумчанин

    Добрый день!
    новичок. Пинайте)

    Нужны библиотеки/алгоритмы для работы с координатами в wsg84 и вообще..
    Нужно работать с ними, переводя в метрические данные расстояния между точками, получать азимутные точки, ну и в таком духе..

    Реализация.. например - си, дельфи, пхп - да что нибудь..

    Подскажите?
     
  2. VITALY874

    VITALY874 Форумчанин

    В каком регионе ты находишься?
     
  3. stout

    stout Форумчанин

    zvezdochiot нравится это.
  4. whoim

    whoim Форумчанин

    VITALY874, Краснодар

    stout, спс - сейчас почитаю

    stout, жесткая штука) Нет ничего более basic? в рамках gps/nmea/wgs84 только - базовые вещи расчетов по latlong?
     
  5. stout

    stout Форумчанин

    Это одна из немногих кошерных библиотек.
    Среди всякого <censored> на sourceforge.net
    можно найти неплохие реализации.
    Главный вопрос - какую цель преследуете?
     
  6. whoim

    whoim Форумчанин

    stout, просто расчеты географических точек. В условиях nmea/wsg84 и иже. Расстояние между точками, поставить точку на 90 метров 180 азимута (азимутальная) и т.д. Нашел реализацию расчетов гуглапи3 на php, можно переписать куда угодно, функции несложные.. Но нет полностью поддержки разницы высот. Впрочем, без БД высот все равно евклидова геометрия там..

    В общем - нужна самая простая библиотека (причем можно просто в формулах) для сферической геометрии эллипсоида вгс84, и ее производные..
     
  7. stout

    stout Форумчанин

    Раздел геодезии изучающий геометрию на эллипсоиде называется сфероидической (не сферической!) геодезией.
    Если вас интересуют вычисления с точки зрения навигации, то я бы посоветовал применить теорию Гаусса о конформном отображении эллипсоида на сферу. И решать задачи на сфере. На русском об этом можно прочитать в книге П. С. Закатова "Курс высшей геодезии" § 28. Теория Гаусса конформного изображения эллипсоида на шаре. Применение ее к решению главной геодезической задачи. Найти эту книгу в сети легко.
    Сама теория довольно проста (но очень элегантна). На практике сводится к:
    а) преобразованию геодезической широты B и L в сферические координаты φ и λ по очень простым формулам.
    sin φ = (1/c)*sin B и λ = с*L; с - const в пределах определённого пояса, ограниченного параллелями.
    б) Решению задачи на сфере. Использовать гаверсинус (см. ссылки)
    с) и обратному переходу к эллипсоиду.
    И у вас будет своя библиотека, только с блэкджеком и шлюхами.
    Если интересуют различные проекции, то вам сюда - Coordinate Conversions and Transformations including Formulas
    может быть и не самые лучшие формулы, но они работают.
     
    zvezdochiot и whoim нравится это.
  8. whoim

    whoim Форумчанин

    stout, огромное спасибо. Думаю, это правильно - изучить суть вопроса и воплотить в своей реализации, тем более что в моем минимуме все и правда не очень сложно (по крайней мере на первый взгляд). Еще раз спасибо!

    я так понимаю, эти константы уже определены и их можно откопать?
    впрочем, пороюсь сам - это полезно :)
     
  9. stout

    stout Форумчанин

    ee := Flattening * (2 - Flattening); // square of eccentricity; reciprocal of the flattening = (1/Flattening ~300)
    e2 := ee / (1 - ee); // square of the second eccentricity
    c := Sqrt(1 + e2 * sqr(sqr(CosB)));
    ::biggrin24.gif::
    Удачи!
     
  10. whoim

    whoim Форумчанин

    stout, сарказм принят ::biggrin24.gif::

    в принципе, провели тесты на карте гугла с азимутальной точкой (дана точка, от нее по расстоянию и по азимуту надо бахнуть другую). Воспользовались библиотекой на php, которая повторяет функционал гугла-апи (точнее, переписали процедурки на си). Вроде точно бахнуло точку)))) Но нужна точность +-2см.. грядки строить))) посмотрим)

    Воспользовались для этого этим кодом:
    PHP:
        public static function computeOffset($fromLatLng$distance$heading)
        {
            
    $distance /= self::EARTH_RADIUS;
            
    $heading deg2rad($heading);
            
    $fromLat deg2rad($fromLatLng->getLat());
            
    $cosDistance cos($distance);
            
    $sinDistance sin($distance);
            
    $sinFromLat sin($fromLat);
            
    $cosFromLat cos($fromLat);
            
    $sc $cosDistance $sinFromLat $sinDistance $cosFromLat cos($heading);
         
            
    $lat rad2deg(asin($sc));
            
    $lng rad2deg(deg2rad($fromLatLng->getLng()) + atan2($sinDistance $cosFromLat
                
    sin($heading), $cosDistance $sinFromLat $sc));
         
            return new 
    LatLng($lat$lng);
        }
    PHP:
        const EQUALS_MARGIN_ERROR 1.0E-9;
       
        
    // Earth's radius (at the Ecuator) of 6378137 meters.
        
    const EARTH_RADIUS 6378137
    прошу оценить, верно ли сделали)))
     
  11. stout

    stout Форумчанин

    Что вы, что вы … Я в таких случаях тег [sarcasm] [/sarcasm] ставлю - во избежание.
    Э-э-э. Я ведь не зря написал про гаверсинус
    Это чистый прон, а не функция.
    Со странички Geographiclib можно перейдти на online калькуляторы. Они очень точны. Используйте их для проверки. (Правда, в данный момент нужный не доступен. ::sad24.gif::)
    В сети есть интересная статья одной гишпанской дамы на заданную тему. Вот она
     

    Вложения:

    zvezdochiot нравится это.
  12. whoim

    whoim Форумчанин

    ооо спасибо спасибо, как вам удается такие материалы добывать то?))
    самое то! прямо сейчас начинаю читать и вникать.. тут параллельно приходится и с железом gps самопальным возится, и начинать софтом задумываться..

    многое прояснилось (пока не математически, хотя частично и там тоже). Нет случайно похожей ссылки по теме - нахождение координат (в радианах) по углу и расстоянию от известной точки? Угол - азимут, видимо, не совсем тот угол который требуется в расчетах.. пойду еще раз перечитаю

    насколько сложнее вычисления для эллипсоида wsg84?
     
  13. stout

    stout Форумчанин

    В геодезии, ввиду значимости и востребованности, эта задача удостоилась собственного имени - прямая геодезическая задача.
    Возможно уже скачали, выкладываю на всякий случай.

    Посмотрите на The GPS Toolbox раздел C++ and Java Code for Geodesic and Meridian Arc Computations -- by Klaus Hehl там есть решение прямой геодезической задачи.
     

    Вложения:

    zvezdochiot нравится это.
  14. whoim

    whoim Форумчанин

    stout, спасибо! отпишусь вам в личку сейчас..
     
  15. stout

    stout Форумчанин

    На такой вопрос трудно ответить, так как не определено, что такое сложно.
    Сравните решение Klaus Hehl с уже ставшим классическим методом Vincenty (или www.ngs.noaa.gov/PUBS_LIB/inverse.pdf )
    З.Ы. По поводу карт гугля - Web Mercator:Non-Conformal, Non-Mercator
     
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление