Convert features to shape layers
This commit is contained in:
parent
d70130b570
commit
4b85e48deb
@ -8,7 +8,7 @@ Project Developer: Alireza Adli alireza.adli@concordia.ca
|
|||||||
from qgis.core import QgsApplication, QgsField, QgsProject, \
|
from qgis.core import QgsApplication, QgsField, QgsProject, \
|
||||||
QgsProcessingFeedback, QgsVectorLayer, QgsVectorDataProvider, \
|
QgsProcessingFeedback, QgsVectorLayer, QgsVectorDataProvider, \
|
||||||
QgsExpressionContext, QgsExpressionContextUtils, edit, QgsFeatureRequest, \
|
QgsExpressionContext, QgsExpressionContextUtils, edit, QgsFeatureRequest, \
|
||||||
QgsExpression, QgsVectorFileWriter
|
QgsExpression, QgsVectorFileWriter, QgsCoordinateReferenceSystem
|
||||||
from qgis.PyQt.QtCore import QVariant
|
from qgis.PyQt.QtCore import QVariant
|
||||||
from qgis.analysis import QgsNativeAlgorithms
|
from qgis.analysis import QgsNativeAlgorithms
|
||||||
from basic_functions import *
|
from basic_functions import *
|
||||||
@ -69,8 +69,27 @@ class ScrubLayer:
|
|||||||
QgsProject.instance().addMapLayer(the_layer)
|
QgsProject.instance().addMapLayer(the_layer)
|
||||||
return the_layer
|
return the_layer
|
||||||
|
|
||||||
def features_to_layers(self):
|
def features_to_layers(self, layers_dir, crs):
|
||||||
pass
|
create_folders(layers_dir, self.data_count)
|
||||||
|
target_crs = QgsCoordinateReferenceSystem(crs)
|
||||||
|
for feature in self.layer.getFeatures():
|
||||||
|
new_layer = QgsVectorLayer(f'Polygon?crs={crs}', "feature_layer", "memory")
|
||||||
|
new_layer.setCrs(target_crs)
|
||||||
|
|
||||||
|
new_provider = new_layer.dataProvider()
|
||||||
|
new_provider.addFeatures([feature])
|
||||||
|
|
||||||
|
feature_id = feature.id()
|
||||||
|
output_path = f'{layers_dir}layer_{feature_id}/layer_{feature_id}.shp'
|
||||||
|
|
||||||
|
QgsVectorFileWriter.writeAsVectorFormat(
|
||||||
|
new_layer,
|
||||||
|
output_path,
|
||||||
|
'utf-8',
|
||||||
|
new_layer.crs(),
|
||||||
|
'ESRI Shapefile'
|
||||||
|
)
|
||||||
|
print('Shapefiles created for each feature.')
|
||||||
|
|
||||||
def fix_geometries(self, fixed_layer):
|
def fix_geometries(self, fixed_layer):
|
||||||
QgsApplication.processingRegistry().addProvider(QgsNativeAlgorithms())
|
QgsApplication.processingRegistry().addProvider(QgsNativeAlgorithms())
|
||||||
|
Loading…
Reference in New Issue
Block a user