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

Перевод из SXF в SHP с сохранением стилей

Добавлено: 18 апр 2019, 09:55
Mihail123
День добрый. SXF файлы закидываю в QGIS и настраиваю стили в ручную. А так как в одном SXF по 15 разных слоёв с Уникальными CLCDAми и стилями, то каждый слой экспортировать отдельно и к нему стиль очень трудоёмко. Подскажите есть ли модуль который мог бы упростить экспорт в SHP группой файлов со стилями?

Re: Перевод из SXF в SHP с сохранением стилей

Добавлено: 18 апр 2019, 12:18
Игорь Белов
Там же классификатор: в SXF у объектов коды, а в RSC соответствующие этим кодам стили. Так что нужен не модуль, а стилевые файлы.

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

Re: Перевод из SXF в SHP с сохранением стилей

Добавлено: 19 апр 2019, 12:33
Dmitry Stasev
Наверное достаточно 3 стилевых файла (точки, линии, полигоны) с типом знака - "Уникальные значения" по полю CLCODE. Которые дописывать кодами и стилями по мере подгрузки слоев.
В итоге получатся 3 псевдо-классификатора )
В любом случае, наверняка, почти все ручками придется делать.

Re: Перевод из SXF в SHP с сохранением стилей

Добавлено: 19 апр 2019, 15:32
Mihail123
Dmitry Stasev, Стили под каждый слой я создал и всё настроил по CLCODE. Потом я все эти слои что настроил пересохраняю в SHP для редактирования. Сохраняю каждый слой и к нему стиль в ручную, а слоёв тьма( Видимо все ручками... Так и не нашёл решения.

Re: Перевод из SXF в SHP с сохранением стилей

Добавлено: 19 апр 2019, 15:47
Игорь Белов
  • Стилевой файл можно подгружать к открытому шейпу. В проекте оформление сохранится.
  • Можно до открытия шейпа скопировать стилевой файл к файлам этого шейпа с таким же именем. Шейп откроется сразу в нужном виде.

Re: Перевод из SXF в SHP с сохранением стилей

Добавлено: 19 апр 2019, 16:15
trir

Re: Перевод из SXF в SHP с сохранением стилей

Добавлено: 19 апр 2019, 18:35
Dmitry Stasev
Mihail123 писал(а):
19 апр 2019, 15:32
Стили под каждый слой
Я предлагал не на каждый слой, а на каждый тип (точки, линии, полигоны)
А потом эти "3 псевдо-классификатора" накатить на Ваши слои
(например в консоли Python)
для выделенных в легенде слоев

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

# -*- coding: utf-8 -*-
from qgis.PyQt.QtCore import *

# путь к стилю для полигонов
style = u'a:\\test\\poly.qml'

# для выделенных в легенде слоев
for layer in iface.legendInterface().selectedLayers():
    layer.loadNamedStyle(style)

Re: Перевод из SXF в SHP с сохранением стилей

Добавлено: 19 апр 2019, 18:53
Dmitry Stasev
А если побольше автоматизации, то так:
для всех слоев в легенде по типу геометрии

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

# -*- coding: utf-8 -*-
from qgis.PyQt.QtCore import *

# стили
stylePoint = u'a:\\test\\point.qml'
styleLine = u'a:\\test\\line.qml'
stylePoly = u'a:\\test\\poly.qml'
# для всех слоев в легенде по типу геометрии
for layer in iface.legendInterface().layers():
    if layer.wkbType()==QGis.WKBPoint or layer.wkbType()==QGis.WKBMultiPoint:
        layer.loadNamedStyle(stylePoint)

    if layer.wkbType()==QGis.WKBLineString or layer.wkbType()==QGis.WKBMultiLineString:
        layer.loadNamedStyle(styleLine)

    if layer.wkbType()==QGis.WKBPolygon or layer.wkbType()==QGis.WKBMultiPolygon:
        layer.loadNamedStyle(stylePoly)