AW: [Mapbender-users] Leere Fenster bei FeatureInfoRequest mit MapServer

Schönhammer, Herbert Schoenhammer.Herbert at Regensburg.de
Fri May 5 04:27:34 EDT 2006


Danke für den wertvollen Tipp:

Ich hatte das Problem bisher mit FeatureInfoTunnel versucht zu lösen. Nachteile meiner Vorgehensweise:

1.) Notwendigkeit des Tunnelns an und für sich.
2.) Keine Möglichkeit, eine benutzerfreundliche Meldung auszugeben, zu welchen Layern keine Objektinformationen gefunden wurden (Hier kann man nur die "echten" Layernamen aus der Map-Datei extrahieren. Das ist zwar sicher ein Tipp für den Anwender aber nicht schön.)

Anmerkung: Die von mir in der mailing-liste nachgefragte Lösung zum Unterdrücken leerer Fenster wird bei mir im Hause so nicht gewünscht. Der Anwender soll eine "schöne" Meldung über nicht gefundene Objekte erhalten.

Ich habe gerade ein bißchen mit Ihren Anregungen gespielt.
Vorteil Ihres Vorgehens: "Normaler" FeatureInfo tut es auch.

Auch bei Ihrem Vorgehen besteht das Problem, dem Anwender eine hilfreiche Information über nicht gefundene Objektinformationen zu geben. Problem: Liefert der FeaureInfo-Request kein Ergebnis, werden die im LAYER-Objekt definierten Header- und Footer-Templates vom Mapserver nicht ausgegeben. Meines Erachtens würde es genügen, wenn nur das "eigentliche" "Template"-Template weggelassen würde. 

Man kann also zur Ausgabe einer Benutzerinfo nur mit den Header- und Footer-Templates des WEB-Objektes in der Map-Datei arbeiten. Sind nun mehrere abfragbare Layer gewählt und werden nicht zu allen Layern Ergebnisse zurückgeliefert, sollte nun dem Nutzer genau (und eben in "schöner" Form) gesagt werden, zu welchem Thema kein Info gefunden wurde.

Ich habe deshalb Ihren Vorschlag noch etwas erweitert:

1.) Im Header-Template der Mapdatei (also im WEB teil) ein Array mit Layerinformationen und einen Zähler zu jedem Layer anlegen:

<script type="text/javascript">
<!--
  var layer1 = new Array ("Öffentliche Toiletten", 0);
  var layer2 = new Array ("Weiteres Thema", 0);
  var layer3 = new Array ("Nächstes Thema", 0);
  ....
  var layerArray = new Array(layer1);

// -->
</script>

2.) Dann im Template des Layers den Zähler für den entsprechenden Layer inkrementieren mit

<script type="text/javascript">
<!--

  //Inkrementieren Zaehler fuer Layer oefftl_toiletten
  layer1[1]++;

// -->
</script>

3.)So kann zum Schluss im Footer-Template der Mapdatei die Anzahl 
der gefunden
Objekte abgefragt werden. 

Eine Ausgabe könnte dann so aussehen:

<script type="text/javascript">
<!--
  for (var i = 0; i < layerArray.length; i++ ){
    if (layerArray[i][1] == 0) {
        document.writeln('<TABLE BORDER="0">');
        document.writeln("<TR><TD>Es konnten keine Objektinformationen zum ausgewählten Thema <b>" + layerArray[i][0] + "</b> gefunden werden.</TR></TD>");
        document.writeln;
        document.writeln("<TR><TD><small>Tipp: Bitte klicken Sie auf das in der Karte gezeigte <b>Symbol</b></small>.</TR></TD>");
        document.writeln ("</TABLE>");
    }
  }

// -->


Mit freundlichen Grüßen
Schönhammer Herbert




>-----Ursprüngliche Nachricht-----
>Von: chriZ [mailto:chr.zenker at web.de] 
>Gesendet: Donnerstag, 4. Mai 2006 19:31
>An: users at mapbender.osgeo.org
>Betreff: Re: [Mapbender-users] Leere Fenster bei 
>FeatureInfoRequest mit MapServer
>
>
>
>Hallo Herr Schönhammer
>
>ich hab dieses Problem mit javascript in den Templates gelöst:
>
>Im Header-Template der Mapdatei (also im WEB teil) mit 
>
><script type="text/javascript">
>  var Zaehler = 0;
></script>
>
>eine Variable für den Zähler setzen.
>
>Dann im Template des Layers mit
>
><script type="text/javascript">
>  Zaehler++;
></script>
>
>den Zähler bei jedem gefundenen Eintrag um eins hochzählen.
>
>So kann zum Schluss im Footer-Template der Mapdatei die Anzahl 
>der gefunden
>Objekte abgefragt werden.
>
><script type="text/javascript">
>  if (Zaehler == 0) {
>    self.close;  //schließt das Infofenster
>    //hier kann aber auch mit   document.writeln("eine 
>Bemerkung stehen");
>  }
></script>
>
>Gruß
>
>ChriZ
>
>
>
>--
>View this message in context: 
>http://www.nabble.com/Leere-Fenster-bei-FeatureInfoRequest-mit-
MapServer-t1541236.html#a4233833
Sent from the mapbender-users forum at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe at mapbender.osgeo.org
For additional commands, e-mail: users-help at mapbender.osgeo.org





More information about the Mapbender_users mailing list