diff --git a/mojxml_plugin/algorithm.py b/mojxml_plugin/algorithm.py index 80952a0..4ef9a02 100644 --- a/mojxml_plugin/algorithm.py +++ b/mojxml_plugin/algorithm.py @@ -1,5 +1,6 @@ from pathlib import Path +from PyQt5.QtCore import QVariant from qgis.core import QgsProcessingException # pyright: ignore from qgis.core import ( QgsCoordinateReferenceSystem, @@ -22,6 +23,12 @@ from .mojxml.process.executor import ThreadPoolExecutor from .mojxml.schema import OGR_SCHEMA +_OGR_QT_TYPE_MAP = { + "str": QVariant.String, + "int": QVariant.Int, + "float": QVariant.Double, +} + class MOJXMLProcessingAlrogithm(QgsProcessingAlgorithm): INPUT = "INPUT" @@ -86,8 +93,8 @@ def processAlgorithm(self, parameters, context, feedback): ) fields = QgsFields() - for name, type in OGR_SCHEMA["properties"].items(): - fields.append(QgsField(name, typeName=type)) + for name, ogr_type in OGR_SCHEMA["properties"].items(): + fields.append(QgsField(name, type=_OGR_QT_TYPE_MAP[ogr_type])) include_chikugai = self.parameterAsBoolean(parameters, self.CHIKUGAI, context) include_arbitrary = self.parameterAsBoolean(parameters, self.ARBITRARY, context)