[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