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