Більше

Завантаження файлу DXF як векторного шару за допомогою PyQGIS?


Чи може хтось допомогти мені із завантаженням файлу dxf як векторного шару за допомогою PyQGIS?

ЄQgsDataSourceURIваріант? Я спробував із цим кодом, але це не спрацювало.

fitxer = "/ tmp / prova.dxf" uri = QgsDataSourceURI () uri.setDatabase (fitxer) uri.setDataSource (", 'entity', 'OGR_GEOMETRY'," OGR_GEOMETRY = 'POINT' ", 'fid' )L = QgsVe (uri.uri (), 'prova', 'ogr') print 'isValid:', layer.isValid ()

Рішення мого запитання:

fitxer = "/ tmp / prova.dxf | ім'я шару = сутності | geometrytype = Point" шар = QgsVectorLayer (fitxer, 'prova', 'ogr') QgsMapLayerRegistry.instance (). addMapLayer (шар)

Цей інший зразок завантажує всі типи геометрії:

# Завантажте файл dfx, щоб отримати підшари. vlayer = QgsVectorLayer (dfx_file, 'layer_test', 'ogr') subLayers = vlayer.dataProvider (). subLayers () # Для кожного підшару, іншого типу геометрії, завантажте шар на карту. для підрівню в підшарах: # Витягніть тип геометрії geom_type = subLayer.split (':') [- 1] # Встановіть шлях uri = "% s | ім'я шару = сутності | geometrytype =% s"% (dfx_file, geom_type,) #Name для підрівню dfx_file_name = os.path.splitext (os.path.basename (dfx_file)) [0] имя_слоя = "% s -% s"% (dfx_file_name, geom_type,) # Створити шар sub_vlayer = QgsVectorLayer (uri, layer_name, 'ogr') # Додайте шар на карту QgsMapLayerRegistry.instance (). addMapLayer (sub_vlayer)


Перегляньте відео: QGIS Sochi 05 dxf (Вересень 2021).