From 2c33a39be67769208e151bd099588493b0449cc8 Mon Sep 17 00:00:00 2001 From: Maja Dall Date: Wed, 3 Apr 2024 13:13:41 +0200 Subject: [PATCH 1/7] =?UTF-8?q?Rettet=20s=C3=A5=20der=20st=C3=A5r=20ADDRES?= =?UTF-8?q?STYPE=20over=20det=20hele=20og=20ikke=20ADDRESS=5FTYPE=20nogen?= =?UTF-8?q?=20steder?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AddressToolsDK/addresstoolsdk_geocode_algorithm.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/AddressToolsDK/addresstoolsdk_geocode_algorithm.py b/AddressToolsDK/addresstoolsdk_geocode_algorithm.py index ba8e054..541d39c 100644 --- a/AddressToolsDK/addresstoolsdk_geocode_algorithm.py +++ b/AddressToolsDK/addresstoolsdk_geocode_algorithm.py @@ -125,7 +125,7 @@ class DkGeokoderAlgorithm(QgsProcessingAlgorithm): OUTPUT = 'OUTPUT' INPUT = 'INPUT' - ADDRESS_TYPE = 'ADDRESS_TYPE' + ADDRESSTYPE = 'ADDRESSTYPE' EXPRESSION = 'EXPRESSION' def initAlgorithm(self, config): @@ -145,7 +145,7 @@ def initAlgorithm(self, config): self.addParameter( QgsProcessingParameterEnum( - self.ADDRESS_TYPE, + self.ADDRESSTYPE, self.tr('Input adressetype'), options=[x[1] for x in self.DAWA_ADDRESS_TYPES], defaultValue=0 From d2cb51952291d7c388b2343ef0613659264ec817 Mon Sep 17 00:00:00 2001 From: Maja Dall Date: Wed, 1 May 2024 11:35:33 +0200 Subject: [PATCH 2/7] =?UTF-8?q?=C3=86ndret=20s=C3=A5=20den=20retunerer=20t?= =?UTF-8?q?omme=20felter=20p=C3=A5=20adresser=20der=20ikke=20kan=20geocode?= =?UTF-8?q?s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AddressToolsDK/addresstoolsdk.py | 2 +- .../addresstoolsdk_geocode_algorithm.py | 30 ++++++++++++++----- AddressToolsDK/addresstoolsdk_provider.py | 1 + AddressToolsDK/metadata.txt | 2 +- 4 files changed, 25 insertions(+), 10 deletions(-) diff --git a/AddressToolsDK/addresstoolsdk.py b/AddressToolsDK/addresstoolsdk.py index fa9f059..75c68b3 100644 --- a/AddressToolsDK/addresstoolsdk.py +++ b/AddressToolsDK/addresstoolsdk.py @@ -73,4 +73,4 @@ def initGui(self): self.initProcessing() def unload(self): - QgsApplication.processingRegistry().removeProvider(self.provider) + QgsApplication.processingRegistry().removeProvider(self.provider) \ No newline at end of file diff --git a/AddressToolsDK/addresstoolsdk_geocode_algorithm.py b/AddressToolsDK/addresstoolsdk_geocode_algorithm.py index 541d39c..996e810 100644 --- a/AddressToolsDK/addresstoolsdk_geocode_algorithm.py +++ b/AddressToolsDK/addresstoolsdk_geocode_algorithm.py @@ -1,3 +1,4 @@ + # -*- coding: utf-8 -*- """ @@ -52,6 +53,9 @@ QgsProcessingParameterFeatureSink, QgsWkbTypes) + +#from processing.core.ProcessingLog import ProcessingLog + class DawaGeocoder(): DAWA_ENDPOINT = "https://dawa.aws.dk" DAWA_ADDRESS_TYPES = ["adresser", "adgangsadresser"] @@ -128,6 +132,9 @@ class DkGeokoderAlgorithm(QgsProcessingAlgorithm): ADDRESSTYPE = 'ADDRESSTYPE' EXPRESSION = 'EXPRESSION' + def flags(self): + return QgsProcessingAlgorithm.FlagNoThreading + def initAlgorithm(self, config): """ Here we define the inputs and output of the algorithm, along @@ -218,15 +225,22 @@ def processAlgorithm(self, parameters, context, feedback): # Get address string exp_context.setFeature(feature) address = expression.evaluate(exp_context) - + + try: # Geocode it - geocoded = geocoder.geocode(address) - if geocoded: - out_feature.setGeometry(QgsGeometry(geocoded["accesspoint"])) - out_feature[id_field_name] = geocoded["id"] - out_feature[cat_field_name] = geocoded["category"] - out_feature[denote_field_name] = geocoded["denotation"] - + geocoded = geocoder.geocode(address) + if geocoded: + out_feature.setGeometry(QgsGeometry(geocoded["accesspoint"])) + out_feature[id_field_name] = geocoded["id"] + out_feature[cat_field_name] = geocoded["category"] + out_feature[denote_field_name] = geocoded["denotation"] + except: + #out_feature.setGeometry(QgsGeometry(geocoded["accesspoint"])) + out_feature[id_field_name] = " " + out_feature[cat_field_name] = " " + out_feature[denote_field_name] = " " + message = "Fejl i en adresse" + #iface.messageBar().pushMessage(message, level=Qgis.Warning, duration=10) # Add a feature in the sink sink.addFeature(out_feature, QgsFeatureSink.FastInsert) diff --git a/AddressToolsDK/addresstoolsdk_provider.py b/AddressToolsDK/addresstoolsdk_provider.py index 03e095a..19f657a 100644 --- a/AddressToolsDK/addresstoolsdk_provider.py +++ b/AddressToolsDK/addresstoolsdk_provider.py @@ -1,3 +1,4 @@ + # -*- coding: utf-8 -*- """ diff --git a/AddressToolsDK/metadata.txt b/AddressToolsDK/metadata.txt index a4f792d..22b4c97 100644 --- a/AddressToolsDK/metadata.txt +++ b/AddressToolsDK/metadata.txt @@ -8,7 +8,7 @@ name=Danish Address Tools qgisMinimumVersion=3.6 description=This plugin provides tools to work with Danish addresses within the QGIS processing framework. description[da]=Dette plugin tilbyder værktøjer til at arbejde med danske adresser i QGIS processing. -version=0.1 +version=0.2 beta 1 author=Septima email=asger@septima.dk From 92080a0f6084d32b58e298aa4b9f7bf06370de61 Mon Sep 17 00:00:00 2001 From: Maja Dall Date: Wed, 1 May 2024 12:05:51 +0200 Subject: [PATCH 3/7] Skrevet error besked --- AddressToolsDK/addresstoolsdk_geocode_algorithm.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/AddressToolsDK/addresstoolsdk_geocode_algorithm.py b/AddressToolsDK/addresstoolsdk_geocode_algorithm.py index 996e810..57e7b82 100644 --- a/AddressToolsDK/addresstoolsdk_geocode_algorithm.py +++ b/AddressToolsDK/addresstoolsdk_geocode_algorithm.py @@ -51,11 +51,14 @@ QgsProcessingParameterEnum, QgsProcessingParameterExpression, QgsProcessingParameterFeatureSink, - QgsWkbTypes) - + QgsWkbTypes, + QgsProcessingFeedback) #from processing.core.ProcessingLog import ProcessingLog + + + class DawaGeocoder(): DAWA_ENDPOINT = "https://dawa.aws.dk" DAWA_ADDRESS_TYPES = ["adresser", "adgangsadresser"] @@ -239,8 +242,9 @@ def processAlgorithm(self, parameters, context, feedback): out_feature[id_field_name] = " " out_feature[cat_field_name] = " " out_feature[denote_field_name] = " " - message = "Fejl i en adresse" + message = "Fejl i en adresse "+ address +"\n" #iface.messageBar().pushMessage(message, level=Qgis.Warning, duration=10) + feedback.pushInfo(message) # Add a feature in the sink sink.addFeature(out_feature, QgsFeatureSink.FastInsert) From 904b41b5bb6705896ecc6d5aaf57cad66428bd96 Mon Sep 17 00:00:00 2001 From: Mie Winstrup Date: Mon, 6 Jan 2025 13:49:57 +0100 Subject: [PATCH 4/7] Changes to decription in the help dialogue --- AddressToolsDK/addresstoolsdk_geocode_algorithm.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/AddressToolsDK/addresstoolsdk_geocode_algorithm.py b/AddressToolsDK/addresstoolsdk_geocode_algorithm.py index 57e7b82..0d0945b 100644 --- a/AddressToolsDK/addresstoolsdk_geocode_algorithm.py +++ b/AddressToolsDK/addresstoolsdk_geocode_algorithm.py @@ -299,7 +299,7 @@ def shortDescription(self): def helpString(self): return self.tr("""

- Denne algoritme er udviklet af Septima og anvender DAWAs Datavask-API. + Dette plugin er udviklet af Septima og anvender DAWAs Datavask-API.

Med pluginet kan man oversætte en ustruktureret adressetekst til en officiel adresse fra Danmarks Adresseregister (DAR). @@ -320,14 +320,14 @@ def helpString(self):

Datavask svar angiver hvor sikkert svaret er, i form af en kategori A, B eller C. A indikerer eksakt match. - B indikerer et ikke helt eksakt match, men at resultatet stadig er sikkert. C betyder, at resultatet usikkert. + B indikerer et ikke helt eksakt match, men at resultatet stadig er sikkert. C betyder, at resultatet usikkert. Det er vigtigt at gennemgå adresserne, der har fået et 'C', da mange af dem vil være forkerte!

Datavask anvender også DAR’s historiske adresser som datagrundlag, således at adresser som er ændret også kan vaskes. Endvidere håndterer datavasken også adresser hvor der er anvendt såkaldte ’stormodtagerpostnumre’ fra PostNord.

- Læs mere på pluginets GitHub-side, hvor du også kan se et eksempel på anvendelse. + Læs mere på pluginets GitHub-side.

""") From bf481dc106c85fe5b569f79b11128d49dbe501e1 Mon Sep 17 00:00:00 2001 From: Mie Winstrup Date: Mon, 6 Jan 2025 13:50:42 +0100 Subject: [PATCH 5/7] Update description in metadata --- AddressToolsDK/metadata.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/AddressToolsDK/metadata.txt b/AddressToolsDK/metadata.txt index 22b4c97..4f9cd15 100644 --- a/AddressToolsDK/metadata.txt +++ b/AddressToolsDK/metadata.txt @@ -7,13 +7,13 @@ name=Danish Address Tools # QgsNetworkAccessManager.blockingGet was introduced in 3.6 qgisMinimumVersion=3.6 description=This plugin provides tools to work with Danish addresses within the QGIS processing framework. -description[da]=Dette plugin tilbyder værktøjer til at arbejde med danske adresser i QGIS processing. version=0.2 beta 1 +description[da]=Dette plugin indeholder værktøjer til at arbejde med danske adresser i QGIS' processingsværktøjskasse. author=Septima email=asger@septima.dk about=This plugin provides tools to work with Danish addresses within the QGIS processing framework. After installation of the plugin, you have to activate "Toolbox" in the "Processing"-menu. Then you can access the tools in the toolbox under the folder "Danske adresseværktøjer". For now there is one tool: Geocoding using DAWA. Read more on how to use the plugin in the help section of the tool's dialogue or at its Github repository. The plugin is developed and maintained by Septima. -about[da]=Dette plugin tilbyder værktøjer til at arbejde med danske adresser i QGIS processing. For at bruge dette værktøj, skal du efter installation af pluginet først aktivere "Værktøjskassen" under "Processeringsmenuen". Derefter findes værktøjerne i værktøjskassen under "Danske adresseværktøjer". Pt er der eet værktøj: Geokod adresser med DAWA. Læs mere om hvordan pluginet bruges i hjælpesektion i værktøjets dialogboks, eller på dets Github repository. Pluginet er udviklet og vedligeholdes af Septima. +about[da]=Dette plugin indeholder værktøjer til at arbejde med danske adresser i QGIS' processingsværktøjskasse. Dette plugin lægger sig i QGIS' processeringsværktøj. For at bruge dette plugin, skal du efter installation af pluginet aktivere "Værktøjskassen" under "Processeringsmenuen" (Hvis processeringsmenuen ikke vises, så kan det være nødvendigt i plugin-dialogen at aktivere 'Processing'). Derefter findes adresseværktøjerne i værktøjskassen under "Danske adresseværktøjer". Pt er der eet værktøj: Geokod adresser med DAWA. Læs mere om hvordan pluginet bruges i værktøjets dialog, eller på dets Github repository. Pluginet er udviklet og vedligeholdes af Septima. tracker=https://github.com/Septima/qgis-addresstoolsdk/issues repository=https://github.com/Septima/qgis-addresstoolsdk @@ -44,7 +44,7 @@ deprecated=False # plugin_dependencies= Category of the plugin: Raster, Vector, Database or Web -# category= +# category=Processing # If the plugin can run on QGIS Server. server=False From 4b2aa0940ee6bef4aa6167195ab50bccd1ee9e3f Mon Sep 17 00:00:00 2001 From: Mie Winstrup Date: Mon, 6 Jan 2025 13:51:18 +0100 Subject: [PATCH 6/7] Update to version 0.3 --- AddressToolsDK/metadata.txt | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/AddressToolsDK/metadata.txt b/AddressToolsDK/metadata.txt index 4f9cd15..dd835b5 100644 --- a/AddressToolsDK/metadata.txt +++ b/AddressToolsDK/metadata.txt @@ -7,8 +7,8 @@ name=Danish Address Tools # QgsNetworkAccessManager.blockingGet was introduced in 3.6 qgisMinimumVersion=3.6 description=This plugin provides tools to work with Danish addresses within the QGIS processing framework. -version=0.2 beta 1 description[da]=Dette plugin indeholder værktøjer til at arbejde med danske adresser i QGIS' processingsværktøjskasse. +version=0.3 author=Septima email=asger@septima.dk @@ -23,8 +23,9 @@ repository=https://github.com/Septima/qgis-addresstoolsdk hasProcessingProvider=yes # Uncomment the following line and add your changelog: -changelog=Version 0.1: Initial version with one algorithm "Geokod danske adresser med DAWA" - +changelog=2025-01-06, vs. 0.3: Improved description of the plugin 2024-05-01. Work funded by Septima. + 2024-05-01, vs. 0.2 beta: Improved description of the plugin 2024-05-01, vs. 0.2 beta: If an address cannot be geocoded, empty fields are returned. Improved error messages that informs the user which adresses that cause errors, and spelling mistakes. Work funded by Septima. + 2019-09-12, vs. 0.1: Initial version with one algorithm "Geokod danske adresser med DAWA" # Tags are comma separated with spaces allowed tags=geocoding,geokodning,geokod,geokode,geokoder,Danmark,danske,adresse,adresser,adressevask,dawa From fe86eb706c73a2272ecefcfa530098377e1891f1 Mon Sep 17 00:00:00 2001 From: Maja Dall Date: Mon, 13 Jan 2025 09:42:04 +0100 Subject: [PATCH 7/7] Oprydning --- AddressToolsDK/addresstoolsdk.py | 3 ++- .../addresstoolsdk_geocode_algorithm.py | 18 ++++-------------- AddressToolsDK/addresstoolsdk_provider.py | 1 - 3 files changed, 6 insertions(+), 16 deletions(-) diff --git a/AddressToolsDK/addresstoolsdk.py b/AddressToolsDK/addresstoolsdk.py index 75c68b3..9d0d40b 100644 --- a/AddressToolsDK/addresstoolsdk.py +++ b/AddressToolsDK/addresstoolsdk.py @@ -73,4 +73,5 @@ def initGui(self): self.initProcessing() def unload(self): - QgsApplication.processingRegistry().removeProvider(self.provider) \ No newline at end of file + QgsApplication.processingRegistry().removeProvider(self.provider) + \ No newline at end of file diff --git a/AddressToolsDK/addresstoolsdk_geocode_algorithm.py b/AddressToolsDK/addresstoolsdk_geocode_algorithm.py index 0d0945b..5654afd 100644 --- a/AddressToolsDK/addresstoolsdk_geocode_algorithm.py +++ b/AddressToolsDK/addresstoolsdk_geocode_algorithm.py @@ -1,4 +1,3 @@ - # -*- coding: utf-8 -*- """ @@ -51,13 +50,7 @@ QgsProcessingParameterEnum, QgsProcessingParameterExpression, QgsProcessingParameterFeatureSink, - QgsWkbTypes, - QgsProcessingFeedback) - -#from processing.core.ProcessingLog import ProcessingLog - - - + QgsWkbTypes) class DawaGeocoder(): DAWA_ENDPOINT = "https://dawa.aws.dk" @@ -135,8 +128,6 @@ class DkGeokoderAlgorithm(QgsProcessingAlgorithm): ADDRESSTYPE = 'ADDRESSTYPE' EXPRESSION = 'EXPRESSION' - def flags(self): - return QgsProcessingAlgorithm.FlagNoThreading def initAlgorithm(self, config): """ @@ -238,12 +229,10 @@ def processAlgorithm(self, parameters, context, feedback): out_feature[cat_field_name] = geocoded["category"] out_feature[denote_field_name] = geocoded["denotation"] except: - #out_feature.setGeometry(QgsGeometry(geocoded["accesspoint"])) - out_feature[id_field_name] = " " + out_feature[id_field_name] = "null" out_feature[cat_field_name] = " " - out_feature[denote_field_name] = " " + out_feature[denote_field_name] = "null" message = "Fejl i en adresse "+ address +"\n" - #iface.messageBar().pushMessage(message, level=Qgis.Warning, duration=10) feedback.pushInfo(message) # Add a feature in the sink sink.addFeature(out_feature, QgsFeatureSink.FastInsert) @@ -300,6 +289,7 @@ def helpString(self): return self.tr("""

Dette plugin er udviklet af Septima og anvender DAWAs Datavask-API. + Bemærk, https://dawa.aws.dk/">DAWAs Datavask-API ikke længere bliver opdateret.

Med pluginet kan man oversætte en ustruktureret adressetekst til en officiel adresse fra Danmarks Adresseregister (DAR). diff --git a/AddressToolsDK/addresstoolsdk_provider.py b/AddressToolsDK/addresstoolsdk_provider.py index 19f657a..03e095a 100644 --- a/AddressToolsDK/addresstoolsdk_provider.py +++ b/AddressToolsDK/addresstoolsdk_provider.py @@ -1,4 +1,3 @@ - # -*- coding: utf-8 -*- """