- edited description
kein gfi result für layer mit "infoFormat": "application/vnd.ogc.gml", "text/plain" oder "application/json"
Mit der MP v 2.6.1 erhalte ich kein gfi Ergebnis, wenn der Dienst mit "infoFormat": "application/vnd.ogc.gml" abgefragt wird (entspricht "infoFormat": "text/xml" auf mapserver). Die Dienste mit "infoFormat": "text/html" lassen sich normal abfragen. Hat sich da etwas geändert?
Das gfiFormat ist immer default. Verhalten lässt sich sowohl bei gfiWindow: "detached" als auch “attached” reproduzieren.
Ob "gfiAttributes": “showAll” oder bestimmte Felder ist, scheint keinen Unterschied zu machen.
Die abfrage wird dabei gesendet und erhält auch eine korrekte Antwort. Diese wird dann allerdings nicht dargestellt…
Beispielabfrage:
Liefert:
<?xml version="1.0" encoding="UTF-8"?>
<msGMLOutput
xmlns:gml="http://www.opengis.net/gml"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<addresses_layer>
<gml:name>Amtliches Adressverzeichnis</gml:name>
<addresses_feature>
<gml:boundedBy>
<gml:Box srsName="EPSG:25832">
<gml:coordinates>412600.660000,5315290.100000 412600.660000,5315290.100000</gml:coordinates>
</gml:Box>
</gml:boundedBy>
<id>82549</id>
<hnr_v>3</hnr_v>
<hnrz_v></hnrz_v>
<str_strs_a>04480</str_strs_a>
<hnr_a>3</hnr_a>
<hnrz_a></hnrz_a>
<str_bezl>Lörracher Straße</str_bezl>
<str_bezk>LOERRACHERSTR</str_bezk>
<x_coord>412600.66</x_coord>
<y_coord>5315290.1</y_coord>
<search_field>Lörracher Straße 3</search_field>
</addresses_feature>
</addresses_layer>
</msGMLOutput>
EDIT:
Das selbe verhalten lässt sich für Abfragen mit “text/plain” beobachten.
Hier ein Beispiellayer:
{
"id": "address_wms",
"name": "Adresspunkte",
"url": "https://geoportal.freiburg.de/wms/gdm_address/gdm_address",
"typ": "WMS",
"layers": "addresses",
"format": "image/png",
"version": "1.3.0",
"singleTile": true,
"transparent": true,
"transparency": 0,
"tilesize": "512",
"gutter": "5",
"minScale": "1",
"maxScale": "250000",
"infoFormat": "application/vnd.ogc.gml",
"gfiAttributes": {
"str_bezl": "Straße",
"hnr_a": "Hausnummer",
"hnrz_a": "Hausnummernzusatz"
},
"gfiTheme" : "default",
"layerAttribution": "nicht vorhanden",
"legendURL": "https://geoportal.freiburg.de/wms/gdm_address/gdm_address?version=1.3.0&service=WMS&request=GetLegendGraphic&sld_version=1.1.0&layer=addresses&format=image/png&STYLE=default&",
"datasets": [
{
"md_id": "4a1dda6c-a1ff-43f9-a2b7-9ed97241e512"
}
]
}
EDIT2:
Auch WFS und geojson lässt sich problemlos abfragen. Öffentliches Beispiel.
{
"id": "frelo_status",
"name": "Frelo: Aktuelle Verfügbarkeit (Nextbike)",
"url": "https://geoportal.freiburg.de/files/frelo/frelo_verf_geo.json",
"typ": "GeoJSON",
"layerAttribution": "Daten des <a href='https://www.frelo-freiburg.de' target='_new'>Fahrradleihs Frelo (https://www.frelo-freiburg.de)</a>",
"gfiAttributes": {
"name": "Station / Einzelrad",
"station_nr": "Stationsnummer",
"address": "Ort",
"freie_raeder": "Freie Räder"
},
"cache": false,
"legendURL": ""
}
EDIT3: “application/json” scheint (zumindest wenn ein geojson returned wird) auch nicht zu funktionieren.
EDIT4:
in export function requestGfi (mimeType, url) {
in wmsGetFeatureInfo.js 11ff landet der mimeType “text/html”. Das result wird somit nicht geparsed.
Comments (15)
-
reporter -
reporter - edited description
-
reporter - changed title to kein gfi result für layer mit "infoFormat": "application/vnd.ogc.gml" oder "text/plain"
updated title to be more specific
-
reporter - edited description
added section Edit2
-
reporter - edited description
-
reporter - edited description
added detail gfiWindow: "detached"/”attached”
-
Wir werden das prüfen.
-
-
assigned issue to
-
assigned issue to
-
reporter - changed title to kein gfi result für layer mit "infoFormat": "application/vnd.ogc.gml", "text/plain" oder "application/json"
- edited description
-
reporter - edited description
-
reporter Fix für “application/vnd.ogr.gml”:
statt nur
t.firstChild.tagName.includes("FeatureCollection")
muss
t.firstChild.tagName.includes("FeatureCollection") || t.firstChild.tagName.includes("msGMLOutput")
geprüft werden, da das Tag in der gml anders heißt. Schon funktionierts.
Genaue Stelle im repo-code folgt…
Gruß
Dominik
EDIT: masterportal/src/api/wmsGetFeatureInfo.js : 93
state:
if (doc.firstChild.tagName.includes("FeatureCollection")) {
Patch:
if (doc.firstChild.tagName.includes("FeatureCollection") || doc.firstChild.tagName.includes("msGMLOutput")) {
-
Der Parameter “"infoFormat"“ ist in der Dokumentation der services.json unter wms nicht mehr zu finden:
Ich frage mich, gibt es den jetzt nicht mehr???
-
Die Beschreibung zum Attribute “infoFormat” ist zurzeit hier zu finden https://bitbucket.org/geowerkstatt-hamburg/masterportal/src/stable/doc/config.json.md#markdown-header-themenconfiglayerwms. Ich werde diese aber in der nächsten Version in die Dokumentation der services.json verschieben.
Das infoFormat “Text/plain” kann von Openlayers nicht verarbeitet werden. Ich denke auch es ist nicht sinnvoll dies zu implementieren, da eine xml ja angefragt werden kann.
-
Der oben beschriebene Bug zu "infoFormat": "application/vnd.ogc.gml" wird in der nächsten Version 2.6.2 gefixt sein.
-
reporter - changed status to resolved
fix in nächster Version
Danke! Ja, “text/plain” braucht man heute vermutlich nicht mehr unbedingt. Könnte man aber evtl abfangen und eine Warning werfen?
- Log in to comment