Страница 1 из 1
Пустые TAB файлы. Тип геометрии.
Добавлено: 15 окт 2018, 14:50
andrutornado
Подключаю пустые TAB файлы в QGIS. Нет возможности ввести геометрию. Можно ли через python задать тип геометрии который будет вводиться в слой, чтобы настроить стили? Файлы слоёв должны быть пустыми, т.к. это заготовка для ввода объектов подрядной организацией. И крайне желательно оставить TAB файлы, т.к. это наш родной формат. Мысль в том, чтобы подрядные организации забивали данные в QGIS, а мы без конвертации сразу бы читали их в MapInfo.
Re: Пустые TAB файлы. Тип геометрии.
Добавлено: 15 окт 2018, 15:37
andrutornado
Случайно задублировал тему. Удалите, пожалуйста, лишнюю.
Re: Пустые TAB файлы. Тип геометрии.
Добавлено: 22 окт 2018, 11:59
andrutornado
Если кому интересно, нашёл такое решение. Заготовка для проекта QGIS у меня создаётся программно на python. Алгоритм действий.
-добавляется слой из TAB файла;
-если в нём нет объектов, то добавляется объект типа, которого должен быть слой;
-удаляется добавленный объект;
-слой передобавляется (QGIS просекает, что в TAB файле есть удалённый объект определённого типа и правильно задаёт легенду)
Пока-что проверено на точечных слоях.
Поспешил с выводами. На полигонах не срабатывает.
Re: Пустые TAB файлы. Тип геометрии.
Добавлено: 25 окт 2018, 11:22
andrutornado
Всё оказалось гораздо проще. Тип открываемой геометрии можно задавать даже для полностью пустых TAB файлов принудительно при открытии без всяких плясок в бубном. Не знаю почему мне никто ещё не посоветовал.
фрагмент кода на python:
Код: Выделить всё
miToQUriGeomTypesDic={
'miFeatureTypeSymbol':'geometrytype=Point',
'miFeatureTypeLine':'geometrytype=LineString',
'miFeatureTypeRegion':'geometrytype=Polygon'
}
#допустим в слое TAB такие типы элементов
elTypes=[ 'miFeatureTypeSymbol','miFeatureTypeLine','miFeatureTypeRegion']
#тогда можно открыть один и тот-же TAB файл открыть в нескольких слоях с разным типом геометрии
for el in elTypes:
vlayer = QgsVectorLayer(layerPath+'|'+miToQUriGeomTypesDic[el],layerName, "ogr")
QgsMapLayerRegistry.instance().addMapLayer(vlayer)
Насколько я понимаю таким образом открытые слои не стоит делать редактируемыми одновременно.
Re: Пустые TAB файлы. Тип геометрии.
Добавлено: 25 окт 2018, 11:45
andrutornado
При открытии абсолютно пустого TAB файла через интерфейс можно также указывать необходимый тип через пришлёпку:

- задание нужного типа геометрии для TAB файла
- strict_type.png (29.67 КБ) 4319 просмотров