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

Программное преобразование по контрольным точкам

Добавлено: 08 июл 2010, 00:20
BrainDrain
Всем привет.
Задача такая: есть векторные данные в некой локальной координатной системе (UTM, все параметры неизвестны), нужно преобразовать их в правильные данные в Spherical Mercator чтобы натягивать на них растры Google/Yandex map.
Есть координаты 6 точек в локальной системе и wgs84. Как сделать программное преобразование (хотя бы сначала в LL wgs84), какими средствами? Нужно именно программное (т.е. управляемое кодом), т.к. надо получить параметры и потом встроить его в пакетный экспорт. Смотрел GDAL OGR/Proj.Net/GeoApi/NTS/SharpMap/MapScript - но там просто преобразование cs->cs при всех известных параметрах. Даже просто афинное - не все десктопные системы могут (к примеру FME), в моем случае сделать т.к. тут метры не в метры переходят а в градусы. Пока попробую vector registration в geomedia сделать (там так можно), но мне это не очень удобно (хотя там можно с sdk помудрить, в крайнем случае, но оно тяжеловато и вообще платная софтина). Возможно надо в теорию углублятся (хитро вычислять параметры афинного преобразования/хелмерта) но не хочется велик изобретать. Подойдут любые компоненты для c++, .net, delphi, vb, python, командной строки. Как народ такие проблемы решает?

Re: Программное преобразование по контрольным точкам

Добавлено: 08 июл 2010, 00:57
Максим Дубинин
ArcGIS\Arcview: http://gis-lab.info/qa/shapewarp.html

Аффинные/полиномиальные пересчеты: http://gis-lab.info/qa/polynom.html

Осталось только, чтобы кто-нибудь взял и написал кусок кода, который будет использовать OGR и пересчитывать координаты всех узлов. Вроде не так уж сложно.

Re: Программное преобразование по контрольным точкам

Добавлено: 08 июл 2010, 09:26
BrainDrain
Про ArcView это понятно, а для афинного преобразования нужно чтобы исходные и конечные координаты были гомогенными. Я попробовал перегонять сначала (до афинного) все точки в spherical mercator (к примеру) - но на выходе пока бред.

Re: Программное преобразование по контрольным точкам

Добавлено: 08 июл 2010, 11:31
BrainDrain
Победил вроде. Преобразую конечные точки LL сначала в исходную проекцию (частично известную, ее можно считать World Mercator), потом уже на их основе(и точек, которые были изначально в исходной проекции) делаю афинное преобразование. У меня просто еще косяк был в том, что надо было свопить x с y.