New Geometry Exporter Plugin for QGIS

I’ve just released the new experimental plugin Geometry Exporter for QGIS. The plugin displays the geometry of a selected feature as text. Thanks to GDAL, the following formats are currently supported: WKT, EWKT, GML2, GML3, GeoJSON. Also on-the-fly conversion (e. g. Envelope, Centroid, ConvexHull, Boundary) and transformation (changing Coordinate Reference System) are supported.

qgis-geometry-exporter-plugin

 

WFS 2.0 Client Plugin 0.9.6 released

I’m happy to announce the release of WFS 2.0 Client Plugin 0.9.6. The plugin can now easily be called from the QGIS python environment with a custom WFS onlineresource. Feel free to integrate it in your solution.

wfsclient-called-from-python-console

 

Example code

if not 'wfsclient' in qgis.utils.plugins:
    print('WFS 2.0 Client Plugin not installed!')
else:
    wfsclient = qgis.utils.plugins['wfsclient']
    wfsclient.runClient(url='http://geoserv.weichand.de:8080/geoserver/wfs')

 

Additionally, the following fixes and enhancements have been implemented:

  • Fixed: Wrong URL encoding of storedquery request parameter
  • Enhancement: Save custom FeatureLimit

Lesen und Schreiben von XML-Mapfiles mit Java

Seit Version 6.0 unterstützt der UMN MapServer neben den klassischen Mapfiles zusätzlich XML-Mapfiles. Durch das vorhandene XML-Schema können diese einfach validiert werden. Des Weiteren soll hierdurch die Erstellung von Drittsoftware (z. B. Mapfile-Editoren) erleichtert werden.

Für das einfache Lesen und Schreiben von XML-Mapfiles habe ich das Projekt Java Mapfile auf GitHub erstellt. Die Funktionsweise wird auf der Projektseite dokumentiert.

Im Folgenden noch ein Beispiel für eine XML-Mapfile und den korrespondierenden CGI-Wrapper.

Beispiel für XML-Mapfile

Hinweis: Die Reihenfolge der Elemente wird beim Export über Java Mapfile alphabetisch angeordnet.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Map xmlns="http://www.mapserver.org/mapserver" name="OGC:WMS" version="7.0.0">
    <extent>4264375.0 5216375.0 4670625.0 5622625.0</extent>
    <Layer name="gemeinden" type="POLYGON" status="ON">
        <Class name="Polygon">
            <color red="232" green="232" blue="232"/>
            <outlineColor red="32" green="32" blue="32"/>
        </Class>
        <data>/home/wei/linux-geodatenserver-beispiele/vektordaten/verwaltungsgrenzen/gmd_ex.shp</data>
        <Metadata>
            <item name="wms_title">Gemeinden</item>
            <item name="wms_abstract">Gemeinden in Bayern</item>
        </Metadata>
        <projection>init=epsg:31468</projection>
    </Layer>
    <OutputFormat name="png">
        <driver>AGG/PNG</driver>
        <extension>png</extension>
        <imageMode>RGB</imageMode>
        <mimeType>image/png</mimeType>
    </OutputFormat>
    <projection>init=epsg:31468</projection>
    <Web>
        <Metadata>
            <item name="wms_title">Java XML-Mapfile Demoserver</item>
            <item name="wms_onlineresource">http://geoserv.weichand.de/cgi-bin/test-xmlmapfile.cgi</item>
            <item name="wms_enable_request">*</item>
            <item name="wms_srs">EPSG:31468 EPSG:31467 EPSG:4326 EPSG:4258 EPSG:25832 EPSG:25833</item>
            <item name="wms_encoding">UTF-8</item>
        </Metadata>
    </Web>
</Map>

Beispiel für CGI-Wrapper

Bei jedem Aufruf wird die XML-Mapfile über XSLT in eine klassische Mapfile übersetzt. Daher muss neben der Umgebungsvariable MS_MAPFILE noch zusätzlich die Umgebungsvariable MS_XMLMAPFILE_XSLT gesetzt werden.

#!/bin/sh
MAPSERV="/usr/lib/cgi-bin/mapserv"
MS_XMLMAPFILE_XSLT="/path/to/mapfile.xsl" MS_MAPFILE="/path/to/javamapfile.xml" exec ${MAPSERV}

QGIS WFS 2.0 Client Plugin – Improvements

Since version 0.9.3 the WFS 2.0 Client has been able to load multiple feature types from one GML file. For instance this is the case if a complex application schema is used. Also nonspatial feature types will be loaded.

wfs-20-multiple-featuretypes

Another limitation has been the support of feature types using multiple geometry types. Now the WFS 2.0 Client will split them into separate layers (Point, Line, Polygon).

wfs-20-multiple-geometrytypes

In version 0.9.2 the support of complex application schema has been improved. You can use the OGR „Resolve elements (xlink:href)“ capabilities which integrate the properties of the referenced features into the origin feature. The internal data structure will be still „flat“. You can enable this feature in the new Config menu. „Resolve elements“ is only available if Resolvedepth > 0.

qgis-wfs20-config

For example GML references are used in the INSPIRE data specification on Addresses. The following images show the result of the OGR element resolving. You can try this feature with the WFS 2.0 of the deegree INSPIRE Demo Workspace.

http://demo.deegree.org/inspire-workspace/services/wfs

Adresse ohne aufgelöste Referenzen

Feature type Address without resolved references.

Adresse mit aufgelösten Referenzen

Feature type Address with resolved references.

Please feel free to report your feedback and share your thoughts.

Komplexe Feature-Modelle mit dem QGIS WFS 2.0 Client Plugin

Um die Unterstützung von komplexen Feature-Modellen (z. B. INSPIRE) zu verbessern wurde das QGIS WFS 2.0 Client Plugin in Version 0.9.2 an die vorhandenen Fähigkeiten des OGR GML-Treiber angepasst. Die Unterstützung kann im Config-Menü aktiviert werden. Für die neue Plugin-Version werden QGIS >=2.4 und OGR/GDAL >=1.11.0 benötigt.

qgis-wfs20-config Weiterlesen

Aktualisierung von ISO-19139-Metadaten mit XMLStarlet

Gelegentlich sollen die in einem Metadateninformationssystem (GeoMIS) erfassten ISO-19139-Metadaten automatisch aktualisiert werden. Dies kann beispielsweise der Fall sein, wenn sich der Name eines Datenanbieters („Organisationsname“) ändert.

Diese Aufgabe kann einfach und kosteneffizient mit dem Open Source Kommandozeilenwerkzeug XMLStarlet gelöst werden. XMLStarlet ermöglicht die Abfrage, Aktualisierung und Validierung von XML-Dokumenten.

Weiterlesen

Lesen und Schreiben von Pre-defined Atom-Feeds mit Java-ROME

In den Technical Guidance zu INSPIRE-Downloaddiensten wird die Umsetzungsvariante Pre-defined Atom auf Grundlage von Atom-Feeds vorgestellt. Atom-Feeds inklusive GeoRSS-Erweiterung können von einer Vielzahl von Softwarelösungen gelesen und geschrieben werden. Problematisch erweist sich jedoch die INSPIRE-Erweiterung (Namespace: inspire_dls) für die Angabe des Datensatzidentifikators.

<inspire_dls:spatial_dataset_identifier_code>DEBY_1d4ab890-27e7-3ebb-95ba-2d2ab8071871</inspire_dls:spatial_dataset_identifier_code>
<inspire_dls:spatial_dataset_identifier_namespace>http://www.geodaten.bayern.de</inspire_dls:spatial_dataset_identifier_namespace>

 

Auf GitHub steht nun ein INSPIRE-Downloaddienst-Modul für die beliebte Java-Bibliothek ROME bereit. ROME ermöglicht das Lesen und Schreiben von Nachrichtenfeeds im von INSPIRE vorgesehenen Atom 1.0-Format.

Weiterlesen

WFS 2.0 Client für QGIS 2.0

­Das WFS 2.0 Client Plugin steht mit der Version 0.9.0 nun auch unter QGIS 2.0 zur Verfügung. Der Funktionsumfang entspricht dem der 0.8.4 Version für QGIS <= 1.8.

Das Plugin kann über
„Erweiterungen“ >
„Erweiterungen verwalten und installieren…“ >
„Mehr holen“ installiert werden.

WFS 2.0 client for QGIS 2.0
The WFS 2.0 client plugin is now available under QGIS 2.0. The 0.9.0 version for QGIS 2.0 is equal to the 0.8.4 version for QGIS <= 1.8.

wfs20_client_qgis20

WFS – Achsenreihenfolge von Koordinatensystemen

Der WFS-Standard selbst definiert keine Koordinatensysteme. Die Koordinatensystemdefinitionen werden in geeigneten Registern (engl. Registry) geführt und innerhalb der WFS-Anfragen referenziert. Üblicherweise wird hierzu auf die EPSG-Registry Bezug genommen. In WFS 1.1 und WFS 2.0 wird das Koordinatensystem über einen vollständigen Uniform Resource Name (URN) referenziert.

Beispiele (nach Andrae et al 2011):

urn:ogc:def:crs:EPSG:8.0:31468 (EPSG-Registry mit Versionsangabe)
urn:ogc:def:crs:EPSG::31468 (EPSG-Registry ohne Versionsangabe)
urn:adv:crs:DE_DHDN_3GK4_BY120 (AdV-Registry)

 

Fehlerquelle Koordinatenachsenreihenfolge
Innerhalb von WFS-Anfragen/-Antworten wird auf die in der Registry spezifizierte Koordinatenachsenreihenfolge zurückgegriffen. Diese Definition weicht teilweise von der in der Praxis üblichen Achsenreihenfolge ab. Beispielweise ist für Gauß-Krüger Zone 4 (DHDN) die untypische Achsenreihenfolge Hochwert/Rechtswert (Northing/Easting) in der EPSG-Registry (EPSG:31468) vorgesehen.

Folgende Tabelle stellt die Achsenreihenfolge von in Deutschland vorkommenden Koordinatenreferenzsystemen dar.

Name des KoordinatensystemURN des KoordinatensystemAchsreihenfolge
WGS 84urn:ogc:def:crs:EPSG::4326Breite / Länge
ETRS 89urn:ogc:def:crs:EPSG::4258Breite / Länge
UTM 32 Nord (ETRS 89)urn:ogc:def:crs:EPSG::25832Rechtswert / Hochwert
Gauß-Krüger Zone 4 (DHDN)urn:ogc:def:crs:EPSG::31468Hochwert / Rechtswert
Gauß-Krüger Zone 4 (Pulkovo1942)urn:ogc:def:crs:EPSG::2398Hochwert / Rechtswert

Weiterlesen

INSPIRE WFS 2.0 DemoServer mit Beispielanfragen (GeoServer 2.2) [update]

DemoServer stehen bis auf Weiteres nicht zur Verfügung!

Unter http://geoserv.weichand.de:8080/geoserver/wfs steht ein INSPIRE WFS 2.0 DemoServer zur Verfügung. Der Server basiert auf GeoServer 2.2 und dient zur Erprobung der WFS 2.0 Implementierung [OGC WFS]. Zudem werden die WFS Versionen 1.0 und 1.1 unterstützt.

Weiterlesen