Страница 1 из 2

Proj4 for Delphi - свойства и качества библиотеки

Добавлено: 03 фев 2016, 11:18
KotAlex
Уважаемые участники обсуждения !
Кто-нибудь когда-нибудь сталкивался с библиотекой PROJ4 для Delphi, выложенной на :
Proj4 for Delphi :
http://www.naadsm.org/iproj4-delphii
или, может быть, что-то про нее слышали ?
Можете ли вы высказать какое-то определенное мнение о работе и качествах этой библиотеки ?
Меня интересует вопрос о том, насколько ей можно доверять, ну и прочие самые разные ее аспекты ...
короче - хотел бы услышать просто мнения от тех, кто имел к ней хоть какое-то касательство.

Я скачал с указанного выше сайта архивы этой библиотеки, скомпоновал прект демо-приложения
этой библиотеки в Delphi ( это прошло относительно легко ) и опрбовал его на тех данных, которые обсуждались
в теме "Привязка растровой карты Арктики"
а именно - для проекции :

Код: Выделить всё

  Полярная равнопромежуточная проекция  
   North Pole Azimuthal Equidistant, код EPSG:102016
    +proj=aeqd +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs
и для точек ( градусы Lon/Lat --> метры проекции ) :

Код: Выделить всё

40 60   -->   2151984.08   -2564634.76 
-40 60   -->   -2151984.08   -2564634.76 
140 60   -->   2151984.08   2564634.76 
-140 60   -->   -2151984.08   2564634.76 
Созданое приложение выдало следующее :
Demo_PROJ4.jpg
Demo_PROJ4.jpg (102.94 КБ) 11532 просмотра
Как видите - очень хорошее совпадение результатов.

Но, в то же время, когда я попробовал по аналогии сравнить результаты преобразований для одних и тех же проекций ( самых разных ) в этом приложении и на сайте http://cs2cs.mygeodata.eu/
то впечатления остались весьма неприятные - очень существенные расхождения.
Вот и хочу спросить - у кого какие мнения насчет этой библиотеки ...
Если кого-то интересуют скомпилированное мною упомянутое приложение или весь его исходный проект в Delphi с исходными кодами - пишите сюда, выложу здесь.

Re: Proj4 for Delphi - свойства и качества библиотеки

Добавлено: 04 фев 2016, 00:37
stout
Как правило, ищут там где потерял, а не там где светлее.
Выложите примеры очень существенных расхождений.

Re: Proj4 for Delphi - свойства и качества библиотеки

Добавлено: 04 фев 2016, 10:32
KotAlex
stout писал(а):Выложите примеры очень существенных расхождений.
Вы правы, надо было это сделать с самого начала. Приношу извинения.
Результат преобразования из WGS84 в Pulkovo 1942, полученный на http://cs2cs.mygeodata.eu/ :
1_mygeodata.jpg
1_mygeodata.jpg (151.77 КБ) 11442 просмотра
Результат преобразования, полученный из оттранслированного мною проекта библиотеки Proj4 for Delphi,
полученного с http://www.naadsm.org/iproj4-delphii :
2_naadsm.jpg
2_naadsm.jpg (94.05 КБ) 11442 просмотра
Если в первом случае результат получен в градусах, то во втором - в метрах проекции.
Причем, как мне кажется - результат верный, поскольку при инверсном преобразовании получаем :
2_naadsm_Inverse.jpg
2_naadsm_Inverse.jpg (94.98 КБ) 11442 просмотра
Возникает вопрос - почему в первом случае результат в градусах, а во втором - в метрах ?
Что надо изменить в строке proj=... ( или где еще ... ), чтобы приложение выдало результат в градусах ?

Re: Proj4 for Delphi - свойства и качества библиотеки

Добавлено: 04 фев 2016, 10:33
KotAlex
Если кому интересно - выкладываю здесь прикрепленный архив с оттранслированными мною
демо-приложениями библиотеки Proj4 for Delphi. Все необходимые пояснения - в файле README.txt .

Re: Proj4 for Delphi - свойства и качества библиотеки

Добавлено: 04 фев 2016, 10:44
trir
Какие ять метры - это радианы!!!

Re: Proj4 for Delphi - свойства и качества библиотеки

Добавлено: 04 фев 2016, 10:48
stout
trir писал(а):Какие ять метры - это радианы!!!
Опередили на 2 минуты :mrgreen:
Но расхождение на 7.8" для первого числа есть.

Re: Proj4 for Delphi - свойства и качества библиотеки

Добавлено: 04 фев 2016, 11:07
KotAlex
trir писал(а):Какие ять метры - это радианы!!!
Да, вы правы - и в самом деле радианы ! Прошу прощения - первоначально не обратил внимания. У меня сегодня опять очень тяжелый день ...
Как я понимаю, строка Proj= здесь ни при чем. Возможно, что само приложение результат преобразует в радианы.
Надо лезть смотреть в исходные коды проекта. Сегодня этим заниматься некогда, зделаю завтра.

Re: Proj4 for Delphi - свойства и качества библиотеки

Добавлено: 04 фев 2016, 20:18
gamm
stout писал(а):Но расхождение на 7.8" для первого числа есть.
ставлю на то, что где-то использовался float 4-х байтовый, ошибка округления в 6 знаке.

Re: Proj4 for Delphi - свойства и качества библиотеки

Добавлено: 05 фев 2016, 09:01
KotAlex
gamm писал(а):
stout писал(а):Но расхождение на 7.8" для первого числа есть.
ставлю на то, что где-то использовался float 4-х байтовый, ошибка округления в 6 знаке.
Вчера вечером я бегло просмотрел исходные коды проекта и протрассировал его в отладчике. Дело не в использовании типа float, а в том, что по всему пространству кода используются функции преобразования вещественных форматов, в которых для вещественных значений по умолчанию задано ограничение в 6 знаков после запятой. Попытался увеличить это число - ничего не дало. В кодах действует какая-то хитрая закавыка, с которой, к сожалению, нет возможности разбираться в ближайщие дни. Вернусь к этому вопросу несколько попозже.
Ну, а для чего в проекте установлено подобное ограничение на точность - интересный, конечно, вопрос, но, боюсь, мы здесь можем только гадать из пустого в порожнее ...
Однако, возможно, надо учитывать - проект по свободной лицензии ...

Re: Proj4 for Delphi - свойства и качества библиотеки

Добавлено: 05 фев 2016, 12:20
Дмитрий Барышников
Ничего такого не заметил https://github.com/OSGeo/proj.4
Где именно происходит округление?
Везде вроде double (https://github.com/OSGeo/proj.4/blob/ma ... proj_api.h)

Re: Proj4 for Delphi - свойства и качества библиотеки

Добавлено: 05 фев 2016, 12:35
trir

Re: Proj4 for Delphi - свойства и качества библиотеки

Добавлено: 05 фев 2016, 13:17
KotAlex
Дмитрий Барышников писал(а):Ничего такого не заметил https://github.com/OSGeo/proj.4
Где именно происходит округление?
Везде вроде double (https://github.com/OSGeo/proj.4/blob/ma ... proj_api.h)
Я имею в виду не ваши источники, а исходные тексты, которые приведены :
trir писал(а):здесь
Для вещественных чисел везде используется 8-байтовый тип Double, но при выводе вещественных значений используется ограничение по умолчанию - 6 цифр после запятой.
И, кстати, по поводу ваших источников :
не будете ли вы так любезны хотя бы вкратце пояснить, что это за источники и каково их происхождение ?

Re: Proj4 for Delphi - свойства и качества библиотеки

Добавлено: 05 фев 2016, 13:28
KotAlex
trir писал(а):здесь
Для полной сборки проекта этого мало. Надо закачать файлы :
cxreedit-1.9.3-src.zip
general_purpose-1.6.4-src.zip
qclasses-0.1.7-src.zip
proj4_delphi-1.0.0-src.zip
с http://www.naadsm.org/opensource

Re: Proj4 for Delphi - свойства и качества библиотеки

Добавлено: 05 фев 2016, 13:57
trir
не будете ли вы так любезны хотя бы вкратце пояснить, что это за источники и каково их происхождение ?
мда, это и есть Proj4, а "Proj4 for Delphi" - это его порт, причём старый

Re: Proj4 for Delphi - свойства и качества библиотеки

Добавлено: 05 фев 2016, 17:20
gamm
trir писал(а):мда, это и есть Proj4, а "Proj4 for Delphi" - это его порт, причём старый
коллеги, а что такое "порт для Delphi", если в этом самом Delphi можно без затей использовать dll от самого PROJ4? это какая-то специальная фича для школьников?
Дмитрий Барышников писал(а):Везде вроде double (https://github.com/OSGeo/proj.4/blob/ma ... proj_api.h)
так вы же смотрите сам PROJ4, а не его "порт для Delphi", сделанный неизвестными пионэрами ...