AW: [Mapbender-users] Overview

Fischer, Andreas andreas.fischer at kreis-unna.de
Fri Dec 15 08:03:17 EST 2006


Hallo Andreas,
der neue CodeBlock muss weiter oben platziert werden, und zwar vor dem
else-Block, den Du unten angeführt hast. Der Variable newMapRequest soll ja
anstelle (!) des getMapRequests der Pfad zu der Bilddatei übergeben werden.
Bei Dir wird erst alles "ganz normal" zusammengebaut und hinterher wird noch
der Pfad zur Bilddatei angehängt. Deshalb wird vermutlich auch eben die
Übersichtskarte nach wie vor von dem WMS erzeugt, denn der getMapRequest
steht ja noch 'drin. Im Zweifelsfall lass Dir 'mal den Inhalt der Variablen
newMapRequest ausgeben.

Zur Erklärung:
Im Code wird die Variable newMapRequest zunächst auf den folgenden Wert
gesetzt:

	>	newMapRequest += "<div id='"+myDivId+"'
style='position:absolute; top:0px; left:0px; z-index:'"+ii+"'>";
	>	newMapRequest += "<img id='"+myMapId+"' name='mapimage'
src='";

Der String endet also mit "src='", d.h. normalerweise wird später im Code da
dann der getMapRequest angehängt, der zuvor in der Variable newMapUrl
zusammengebaut wird. In unserem Fall soll jetzt aber anstelle dessen einfach
der Pfad zu der Bilddatei hin (s.u.).

Wenn diese kleine Ersetzung vorgenommen worden ist, wird die Variable mit
der folgenden Zeile im Code vervollständigt:
	
	>	newMapRequest += "' width='"+mb_mapObj[i].width+"'
height='"+mb_mapObj[i].height+"' border='0'></div>";  

Damit ist nun alles komplett, bevor die Variable an die Funktion writeTag()
übergeben wird.

Also hier noch 'mal ein "größerer" Codeausschnitt für die richtige
Platzierung und zur besseren Orientierung bis zum Ende der Funktion: 

// ...
						if(mb_log){
							var tmp =
eval(mb_log + "('" + newMapURL + "','" + ts + "')");
						}
						if(proxy){
							newMapURL = proxy +
escape(newMapURL) + "&" + <?php echo "'".SID."'" ?>;
						}
						
//Ergänzung - Anfang
	
if(mb_mapObj[i].frameName=='overview' && window.frames['overview'].an_img){
							newMapRequest +=
window.frames['overview'].an_img;
						}else{
							newMapRequest +=
newMapURL;
						}	
//Ergänzung - Ende					
						
						//newMapRequest +=
newMapURL;
						mb_mapObj[i].mapURL[ii] =
newMapURL;	
						mb_mapObj[i].wms[ii].mapURL
= newMapURL;
						newMapRequest += "'
width='"+mb_mapObj[i].width+"' height='"+mb_mapObj[i].height+"'
border='0'></div>";   
					}
					else{
						mb_mapObj[i].mapURL[ii] =
false;
						mb_mapObj[i].wms[ii].mapURL
= false;
						newMapRequest += "<div
id='"+myDivId+"' style='position:absolute; top:0px; left:0px;
z-index:'"+ii+"'>";
						newMapRequest += "<img
id='"+myMapId+"' name='mapimage' src='" + mb_trans.src;
						newMapRequest += "'
width='"+mb_mapObj[i].width+"' height='"+mb_mapObj[i].height+"'
border='0'>";
						newMapRequest +="</div>";
					}
				}
				
			}
			
			//prompt("",newMapRequest);
	
writeTag(mb_mapObj[i].frameName,mb_mapObj[i].elementName,newMapRequest);
		}
	}
	for(var i=0; i<mb_MapRequestSubFunctions.length; i++){
		eval(mb_MapRequestSubFunctions[i]);
	}
}
//Ende der Funktion

Gruß Andreas

Kreis Unna
Dezernat II - Projektteam GIS

(02303) 27-2507
andreas.fischer at kreis-unna.de



-----Ursprüngliche Nachricht-----
Von: Arnold, Andreas [mailto:and.arnold at gmx.de]
Gesendet: Freitag, 15. Dezember 2006 08:06
An: users at mapbender.osgeo.org
Betreff: AW: [Mapbender-users] Overview


Hallo Andreas,
tut mir Leid bezüglich andere Version. Ich wollte sagen, dass ich die MB-
Version 2.4 verwende. 

Also, wenn ich es mit "document.overview.an_img" versuche, dann wird
überhaupt kein Bild geladen. Das Übersichtsfenster bleibt leer.

Ich füge mein Quelltext ebenfalls in die Funktion setMapRequest(frameName)
ein. Die Funktion beginnt bei mir allerdings in der Zeile 386, deswegen
kommt es soweit unten vor. An folgender Stelle in der Funktion füge ich die
Änderung ein (s.u.):
...
else{
mb_mapObj[i].mapURL[ii] = false;
mb_mapObj[i].wms[ii].mapURL = false;
newMapRequest += "<div id='"+myDivId+"' style='position:absolute; top:0px;
left:0px; z-index:'"+ii+"'>";
newMapRequest += "<img id='"+myMapId+"' name='mapimage' src='" +
mb_trans.src;
newMapRequest += "' width='"+mb_mapObj[i].width+"'
height='"+mb_mapObj[i].height+"' border='0'>";
newMapRequest +="</div>";
}

if(mb_mapObj[i].frameName=='overview' && window.frames['overview'].an_img){
newMapRequest += window.frames['overview'].an_img;
}else{
newMapRequest += newMapURL;
}
...
writeTag(mb_mapObj[i].frameName,mb_mapObj[i].elementName,newMapRequest);
...

Also ich denke, dass der Eintrag vor dem writeTag hingehört. Hast du
vielleicht noch eine Idee woran es liegen kann, dass das Bild als
Übersichtskarte nicht geladen wird? Ich komme einfach nicht weiter. Mit
alert- JS-Funktion habe ich an der o.g. Stelle die an_img- Variable
ausgegeben. Die Variable kommt auch bis an die Stelle an bzw. der Inhalt der
Variable. 

Bin für jeden Ratschlag dankbar.

Mit freundlichem Gruß
Andreas

-----Ursprüngliche Nachricht-----
Von: Fischer, Andreas [mailto:andreas.fischer at kreis-unna.de]
Gesendet: Mittwoch, 13. Dezember 2006 11:10
An: 'users at mapbender.osgeo.org'
Betreff: AW: [Mapbender-users] Overview


Hallo Andreas,
versuch' es mal nicht mit "window.frames['overview'].an_img", sondern mit
"document.overview.an_img" (siehe vorherige mail). 
Mit 4.8.3 meinst Du wahrscheinlich die MapServer-Version. Die ist in diesem
Fall egal. Ich meinte die MapBender-Version 2.3.3. 

Bei mir steht die Ergänzung der map.php in der Funktion
setMapRequest(frameName) nach Zeile 360. Also nach dem CodeBlock

         if(proxy){
         	newMapURL = proxy + escape(newMapURL) + "&" + <?php echo
"'".SID."'" ?>;
         }

(Vergleiche dazu auch den alten thread.) 
Deine Zeilenangabe legt die Vermutung nahe, dass Du entweder in der falschen
Funktion bist (setSingleMapRequest), oder Du eine andere MapBender-Version
im Einsatz hast als ich. Wenn Du MapBender-Version 2.4 einsetzt, kann ich
über die Zeile nach der Du den Code einfügen musst nichts sagen. Auch habe
ich den Code unter MB2.4 noch nicht getestet.
Hoffe, es klappt jetzt.
Gruß Andreas

Kreis Unna
Dezernat II - Projektteam GIS

(02303) 27-2507
andreas.fischer at kreis-unna.de


-----Ursprüngliche Nachricht-----
Von: Arnold, Andreas [mailto:and.arnold at gmx.de]
Gesendet: Mittwoch, 13. Dezember 2006 10:39
An: users at mapbender.osgeo.org
Betreff: AW: [Mapbender-users] Overview


Hallo Andreas,

ich verwende MB-Version 4.8.3, ich bin mir nicht sicher ob ich folgenden
Eintrag an der richtiger Stelle einfüge:
if(mb_mapObj[i].frameName=='overview' && window.frames['overview'].an_img){

newMapRequest += window.frames['overview'].an_img;    
}else{            
newMapRequest += newMapURL;
}  

Ich füge den Code in der Zeile 457 in der Funktion: setMapRequest(frameName)
ein. Muss der Eintrag an einer bestimmte Stelle eingetragen werden, z.B.
innerhalb irgend eine if- Anweisung? Oder kann es auch ganz am Ende der
Funktion stehen? 

Gruß 
Andreas

-----Ursprüngliche Nachricht-----
Von: Fischer, Andreas [mailto:andreas.fischer at kreis-unna.de]
Gesendet: Mittwoch, 13. Dezember 2006 09:21
An: 'users at mapbender.osgeo.org'
Betreff: AW: [Mapbender-users] Overview


Hallo Andreas,
das sieht danach aus, als würde in der map.php eben nicht in den if-Block
der Bedingung verzweigt, sondern die else-Anweisung (Standardcode)
ausgeführt. Ich habe den zweiten Teil der Bedingung (und so auch die
Zuweisung im if-Block) etwas anders formuliert: document.overview.an_img
(unter MB2.2.3!). 
Ansonsten kann ich zu meiner Umsetzung keine Unterschiede ausmachen. 
Grüße aus Unna
Andreas

Kreis Unna
Dezernat II - Projektteam GIS

(02303) 27-2507
andreas.fischer at kreis-unna.de



-----Ursprüngliche Nachricht-----
Von: Arnold, Andreas [mailto:and.arnold at gmx.de]
Gesendet: Mittwoch, 13. Dezember 2006 08:24
An: users at mapbender.osgeo.org
Betreff: [Mapbender-users] Overview


Hallo Liste,
ich habe vor meine Übersichtskarte nicht als eine Kopie von dem Start der
Karte zu verwenden, sonder einen Image zuzuweisen. Hier habe ich gesehen,
dass es gehen kann:
https://mapbender.osgeo.org/servlets/ReadMsg?list=users&msgNo=778. Wie auf
der Seite beschrieben, so habe ich es auch bei mir im Mapbender umgesetzt.
Mit der "alert"- Anweisung wurde kontrolliert, dass die
"window.frames['overview'].VARIABLE" an map.php übergeben wird. 

Das Ergebnis ist, dass für die Übersichtskarte trotzdem das Startbild von
der Karte verwendet wird. Statt dessen wird in der Karte folgender String
ausgegeben: http://loclahost/cgi-bin/mapserv.exe?map=...

Nachfolgend sind meine Änderungen, die ich gemacht habe:
Datenfeld SRS im Overview:
&an_img=../../../img/ReferenceMap_TK.gif

mapOV.php wurde wie folgt ergänzt:
if(isset($_REQUEST["an_img"])){
echo "<script type='text/javascript'>";
echo "var an_img = '" . $_REQUEST["an_img"] ."';";
// echo "alert (an_img);";
echo "</script>";
}

map.php wurde wie folgt geändert:
if(mb_mapObj[i].frameName=='overview' && window.frames['overview'].an_img){
// alert ("hier...");
newMapRequest += window.frames['overview'].an_img;
}else{
// alert ("oder hier...");
newMapRequest += newMapURL;
}

Woran kann es liegen, dass das Bild für die Übersichtskarte nicht gezeichnet
wird? Habe ich irgendetwas vergessen? Ich bin für jeden Ratschlag dankbar!

Mit freundlichem Gruß
Andreas


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

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


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

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


---------------------------------------------------------------------
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