[Mapbender-commits] r8476 - in trunk/mapbender/http: classes php plugins

svn_mapbender at osgeo.org svn_mapbender at osgeo.org
Fri Aug 31 06:59:06 PDT 2012


Author: verenadiewald
Date: 2012-08-31 06:59:06 -0700 (Fri, 31 Aug 2012)
New Revision: 8476

Modified:
   trunk/mapbender/http/classes/class_kml_ows.php
   trunk/mapbender/http/classes/class_kml_placemark.php
   trunk/mapbender/http/classes/class_kml_point.php
   trunk/mapbender/http/php/kmlToGeoJSON.php
   trunk/mapbender/http/plugins/feedTree.js
   trunk/mapbender/http/plugins/kmlTree.js
Log:
transform kml placemarks for given targetEpsg, removed some client side mouseover and mouseout problems 

Modified: trunk/mapbender/http/classes/class_kml_ows.php
===================================================================
--- trunk/mapbender/http/classes/class_kml_ows.php	2012-08-28 18:33:20 UTC (rev 8475)
+++ trunk/mapbender/http/classes/class_kml_ows.php	2012-08-31 13:59:06 UTC (rev 8476)
@@ -289,6 +289,18 @@
 		return true;
 	}
 	
+	public function transform($targetEpsg){
+	    $numberOfPlacemarks = count($this->placemarkArray);
+		if ($numberOfPlacemarks > 0) {
+			for ($i=0; $i < $numberOfPlacemarks; $i++) {
+				$this->placemarkArray[$i]->transform($targetEpsg);
+			}
+		}
+		else {
+			$e = new mb_exception("KML: toGeoJSON: this placemarkArray is empty!");
+		}
+		return true;
+	}
 	/**
 	 * parses an incoming GeoJSON, creates the object, 
 	 * stores the kml in the object and in the database.

Modified: trunk/mapbender/http/classes/class_kml_placemark.php
===================================================================
--- trunk/mapbender/http/classes/class_kml_placemark.php	2012-08-28 18:33:20 UTC (rev 8475)
+++ trunk/mapbender/http/classes/class_kml_placemark.php	2012-08-31 13:59:06 UTC (rev 8476)
@@ -112,6 +112,10 @@
 		$e = new mb_exception("class_kml_placemark.php: getGeometryType: Geometry not set.");
 		return "";
 	}
+	
+	public function transform($targetEpsg){
+	    $this->geometry->transform($targetEpsg);
+	}
 
 	private $geometry;
 	private $properties = array();

Modified: trunk/mapbender/http/classes/class_kml_point.php
===================================================================
--- trunk/mapbender/http/classes/class_kml_point.php	2012-08-28 18:33:20 UTC (rev 8475)
+++ trunk/mapbender/http/classes/class_kml_point.php	2012-08-31 13:59:06 UTC (rev 8476)
@@ -87,6 +87,13 @@
 	public function getPoint () {
 		return $this->point;
 	}
+	
+	public function transform($targetEpsg){
+	    $pt = new Mapbender_point($this->point["x"], $this->point["y"], $this->point["z"], 4326);
+	    $pt->transform($targetEpsg);
+	    $this->point = array("x" => $pt->x, "y" => $pt->y, "z" => $pt->z);
+	}
+	
 		
 	/**
 	 * @var	float[] an associative array, with "x", and "y"  and "z" being float values.

Modified: trunk/mapbender/http/php/kmlToGeoJSON.php
===================================================================
--- trunk/mapbender/http/php/kmlToGeoJSON.php	2012-08-28 18:33:20 UTC (rev 8475)
+++ trunk/mapbender/http/php/kmlToGeoJSON.php	2012-08-31 13:59:06 UTC (rev 8476)
@@ -38,6 +38,7 @@
 try {
 	
 	if($kml->parseKml($kmlString)){
+	    $kml->transform($_REQUEST["targetEPSG"]);
 		$geojson  =  $kml->toGeoJSON();
 		echo $geojson;
 	}else{

Modified: trunk/mapbender/http/plugins/feedTree.js
===================================================================
--- trunk/mapbender/http/plugins/feedTree.js	2012-08-28 18:33:20 UTC (rev 8475)
+++ trunk/mapbender/http/plugins/feedTree.js	2012-08-31 13:59:06 UTC (rev 8476)
@@ -101,7 +101,6 @@
 			$featureList.append($feature);
 			title = obj.data.features[i].properties.title;
 			$feature.bind('click',(function(jsonFeature){return function(){
-				
 				var map = o.$target.mapbender();
 				var g = new GeometryArray();
 				g.importGeoJSON(jsonFeature,false);
@@ -113,7 +112,6 @@
 				bbox[0] = bbox[0].minus(buffer);
 				bbox[1] = bbox[1].plus(buffer);
 
-
 				map.calculateExtent(
 				  new Mapbender.Extent(bbox[0], bbox[1])
 				);
@@ -123,18 +121,26 @@
 			})(obj.data.features[i]));
 			
 			$feature.bind('mouseout',(function(jsonFeature){return function(){
-				var me = $feedTree.mapbender();
-				me.resultHighlight.clean();
-				me.resultHighlight.paint();
-			}})());
+				var map = o.$target.mapbender();
+				var g = new GeometryArray();
+				g.importGeoJSON(jsonFeature,false);
+				var feature = g.get(0);
+				
+				if(feature.geomType != "point"){
+					var me = $feedTree.mapbender();
+					me.resultHighlight.clean();
+					me.resultHighlight.paint();
+				}
+			}})(obj.data.features[i]));
 			$feature.bind('mouseover',(function(jsonFeature){return function(){
-				var me = $feedTree.mapbender();
+				var map = o.$target.mapbender();
 				var g = new GeometryArray();
 				g.importGeoJSON(jsonFeature,false);
 				var feature = g.get(0);
 			
 				if(feature.geomType != "point"){
 					feature = feature.getBBox4();
+					var me = $feedTree.mapbender();
 					me.resultHighlight = new Highlight(
 							[o.target],
 							"FeedTreeHighlight", 

Modified: trunk/mapbender/http/plugins/kmlTree.js
===================================================================
--- trunk/mapbender/http/plugins/kmlTree.js	2012-08-28 18:33:20 UTC (rev 8475)
+++ trunk/mapbender/http/plugins/kmlTree.js	2012-08-31 13:59:06 UTC (rev 8476)
@@ -120,17 +120,24 @@
 			})(obj.data.features[i]));
 			
 			$feature.bind('mouseout',(function(jsonFeature){return function(){
-				var me = $kmlTree.mapbender();
-				me.resultHighlight.clean();
-				me.resultHighlight.paint();
-			}})());
+				var map = o.$target.mapbender();
+				var g = new GeometryArray();
+				g.importGeoJSON(jsonFeature,false);
+				var feature = g.get(0);
+				
+				if(feature.geomType != "point"){
+					me.resultHighlight.clean();
+					me.resultHighlight.paint();
+				}
+			}})(obj.data.features[i]));
 			$feature.bind('mouseover',(function(jsonFeature){return function(){
-				var me = $kmlTree.mapbender();
+				var map = o.$target.mapbender();
 				var g = new GeometryArray();
 				g.importGeoJSON(jsonFeature,false);
 				var feature = g.get(0);
 			
 				if(feature.geomType != "point"){
+					var me = $kmlTree.mapbender();
 					feature = feature.getBBox4();
 					me.resultHighlight = new Highlight(
 							[o.target],



More information about the Mapbender_commits mailing list