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

ogr2ogr афинное преобразование

Добавлено: 03 сен 2014, 13:27
maks24
Стоит задача при конвертации сдвинуть координату Х. Искал решение как это сделать попутно на ogr2ogr. Нашёл только такой вариант: -dialect sqlite -sql "SELECT ShiftCoords(geometry,30000,0) FROM points"
источник - http://gis.stackexchange.com/questions/ ... n-in-qgis2
Пробовал с разными входными выходными файлами. Более менее корректно получилось с shp-shp. Но семантика всёравно пропала. В семантике записался FID и всё. Но координаты подвинулись :)

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

ogr2ogr 1\arc\hdrlin_1mln12.shp 1\arc\hdrlin_1mln1.shp -dialect sqlite -sql "SELECT ShiftCoords(geometry,40075014.13,0) FROM hdrlin_1mln1"
Вообще функции интересные, разобраться бы как с ними корректно работать.
Так же есть :
ScaleCoords( geom Geometry , scaleX Double precision [ , scaleY Double precision ] ) - умножение
SwapCoords( geom Geometry ) - поменять местами Х У

Re: ogr2ogr афинное преобразование

Добавлено: 03 сен 2014, 17:02
Denis Rykov
Так вы в SELECT-е остальные поля то укажите.

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

SELECT ShiftCoords(geometry,40075014.13,0), field1, field2, ..., fieldn

Re: ogr2ogr афинное преобразование

Добавлено: 04 сен 2014, 06:26
maks24
Denis Rykov, а all по умолчанию здесь уже не работает?

Re: ogr2ogr афинное преобразование

Добавлено: 04 сен 2014, 06:53
Denis Rykov

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

SELECT ShiftCoords(geometry,40075014.13,0), * FROM ...

Re: ogr2ogr афинное преобразование

Добавлено: 04 сен 2014, 07:34
maks24
Всё получилось. * сообщает о выборе всех полей семантики.
Привожу примеры осуществления афинного преобразования.
Смешение координат:

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

ogr2ogr -f "mapinfo file" hdrlin_1mln12.mif hdrlin_1mln1.shp -dialect sqlite -sql "SELECT ShiftCoords(geometry,40075014.13,0), * FROM hdrlin_1mln1"
На выходе их шейпа получаем mid/mif с прибавкой в координате Х

Масштабирование (коэфициенты умножения для координат):

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

ogr2ogr -f "mapinfo file" hdrlin_1mln12.mif hdrlin_1mln1.shp -dialect sqlite -sql "SELECT ScaleCoords(Geometry,0.2,-1), * FROM hdrlin_1mln1"
Поменять местами координаты Х и У

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

ogr2ogr -f "mapinfo file" hdrlin_1mln12.mif hdrlin_1mln1.shp -dialect sqlite -sql "SELECT SwapCoords(Geometry), * FROM hdrlin_1mln1"

Re: ogr2ogr афинное преобразование

Добавлено: 04 сен 2014, 10:49
Максим Дубинин

Re: ogr2ogr афинное преобразование

Добавлено: 12 сен 2014, 06:04
maks24
Максим Дубинин писал(а):добавьте сюда: http://gis-lab.info/qa/ogr2ogr-examples.html
Если это адресовано мне, то я не представляю как это сделать.