diff --git a/CHANGELOG.md b/CHANGELOG.md index 07219bfc..ae2be02b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -40,6 +40,10 @@ RELEASING: 14. Create new release in GitHub with tag version and release title of `vX.X.X` --> +## Unreleased +### Fixed +- Log the correct ApiError message in the isochrone processing algorithm with > 10 ranges ([#264](https://github.com/GIScience/orstools-qgis-plugin/issues/264)) + ## [1.8.4] - 2024-07-29 ### Fixed diff --git a/ORStools/common/isochrones_core.py b/ORStools/common/isochrones_core.py index 57efaea0..fe36d92d 100644 --- a/ORStools/common/isochrones_core.py +++ b/ORStools/common/isochrones_core.py @@ -29,21 +29,19 @@ from typing import Any, Generator -from qgis._core import QgsMapLayer from qgis.core import ( QgsPointXY, QgsFeature, QgsField, QgsFields, QgsGeometry, - QgsSymbol, - QgsSimpleFillSymbolLayer, - QgsRendererCategory, - QgsCategorizedSymbolRenderer, + QgsGraduatedSymbolRenderer, + QgsMapLayer, + QgsStyle, + QgsClassificationEqualInterval, ) from qgis.PyQt.QtCore import QVariant -from qgis.PyQt.QtGui import QColor # import processing @@ -176,49 +174,20 @@ def stylePoly(self, layer: QgsMapLayer) -> None: :type layer: QgsMapLayer """ - if self.dimension == "time": - legend_suffix = " min" - else: - legend_suffix = " m" - field = layer.fields().indexOf(self.field_dimension_name) unique_values = sorted(layer.uniqueValues(field)) - colors = { - 0: QColor("#2b83ba"), - 1: QColor("#64abb0"), - 2: QColor("#9dd3a7"), - 3: QColor("#c7e9ad"), - 4: QColor("#edf8b9"), - 5: QColor("#ffedaa"), - 6: QColor("#fec980"), - 7: QColor("#f99e59"), - 8: QColor("#e85b3a"), - 9: QColor("#d7191c"), - } - - categories = [] - - for cid, unique_value in enumerate(unique_values): - # initialize the default symbol for this geometry type - symbol = QgsSymbol.defaultSymbol(layer.geometryType()) - - # configure a symbol layer - symbol_layer = QgsSimpleFillSymbolLayer( - color=colors[cid], strokeColor=QColor("#000000") - ) - - # replace default symbol layer with the configured one - if symbol_layer is not None: - symbol.changeSymbolLayer(0, symbol_layer) - - # create renderer object - category = QgsRendererCategory(unique_value, symbol, str(unique_value) + legend_suffix) - # entry for the list of category items - categories.append(category) - - # create renderer object - renderer = QgsCategorizedSymbolRenderer(self.field_dimension_name, categories) + classification_method = QgsClassificationEqualInterval() + ramp_name = "Spectral" + default_style = QgsStyle().defaultStyle() + color_ramp = default_style.colorRamp(ramp_name) + color_ramp.invert() + num_classes = len(unique_values) + + renderer = QgsGraduatedSymbolRenderer(self.field_dimension_name) + renderer.setSourceColorRamp(color_ramp) + renderer.setClassificationMethod(classification_method) + renderer.updateClasses(layer, num_classes) # assign the created renderer to the layer if renderer is not None: