[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