[Mapbender-users] RE: Selektive Datenabfrage

Michael Schulz mschulz at webgis.de
Mon Oct 20 05:27:52 EDT 2008


Hallo Karsten,

ich sehe da eigentlich nur den Weg über SLD. Dabei würdest Du mit
deinem query builder die entsprechenden Werte zusammenstellen, dann
ein php-Skript aufrufen, die dir diese Werte in ein SLD überführt,
dieses SLD temporär im Dateisystem ablegen, die URL dahin zurückgeben
lassen und diese URL dann im mapbender an dein WMS-Objekt über
gui_wms_sldurl anhängen (MB 2.5+). Wenn diese Variable gesetzt ist,
dann werden alle Maprequests, Legendenrequest, etc. mit dieser SLD-URL
durchgeführt.

Allerdings muss dann dein Mapserver mapfile anders aufgebaut sein.
Wenn ich es richtig verstehe, dann übergibst Du momentan eine Variable
im Request und die wird dann vom mapserver per variable substitution
in das DATA, FILTER oder EXPRESSION statement eingebaut. Das wäre dann
nicht mehr der Fall, sondern im SLD würde bereits die Abfrage stehen.
Wenn Du bisher im mapfile hattest:
 "SELECT * from geomtable where typ =%typ%" dann fällt der where teil
weg, denn im SLD steht
<Filter><PropertyIsEqual><PropertyName>typ</PropertyName><Literal>1</Literal></PropertyIsEqual></Filter>
(wobei dein php-skript den Wert 1 aus dem Parameter "typ" in das SLD
geschrieben hat. Es gibt auch ein Beispiel in /javascripts:
mod_add_SLD .php. Allerdings verwendet das noch nicht die
gui_wms_sldurl.

Falls Du diesen Weg versuchen möchtest kann ich da gerne weiterhelfen.

Viele Grüße, Michael


Am 20. Oktober 2008 09:05 schrieb karsten vennemann <karsten at terragis.net>:
> Hm noch ein letzter Versuch.
> Hat vielleicht doch noch jemand eine Idee wie ich hier weiterkommen kann...?
> Karsten
>
>
>
>> -----Original Message-----
>> From: karsten vennemann [mailto:karsten at terragis.net]
>> Sent: Thursday, September 25, 2008 23:52
>> To: 'mapbender_users at lists.osgeo.org'
>> Subject: Re: Selektive Datenabfrage
>>
>> Hat vielleicht doch noch jemand einen Tip wie ich per Ajax
>> request einen "vendorspecific" parameter an mapbender
>> uebergeben konnte. Leider stecke ich da da fest ohne zuedende Idee ...
>> Was ich bisher habe: Auf Server Seite kann ich in
>> mod_add_vendorspecific.php festlegen was fuer parameter ich
>> dem map request in mapbender weitergeben mochete . Soweit
>> funktioniert das gut - nur ist das "hardcoded"...
>> Ein Postgis layer kann ich per manuellem http get-map-request
>> aufrufen, mapserver ersetzt den "hardkodierten wert" und ich
>> erhalte ein wunderbares selektives daten layer...
>> Nun - wie baue ich das dann zusammen, dass aus meinem
>> Querbuilder die Parameter an den Mapbender-internen http
>> getmap request uebergeben werden...
>>
>> Nun koennet ich freilich via Ajax request und PHP vom query
>> builder eine Umgebungsvariable in die mapbender DB schreiben
>> und auf Serverseite dann in  mod_add_vendorspecific.php
>> wieder auslesen; aber das scheint etwas ineffektiv - oder
>> nicht? Obwohl das ja dann presistent sein wuerde...
>> Gibts da andere Ansatzmoeglichkeiten das zu loesen ?
>>
>> Karsten
>>
>> > -----Original Message-----
>> > From: karsten vennemann [mailto:karsten at terragis.net]
>> > Sent: Tuesday, September 23, 2008 14:35
>> > To: 'mapbender_users at lists.osgeo.org'
>> > Subject: Re: Selektive Datenabfrage
>> >
>> > Das wuerde ganz sicher eine ganz Interessante Loesung sein
>> Michael…(im
>> > bezug auf
>> >
>> http://www.nabble.com/Selektive-Datenabfrage-to2199155.html#a2199155 )
>> >
>> > Momentan habe ich einen "Query builder" auf ext.js
>> > (extjs.com) basis gebastelt, und wollte von dort selective
>> > Datenbankabragen auf die Postgresql Datenbank als auch als
>> selective
>> > Ausgabe auf der Karte einbauen.
>> > Die Ausgabe als Tabelle funktioniert nun schon und habe ich ein
>> > Postgis layer in einem mapserver wms layer erstellt und
>> versuche den
>> > vendorspecific parameter dazu zu verwenden eine dynamische
>> Anzeige der
>> > Abfrageergebnisse to realisieren.
>> > Soweit funktionert das mit dem vendorspzifischen parameter
>> gut - nur
>> > ist das bisher "hard coded' in meiner abgeaenderten
>> > "mod_add_vendorspecific.php" Datei (der parameter :qvalue"
>> > wird vom Mapserver beim getmap Aufruf ersetzt und ist Teil einer
>> > select abgrage auf ein Postgis layer)
>> >
>> > Kann mir jemand weiterhelfen wie ich z.B. per Ajax request waehrend
>> > runtime einen wert an diese function uebergeben koennte ?
>> Das heisst
>> > den qvalue (siehe unten) zu uebergeben ?
>> > Das ganze soll vom meinem "querbuilder modul" aus via
>> javascript/ajax
>> > aufgerufen werden ?
>> >
>> > Karsten
>> > …
>> > require_once(dirname(__FILE__)."/../php/mb_validateSession.php");
>> > ?>
>> > mb_registerVendorSpecific("mod_vs_init()");
>> > function mod_vs_init(){
>> >    var re = "qvalue=<?php echo "where ipt_pov > 22" ?>";
>> >    return re;
>> > }
>> > Karsten
>
> _______________________________________________
> Mapbender_users mailing list
> Mapbender_users at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/mapbender_users
>



-- 
-----------------------------------------------------------
Michael Schulz
mschulz at webgis.de

in medias res
Gesellschaft für Informationstechnologie mbH

In den Weihermatten 66
79108 Freiburg

Tel  +49 (0)761 556959-5
Fax +49 (0)761 556959-6

http://www.webgis.de / http://www.zopecms.de
-----------------------------------------------------------
Geschäftsführer: Stefan Giese, Dr. Christof Lindenbeck
Eingetragen im Handelsregister HRB 5930 beim Amtsgericht Freiburg


More information about the Mapbender_users mailing list