[Mapbender-commits] r8780 - in trunk/mapbender: http/javascripts http/plugins lib

svn_mapbender at osgeo.org svn_mapbender at osgeo.org
Mon Feb 17 06:14:15 PST 2014


Author: armin11
Date: 2014-02-17 06:14:15 -0800 (Mon, 17 Feb 2014)
New Revision: 8780

Modified:
   trunk/mapbender/http/javascripts/initWmcObj.php
   trunk/mapbender/http/plugins/kmlTree.js
   trunk/mapbender/lib/class_GetApi.php
   trunk/mapbender/lib/mb.ui.displayKmlFeatures.js
Log:
Some enhancements to add external KML to mapbender gui via get-parameter

Modified: trunk/mapbender/http/javascripts/initWmcObj.php
===================================================================
--- trunk/mapbender/http/javascripts/initWmcObj.php	2014-02-17 12:41:26 UTC (rev 8779)
+++ trunk/mapbender/http/javascripts/initWmcObj.php	2014-02-17 14:14:15 UTC (rev 8780)
@@ -113,6 +113,7 @@
 	"LAYER" => getConfiguration("LAYER"),
 	"FEATURETYPE" => getConfiguration("FEATURETYPE"),
 	"GEORSS"=>getConfiguration("GEORSS"),
+	"KML"=>getConfiguration("KML"),
 	"ZOOM"=>getConfiguration("ZOOM")
 );
 $getApi = new GetApi($getParams);
@@ -330,6 +331,15 @@
 if($inputGeoRSSArray){
 	$wmc->generalExtensionArray['GEORSS'] = $inputGeoRSSArray; 
 }
+//
+//KML
+//
+$inputKmlArray = $getApi->getKml();
+$e = new mb_exception("initWmcObj.php: check KML API");
+if($inputKmlArray){
+	$wmc->generalExtensionArray['KML'] = $inputKmlArray; 
+	$e = new mb_exception("initWmcObj.php: found KML");
+}
 //TODO test following
 //workaround to have a fully merged WMC for loading
 $xml = $wmcGetApi->toXml();
@@ -472,6 +482,8 @@
 	$gml->bbox[3],
 	$epsg = "EPSG:".$gml->epsg);
 	$wmcGetApi->mainMap->setExtent($bbox);
+} else {
+	$e = new mb_notice("initWmcObj.php: no GML found in session!");
 }
 $e = new mb_notice("initWmcObj.php: session GML zoom done");
 //overwrite extent of wmc with information from GetApi if given
@@ -569,13 +581,23 @@
 JS;
 }
 $outputString .= $wmcFeaturetypeStr;
+//GeoRSS
 $GeoRSSStr = " Mapbender.events.afterInit.register(function () {";
 foreach($inputGeoRSSArray as $inputGeoRSSUrl){
 	$GeoRSSStr .= 'try {$("#mapframe1").georss({url: "'.$inputGeoRSSUrl .'"})} catch(e) {new Mb_warning("GeoRSS module not loaded")}';
 }
 $GeoRSSStr .="}); ";
 $outputString .= $GeoRSSStr;
+//KML
+$KmlStr = " Mapbender.events.afterInit.register(function () {";
+foreach($inputKmlArray as $inputKmlUrl){
+	$KmlStr .= 'try {$("#mapframe1").kml({url: "'.$inputKmlUrl .'"})} catch(e) {new Mb_warning("KML module not loaded")}';
+}
+$KmlStr .="}); ";
+$outputString .= $KmlStr;
+
 echo $outputString;
+
 //logit($outputString,"javascript_old.store","w");
 Mapbender::session()->delete("addwms_showWMS");
 Mapbender::session()->delete("addwms_zoomToExtent");

Modified: trunk/mapbender/http/plugins/kmlTree.js
===================================================================
--- trunk/mapbender/http/plugins/kmlTree.js	2014-02-17 12:41:26 UTC (rev 8779)
+++ trunk/mapbender/http/plugins/kmlTree.js	2014-02-17 14:14:15 UTC (rev 8780)
@@ -17,6 +17,8 @@
   * > 'visibility:visible','','ul','../plugins/kmlTree.js','../../lib/mb.ui.displayKmlFeatures.js',
   * > 'mapframe1','jq_ui_widget','http://www.mapbender.org/Loadkml');
   * > 
+  * > INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type) VALUES('gui', 'kmlTree',
+  * > 'buffer', '100', '' ,'var');
   * > INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type) 
   * > VALUES('gui', 'kmlTree', 'styles', '../css/kmltree.css', '' ,'file/css');
   *
@@ -38,7 +40,7 @@
 var KmlTree = function(o){
 	$kmlTree.children().remove();
 	$kmlTree.addClass('kmlTree');
-
+	alert(o.buffer);
 	var $KMLfolder = $('<li class="open kml"><img src="../img/kml_logo.png" /><a href="#">KML</a><ul></ul></li>');
 	$kmlTree.append($KMLfolder);
 
@@ -74,7 +76,7 @@
 				g.importGeoJSON(jsonFeatureCollection,false);
 		
 				var bbox = g.getBBox();
-				var bufferFloat = parseFloat(0.1);
+				var bufferFloat = parseFloat(o.buffer);
 				var buffer = new Point(bufferFloat,bufferFloat);
 				bbox[0] = bbox[0].minus(buffer);
 				bbox[1] = bbox[1].plus(buffer);
@@ -105,7 +107,7 @@
 				var feature = g.get(0);
 		
 				var bbox = feature.getBBox();
-				var bufferFloat = parseFloat(0.1);
+				var bufferFloat = parseFloat(o.buffer);
 				var buffer = new Point(bufferFloat,bufferFloat);
 				bbox[0] = bbox[0].minus(buffer);
 				bbox[1] = bbox[1].plus(buffer);

Modified: trunk/mapbender/lib/class_GetApi.php
===================================================================
--- trunk/mapbender/lib/class_GetApi.php	2014-02-17 12:41:26 UTC (rev 8779)
+++ trunk/mapbender/lib/class_GetApi.php	2014-02-17 14:14:15 UTC (rev 8780)
@@ -14,6 +14,7 @@
 	private $layers = array();
 	private $featuretypes = array();
 	private $geoRSSFeeds = array();
+	private $kml = array();
 	private $wmc = array();
 	private $zoom = array();
 	
@@ -38,6 +39,9 @@
 				case "GEORSS":
 					$this->geoRSSFeeds = $this->normalizeGeoRSSInput($value);
 					break;
+				case "KML":
+					$this->kml = $this->normalizeKmlInput($value);
+					break;
 				case "ZOOM":
 					$this->zoom = $this->normalizeZoomInput($value);
 					break;
@@ -70,6 +74,15 @@
 
 	}
 
+	/*
+	 * 
+	 *
+	 */
+	public function getKml(){
+		return $this->kml;
+
+	}
+
 	/**
 	 * Returns an array of zoom parameters
 	 * @return array
@@ -277,6 +290,10 @@
 	private function normalizeGeoRSSInput($input){
 		return is_array($input) ? $input : array($input);
 	}
+	private function normalizeKmlInput($input){
+		$e = new mb_exception("normalizeKmlInput");
+		return is_array($input) ? $input : array($input);
+	}
 }
 
 ?>

Modified: trunk/mapbender/lib/mb.ui.displayKmlFeatures.js
===================================================================
--- trunk/mapbender/lib/mb.ui.displayKmlFeatures.js	2014-02-17 12:41:26 UTC (rev 8779)
+++ trunk/mapbender/lib/mb.ui.displayKmlFeatures.js	2014-02-17 14:14:15 UTC (rev 8780)
@@ -22,16 +22,12 @@
 		"sNext":     "Next",
 		"sLast":     "Last"
 	 }
-
-
 };
 
-//var translatedI18nObject = Mapbender.cloneObject(originalI18nObject);
-var translatedI18nObject = originalI18nObject;
+var translatedI18nObject = Mapbender.cloneObject(originalI18nObject);
+//var translatedI18nObject = originalI18nObject;
 
-
 var displayFeatures = {
-
 	options: {
 		url: "",
 		position: 'right',
@@ -40,7 +36,6 @@
 	},
 	_kmls: {},
 	_popup : null,
-	
 	_create: function(){
 		var self = this, o = this.options;
 		this.element.bind('click', function(e){
@@ -163,13 +158,7 @@
 							$tabcontainer.tabs("select",$(this).attr("rel"));
 							return false;
 						});
-
-
 					}
-				
-
-	
-
 				};})(feed.geomArray, pointGeometries)
 				});
 				req.send();
@@ -224,6 +213,7 @@
 		});
 
 	},
+
 	show : function(url){
 		this._kmls[url].display = true;
 		var $map = $(this.element).mapbender();
@@ -273,6 +263,13 @@
 				mapitem.geomArray = new GeometryArray();
 				mapitem.highlightArray = [];
 				mapitem.geomArray.importGeoJSON(geojson);
+				//get bbox for array
+				var bbox = mapitem.geomArray.getBBox();
+				var bufferFloat = parseFloat(0.1);
+				var buffer = new Point(bufferFloat,bufferFloat);
+				bbox[0] = bbox[0].minus(buffer);
+				bbox[1] = bbox[1].plus(buffer);
+				//
 				for(var i =0; i < mapitem.geomArray.count(); i++){
 					var h = new Highlight([self.element.attr('id')], "mapframe1_" + parseInt(Math.random()*100000,10),{
 						"position":"absolute",
@@ -318,6 +315,11 @@
 						}
 					}
 				});
+				//set new bbox for mapframe
+				$map.calculateExtent(
+				  new Mapbender.Extent(bbox[0], bbox[1])
+				);
+				$map.setMapRequest();
 
 			}
 		}



More information about the Mapbender_commits mailing list