Re: [Mapbender-users] Defaultmäßig Attribute eines Geoobjektes anzeigen
Kai Behncke
Kai-Behncke at gmx.de
Tue Feb 6 10:16:52 EST 2007
-------- Original-Nachricht --------
Datum: Mon, 05 Feb 2007 14:03:44 +0100
Von: "Kai Behncke" <Kai-Behncke at gmx.de>
An: mapbender_users at lists.osgeo.org
CC:
Betreff: [Mapbender-users] Defaultmäßig Attribute eines Geoobjektes anzeigen
> Hallo Liste,
>
> ich suche nach einer Möglichkeit, wie ich eine Gui aufrufe und
> defaultmäßig
> werden zu einer übermittelten Koordinate die Attribute des Geoobjektes
> angezeigt (über featureinfoTunnel).
>
> Mittels toggleModule wird zwar der Infobutton defaultmäßig
> runtergedrückt, aber erst nach einem Mausklick in die Karte werden dann Infos
> angezeigt.
>
> Frage: Gibt es schon eine Möglichkeit im Mapbender, wie ich nach Aufruf
> der Karte sofort Attribute zu einer Fläche ausgeben lassen kann?
>
> Falls nein, wie müßte ich ansetzen, damit ich Koordinaten an
> featureInfoTunnel übergebe (wühle mich gerade durch den Code, aber mir fehlt noch
> irgendwie der Schlüssel).
>
> Vielen Dank, Kai
> --
Hallo Liste,
nach etwas Gebastel hats nun geklappt.
Für den Fall, dass jemand also defaultmäßig Attribute anzeigen lassen möchte folgende Schritte:
1. In der session.conf z.B. dieses eintragen:
$_SESSION["mb_defaultklick"] = $_REQUEST["mb_defaultklick"];
2. Hier der veränderte Code aus mod_featureTunnel.php (von Zeile 59 bis zum Schluß)
nicht_mehr_erster_aufruf=0;
function mod_featureInfoTunnel_click(){
window.frames[mod_featureInfoTunnel_target].document.onclick = mod_featureInfoTunnel_event;
if (nicht_mehr_erster_aufruf!=1){
window.setTimeout("default_klick_ermitteln()", 500);
}
}
function mod_featureInfoTunnel_disable(){
window.frames[mod_featureInfoTunnel_target].document.onclick = null;
clickX=1000;
clickY=1000;
nicht_mehr_erster_aufruf=1;
}
function default_klick_ermitteln () {
var myPOI = "<?php if (CHARSET == 'UTF-8'){
echo utf8_encode($_SESSION['mb_defaultklick']);
$klickarray=explode(",",utf8_encode($_SESSION['mb_defaultklick']));
}else{
echo $_SESSION['mb_defaultklick'];
$klickarray=explode(",",$_SESSION['mb_defaultklick']);
}
?>";
punkt1=<? echo $klickarray[0]; ?>;
punkt2=<? echo $klickarray[1]; ?>;
var klick_pos = makeRealWorld2mapPos(mod_featureInfoTunnel_target,punkt1,punkt2);
setFeatureInfoRequest(mod_featureInfoTunnel_target,klick_pos[0],klick_pos[1], '../extensions/ext_featureInfoTunnel.php');
}
function mod_featureInfoTunnel_event(e){
if(ie){
clickX = window.frames[mod_featureInfoTunnel_target].event.clientX;
clickY = window.frames[mod_featureInfoTunnel_target].event.clientY;
}
else{
clickX = e.pageX;
clickY = e.pageY;
}
setFeatureInfoRequest(mod_featureInfoTunnel_target,clickX,clickY, '../extensions/ext_featureInfoTunnel.php');
}
Wenn man die Gui dann aufruft, z.B. mit:
<a href="http://localhost/mapbender_24/http/frames/login.php?&mb_user_myGui=test&name=root&password=geheim&mb_myPOI=Hallo,3458200,5907500&mb_myBBOX=3457200,5907000,3461500,5913400&mb_defaultklick=3462540,5908590
">Karte aufrufen</a>
dann werden die Werte aus "mb_defaultklick=3462540,5908590"
für die WMS-FeatureInfoAbfrage umgerechnet und eben sofort beim ersten Aufruf die Attribute der X und Y-Position ausgegeben.
Ist zwar ein bißchen "von hinten durch die Brust ins Auge" funktioniert aber.
ToggleModule muss natürlich aktiviert sein.
Viele Grüße, Kai
--
Der GMX SmartSurfer hilft bis zu 70% Ihrer Onlinekosten zu sparen!
Ideal für Modem und ISDN: http://www.gmx.net/de/go/smartsurfer
More information about the Mapbender_users
mailing list