[Mapbender-commits] r7504 - trunk/mapbender/http/javascripts

svn_mapbender at osgeo.org svn_mapbender at osgeo.org
Mon Jan 31 11:31:39 EST 2011


Author: armin11
Date: 2011-01-31 08:31:39 -0800 (Mon, 31 Jan 2011)
New Revision: 7504

Added:
   trunk/mapbender/http/javascripts/mod_legendDiv.php
Log:
Initial module for showingf legend in a simple div tag - will be extended and formatted later ;-)

Added: trunk/mapbender/http/javascripts/mod_legendDiv.php
===================================================================
--- trunk/mapbender/http/javascripts/mod_legendDiv.php	                        (rev 0)
+++ trunk/mapbender/http/javascripts/mod_legendDiv.php	2011-01-31 16:31:39 UTC (rev 7504)
@@ -0,0 +1,142 @@
+<?php
+# $Id: mod_legend.php 6887 2010-09-03 14:51:46Z christoph $
+# http://www.mapbender.org/index.php/Legend
+# Copyright (C) 2005 CCGIS / terrestris 
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+/*
+INSERT INTO gui_element(fkey_gui_id, e_id, e_pos, e_public, e_comment, e_title, e_element, e_src, e_attributes, e_left, e_top, e_width, e_height, e_z_index, e_more_styles, e_content, e_closetag, e_js_file, e_mb_mod, e_target, e_requires, e_url) VALUES('Geoportal-RLP','legend',2,1,'legend','Legend','div','','',0,0,NULL ,NULL ,600,'','','div','../javascripts/mod_legendDiv.php','','mapframe1','','');
+INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type) VALUES('Geoportal-RLP', 'legend', 'checkbox_on_off', 'false', 'display or hide the checkbox to set the legend on/off' ,'var');
+INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type) VALUES('Geoportal-RLP', 'legend', 'css_file_legend', '../css/legend.css', '' ,'file/css');
+INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type) VALUES('Geoportal-RLP', 'legend', 'legendlink', 'false', '' ,'var');
+INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type) VALUES('Geoportal-RLP', 'legend', 'showgroupedlayertitle', 'true', 'show the title of the grouped layers in the legend' ,'var');
+INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type) VALUES('Geoportal-RLP', 'legend', 'showlayertitle', 'true', 'show the layer title in the legend' ,'var');
+INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type) VALUES('Geoportal-RLP', 'legend', 'showwmstitle', 'true', 'show the wms title in the legend' ,'var');
+INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type) VALUES('Geoportal-RLP', 'legend', 'stickylegend', 'false', 'parameter to decide wether the legend should stick on the mapframe1' ,'var');
+
+*/
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+$e_target = "mapframe1";
+$e_top = '10';
+$e_left = '10';
+
+
+echo "var mod_legend_target = '".$e_target."';\n";
+echo "var mod_legend_target_left = ".intval($e_left).";\n";
+echo "var mod_legend_target_top = ".intval($e_top).";\n";
+//echo "var mod_legend_target_width = ".db_result($res2,0,"e_width").";\n";
+//echo "var mod_legend_target_height = ".db_result($res2,0,"e_height").";\n";
+?>
+mod_legend_offsetLeft = 25;
+mod_legend_offsetTop = -10;
+showlayertitle = true;
+showwmstitle = true;
+legendlink = false;
+
+var checkbox_on_off = typeof checkbox_on_off === "undefined" ? 'false' : checkbox_on_off;
+var stickylegend = typeof stickylegend === "undefined" ? "false" : stickylegend;
+
+function mod_legend_pos(frameName){
+	if(frameName == mod_legend_target){
+		var ind = getMapObjIndexByName(mod_legend_target);
+		var obj = document.getElementById("legend");
+	
+		if(stickylegend == 'true'){
+			obj.style.left = (parseInt(mb_mapObj[ind].width) + mod_legend_target_left + mod_legend_offsetLeft) + "px";
+		}
+	
+		
+		var str = "";
+		var str_tmp = "";
+						
+		for(var i=0; i<mb_mapObj[ind].wms.length; i++){
+			
+			 	var layerNames = mb_mapObj[ind].wms[i].getLayers(mb_mapObj[ind]);
+				for(var j=0; j<layerNames.length; j++){
+					var layerParent = mb_mapObj[ind].wms[i].checkLayerParentByLayerName(layerNames[j]); 
+					var layerTitle = mb_mapObj[ind].wms[i].getTitleByLayerName(layerNames[j]);
+					var layerStyle = mb_mapObj[ind].wms[i].getCurrentStyleByLayerName(layerNames[j]);
+					var legendUrl = false;
+					if(layerStyle == false){
+						legendUrl = mb_mapObj[ind].wms[i].getLegendUrlByGuiLayerStyle(layerNames[j],"");	
+					}
+					else{
+						legendUrl = mb_mapObj[ind].wms[i].getLegendUrlByGuiLayerStyle(layerNames[j],layerStyle);
+					}
+			         
+					if (legendUrl !== false){
+						
+//	 					if(layerParent == 0){
+		 					if(showlayertitle == 'true'){
+								str_tmp += "<div><span class='titles'>" + layerTitle+ "</span></div>";
+							}
+							str_tmp += "<div>";
+		                    if(legendlink == 'true'){
+		                    	str_tmp += "<a href='../php/result.php?lingo=deutsch&layer="+layerNames[j]+"' class='link_metadata' title='Zeigt Liste zum Thema: "+layerTitle+"' target='result'>";
+		                    }
+		                    str_tmp += "<img border=0 src = '";			
+							str_tmp += legendUrl;
+							str_tmp += "'></img>";
+							if (legendlink == 'true'){
+		                    	str_tmp += "</a>";
+		                    }
+		                    str_tmp += "</div>";
+//	                	}
+					} 
+				}
+			if(str_tmp !=''){
+				if (showwmstitle == 'true'){
+					str += "<div><span class='header'>" +mb_mapObj[ind].wms[i].wms_title+ "</span></div>";
+				}
+				str += str_tmp;
+				str_tmp ='';
+			}		
+		}
+	    if(str != ""){
+			writeTag("", "legend", str);
+		}
+		else{
+			writeTag("", "legend", "");
+		}
+		return true;
+	}
+} 
+
+// Todo: return-value may change in the next version....
+eventAfterMapRequest.register(function (obj) {
+	mod_legend_pos(obj.map.elementName)
+});
+
+
+function mod_legend_init(){
+	var obj = document.getElementById("legend");
+//	obj.style.top = mod_legend_target_top  + mod_legend_offsetTop;
+//	obj.style.left = mod_legend_target_left + mod_legend_target_width + mod_legend_offsetLeft; 
+//	var checkobj = document.getElementById("checkboxstyle");
+//	if (checkbox_on_off == 'false'){
+//		checkobj.style.display = "none";
+//		checkobj.style.width = 0;
+//		checkobj.style.height = 0;
+//	}
+	if (Mapbender.events.init.done) {
+		mod_legend_pos(mod_legend_target);
+	}
+	else {
+		Mapbender.events.init.register(function () {
+			mod_legend_pos(mod_legend_target);
+		});
+	}
+}
+



More information about the Mapbender_commits mailing list