[Mapbender-commits] r8162 - in trunk/mapbender: http/plugins http/widgets resources/db/pgsql/UTF-8/update

svn_mapbender at osgeo.org svn_mapbender at osgeo.org
Thu Sep 22 09:52:13 EDT 2011


Author: verenadiewald
Date: 2011-09-22 06:52:12 -0700 (Thu, 22 Sep 2011)
New Revision: 8162

Modified:
   trunk/mapbender/http/plugins/mb_measure_widget.php
   trunk/mapbender/http/widgets/w_measure.js
   trunk/mapbender/resources/db/pgsql/UTF-8/update/update_2.7.2_to_2.7.3_pgsql_UTF-8.sql
Log:
http://trac.osgeo.org/mapbender/ticket/857 (export to gml/kml not implemented yet)

Modified: trunk/mapbender/http/plugins/mb_measure_widget.php
===================================================================
--- trunk/mapbender/http/plugins/mb_measure_widget.php	2011-09-22 13:47:19 UTC (rev 8161)
+++ trunk/mapbender/http/plugins/mb_measure_widget.php	2011-09-22 13:52:12 UTC (rev 8162)
@@ -18,40 +18,36 @@
  * > '../widgets/w_measure.js,../extensions/RaphaelJS/raphael-1.4.7.min.js',
  * > 'mapframe1','jq_ui_dialog,jq_ui_widget','http://www.mapbender.org/index.php/Measure');
  * > 
- * > INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, 
- * > context, var_type) VALUES('<appId>', 'measure_widget', 'lineStrokeDefault', '#C9F', '' ,'var');
- * > 
- * > INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, 
- * > context, var_type) VALUES('<appId>', 'measure_widget', 'lineStrokeSnapped', '#F30', '' ,'var');
- * > 
- * > INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, 
- * > context, var_type) VALUES('<appId>', 'measure_widget', 'lineStrokeWidthDefault', '3', '' ,'var');
- * > 
- * > INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, 
- * > context, var_type) VALUES('<appId>', 'measure_widget', 'lineStrokeWidthSnapped', '5', '' ,'var');
- * > 
- * > INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, 
- * > context, var_type) VALUES('<appId>', 'measure_widget', 'measurePointDiameter', '7', '' ,'var');
- * > 
- * > INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, 
- * > context, var_type) VALUES('<appId>', 'measure_widget', 'opacity', '0.4', '' ,'var');
- * > INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, 
- * > context, var_type) VALUES('<appId>', 'measure_widget', 'pointFillDefault', '#CCF', '' ,'var');
- * > 
- * > INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, 
- * > context, var_type) VALUES('<appId>', 'measure_widget', 'pointFillSnapped', '#F90', '' ,'var');
- * > 
- * > INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, 
- * > context, var_type) VALUES('<appId>', 'measure_widget', 'polygonFillDefault', '#FFF', '' ,'var');
- * > 
- * > INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, 
- * > context, var_type) VALUES('<appId>', 'measure_widget', 'polygonFillSnapped', '#FC3', '' ,'var');
- * > 
- * > INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, 
- * > context, var_type) VALUES('<appId>', 'measure_widget', 'polygonStrokeWidthDefault', '1', '' ,'var');
- * > 
- * > INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, 
- * > context, var_type) VALUES('<appId>', 'measure_widget', 'polygonStrokeWidthSnapped', '5', '' ,'var');
+ * > INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type)
+ * > VALUES('<app_id>', 'measure_widget', 'lineStrokeDefault', '#808080', '' ,'var');
+ * > INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type)
+ * > VALUES('<app_id>', 'measure_widget', 'lineStrokeSnapped', '#F30', '' ,'var');
+ * > INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type)
+ * > VALUES('<app_id>', 'measure_widget', 'lineStrokeWidthDefault', '2', '' ,'var');
+ * > INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type)
+ * > VALUES('<app_id>', 'measure_widget', 'lineStrokeWidthSnapped', '2', '' ,'var');
+ * > INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type)
+ * > VALUES('<app_id>', 'measure_widget', 'measurePointDiameter', '7', '' ,'var');
+ * > INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type)
+ * > VALUES('<app_id>', 'measure_widget', 'opacity', '0.5', '' ,'var');
+ * > INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type)
+ * > VALUES('<app_id>', 'measure_widget', 'pointFillDefault', '#B2DFEE', '' ,'var');
+ * > INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type)
+ * > VALUES('<app_id>', 'measure_widget', 'pointFillSnapped', '#FF0000', '' ,'var');
+ * > INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type)
+ * > VALUES('<app_id>', 'measure_widget', 'pointStrokeDefault', '#FF0000', '' ,'var');
+ * > INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type)
+ * > VALUES('<app_id>', 'measure_widget', 'pointStrokeSnapped', '#FF0000', '' ,'var');
+ * > INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type)
+ * > VALUES('<app_id>', 'measure_widget', 'pointStrokeWidthDefault', '2', '' ,'var');
+ * > INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type)
+ * > VALUES('<app_id>', 'measure_widget', 'polygonFillDefault', '#B2DFEE', '' ,'var');
+ * > INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type)
+ * > VALUES('<app_id>', 'measure_widget', 'polygonFillSnapped', '#FC3', '' ,'var');
+ * > INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type)
+ * > VALUES('<app_id>', 'measure_widget', 'polygonStrokeWidthDefault', '1', '' ,'var');
+ * > INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type)
+ * > VALUES('<app_id>', 'measure_widget', 'polygonStrokeWidthSnapped', '3', '' ,'var');
  *
  * Help:
  * http://www.mapbender.org/Measure_widget
@@ -97,7 +93,10 @@
 			?><span class='mb-measure-perimeter' /> <span class='mb-measure-perimeter-unit' /></div>" +
 			"<div><?php
 				echo nl2br(htmlentities(_mb("Area: "), ENT_QUOTES, "UTF-8"));
-			?><span class='mb-measure-area' /> <span class='mb-measure-area-unit' /></div>";
+			?><span class='mb-measure-area' /> <span class='mb-measure-area-unit' /></div>" +
+                        "<div><?php
+				echo nl2br(htmlentities(_mb("Angle: "), ENT_QUOTES, "UTF-8"));
+			?><span class='mb-measure-angle' /> <span class='mb-measure-angle-unit' /></div>";
 
 	var hideMeasureData = function () {
 		measureDialog.find(".mb-measure-clicked-point").parent().hide();
@@ -106,11 +105,14 @@
 		measureDialog.find(".mb-measure-distance-total").parent().hide();
 		measureDialog.find(".mb-measure-perimeter").parent().hide();
 		measureDialog.find(".mb-measure-area").parent().hide();
+                measureDialog.find(".mb-measure-angle").parent().hide();
+
 	};
 
 	var changeDialogContent = function () {
 		measureDialog.html(informationHtml);
 		hideMeasureData();
+
 		o.$target.unbind("click", changeDialogContent);
 	};
 
@@ -156,7 +158,22 @@
 			measureDialog.find(".mb-measure-clicked-point").text(
 				p.pos.x + " " + p.pos.y
 			).parent().show();
+
+
+                        var measuredX = $('input[name="measured_x_values"]').val();
+                        if(measuredX != "") {
+                            measuredX += ",";
 		}
+                        measuredX += p.pos.x;
+                        $('input[name="measured_x_values"]').val(measuredX)
+
+                        var measuredY = $('input[name="measured_y_values"]').val();
+                        if(measuredY != "") {
+                            measuredY += ",";
+                        }
+                        measuredY += p.pos.y;
+                        $('input[name="measured_y_values"]').val(measuredY);
+		}
 	};
 
 	var updateCurrentDistance = function (evt, data) {
@@ -227,12 +244,26 @@
 		}
 	};
 
+        var updateAngle = function (evt, data) {
+        	if (data.currentAngle) {
+			var unit = "°";
+			var displayAngle = data.currentAngle;
+                        measureDialog.find(".mb-measure-angle-unit").html(unit);
+			measureDialog.find(".mb-measure-angle").text(Math.round(displayAngle*10)/10).parent().show();
+
+		}
+		else {
+			//measureDialog.find(".mb-measure-angle").parent().hide();
+		}
+	};
+
 	var updateView = function (evt, data) {
 		updateCurrentPoint(evt, data);
 		updateCurrentDistance(evt, data);
 		updateTotalDistance(evt, data);
 		updateArea(evt, data);
 		updatePerimeter(evt, data);
+                updateAngle(evt, data);
 	};
 
 	var finishMeasure = function () {
@@ -247,6 +278,10 @@
 	};
 
 	this.activate = function () {
+                //remove measured x and y values from print dialog
+                $('input[name="measured_x_values"]').val("");
+                $('input[name="measured_y_values"]').val("");
+
 		if (o.$target.size() > 0) {
 			o.$target
 				.mb_measure(o)
@@ -278,6 +313,10 @@
 			measureDialog.dialog("close");
 		}
 		measureDialog.html(defaultHtml);
+
+                //remove measured x and y values from print dialog
+                $('input[name="measured_x_values"]').val("");
+                $('input[name="measured_y_values"]').val("");
 	};
 	
 	this.deactivate = function () {

Modified: trunk/mapbender/http/widgets/w_measure.js
===================================================================
--- trunk/mapbender/http/widgets/w_measure.js	2011-09-22 13:47:19 UTC (rev 8161)
+++ trunk/mapbender/http/widgets/w_measure.js	2011-09-22 13:52:12 UTC (rev 8162)
@@ -11,12 +11,16 @@
 		lineStrokeWidthDefault: 3,
 		lineStrokeWidthSnapped: 5,
 		pointFillSnapped: "#F90",
-		pointFillDefault: "#CCF"
+		pointFillDefault: "#CCF",
+                pointStrokeDefault: "#FC3",
+                pointStrokeSnapped: "#F30",
+                pointStrokeWidthDefault: 2
 	},
 	_measurePoints: [],
 	_map: undefined,
 	_srs: undefined,
 	_currentDistance: 0,
+        _currentAngle: 0,
 	_totalDistance: 0,
 	_polygonIsInvalid: false,
 	_currentPolygonIsInvalid: false,
@@ -175,6 +179,31 @@
 		}
 		return null;
 	},
+        _calculateAngle: function (a, b, c) {
+		if (a !== null && b !== null && c !== null) {
+                        function angleAt(a,b,c){
+                            var vectorAB = [b.x- a.x,b.y-a.y];
+                            var vectorAC = [c.x- a.x,c.y-a.y];
+                            var cosalpha = scalarProduct(vectorAB,vectorAC)/
+                                (vectorlen(vectorAB)*vectorlen(vectorAC));
+
+                            var acosalpha = Math.acos(cosalpha);
+                            return (acosalpha/Math.PI)*180;
+                        }
+
+                        function scalarProduct(va,vb){
+                                return va[0]*vb[0] + va[1]*vb[1];
+                        }
+
+                        function vectorlen(v) {
+                                return  Math.sqrt(v[0]*v[0] + v[1]*v[1]);
+                        }
+
+                        var angle = angleAt(a,b,c);
+                        return angle;
+		}
+		return null;
+	},
 	_isPointSnapped: function (p1, p2) {
 		return p1.dist(p2) <= this.options.measurePointDiameter/2;
 	},
@@ -232,14 +261,20 @@
 						circle.attr({
 							fill: drawOptions && drawOptions.highlightFirst ?
 								this.options.pointFillSnapped : this.options.pointFillDefault,
-							stroke: "none"
+                                                        "fill-opacity": this.options.opacity,
+							stroke: drawOptions.highlightFirst || drawOptions.highlightLast ?
+                                                                this.options.pointStrokeSnapped: this.options.pointStrokeDefault,
+                                                        "stroke-width": this.options.pointStrokeWidthDefault
 						});
 					}
 					else {
 						circle.attr({
 							fill: drawOptions && drawOptions.highlightLast && k === len - 2 ?
 								this.options.pointFillSnapped : this.options.pointFillDefault,
-							stroke: "none"
+                                                        "fill-opacity": this.options.opacity,
+							stroke: drawOptions.highlightFirst || drawOptions.highlightLast ?
+                                                                this.options.pointStrokeSnapped: this.options.pointStrokeDefault,
+                                                        "stroke-width": this.options.pointStrokeWidthDefault
 						});
 					}
 				}
@@ -306,9 +341,11 @@
 		if (len > 0) {
 			measureData.currentDistance = this._currentDistance;
 			this._totalDistance = this._currentDistance;
+
 			if (!firstPointSnapped) {
 				measureData.totalDistance = this._totalDistance ;
 			}
+
 			if (len > 1) {
 				this._totalDistance = this._measurePoints[len - 1].totalDistance + this._currentDistance;
 				if (!firstPointSnapped) {
@@ -320,6 +357,13 @@
 						measureData.pos.pos
 					);
 				}
+
+                                this._currentAngle = this._calculateAngle(
+                                    this._measurePoints[len-2].pos,
+                                    previousPoint,
+                                    measureData.pos.pos
+                                );
+                                measureData.currentAngle  = this._currentAngle;
 			}
 		}
 
@@ -370,6 +414,7 @@
 		if (this._totalDistance) {
 			data.pos.totalDistance = this._totalDistance;
 		}
+
 		this._trigger("pointadded", e, data);
 
 		var firstPointSnapped = this._isFirstPointSnapped(mousePos);

Modified: trunk/mapbender/resources/db/pgsql/UTF-8/update/update_2.7.2_to_2.7.3_pgsql_UTF-8.sql
===================================================================
--- trunk/mapbender/resources/db/pgsql/UTF-8/update/update_2.7.2_to_2.7.3_pgsql_UTF-8.sql	2011-09-22 13:47:19 UTC (rev 8161)
+++ trunk/mapbender/resources/db/pgsql/UTF-8/update/update_2.7.2_to_2.7.3_pgsql_UTF-8.sql	2011-09-22 13:52:12 UTC (rev 8162)
@@ -65,3 +65,34 @@
 --update gui element printPDF -> new file for jquery bgiframe js
 update gui_element set e_mb_mod = replace(e_mb_mod, '/external/bgiframe/jquery.bgiframe.min.js', '/external/jquery.bgiframe-2.1.2.js') where e_mb_mod LIKE '%jquery.bgiframe.min.js%';
 update gui_element set e_mb_mod = replace(e_mb_mod, '/external/bgiframe/jquery.bgiframe.js', '/external/jquery.bgiframe-2.1.2.js') where e_mb_mod LIKE '%jquery.bgiframe.js%';
+
+-- new element_var pointStrokeDefault for element measure_widget
+INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type)
+SELECT gui_element.fkey_gui_id,
+'measure_widget', 'pointStrokeDefault', '#FF0000', '' ,'var'
+from gui_element
+WHERE
+gui_element.e_id = 'measure_widget' AND
+gui_element.fkey_gui_id
+NOT IN (SELECT fkey_gui_id FROM gui_element_vars WHERE fkey_e_id = 'measure_widget' AND var_name = 'pointStrokeDefault');
+
+-- new element_var pointStrokeSnapped for element measure_widget
+INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type)
+SELECT gui_element.fkey_gui_id,
+'measure_widget', 'pointStrokeSnapped', '#FF0000', '' ,'var'
+from gui_element
+WHERE
+gui_element.e_id = 'measure_widget' AND
+gui_element.fkey_gui_id
+NOT IN (SELECT fkey_gui_id FROM gui_element_vars WHERE fkey_e_id = 'measure_widget' AND var_name = 'pointStrokeSnapped');
+
+-- new element_var pointStrokeWidthDefault for element measure_widget
+INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type)
+SELECT gui_element.fkey_gui_id,
+'measure_widget', 'pointStrokeWidthDefault', '2', '' ,'var'
+from gui_element
+WHERE
+gui_element.e_id = 'measure_widget' AND
+gui_element.fkey_gui_id
+NOT IN (SELECT fkey_gui_id FROM gui_element_vars WHERE fkey_e_id = 'measure_widget' AND var_name = 'pointStrokeWidthDefault');
+ 
\ No newline at end of file



More information about the Mapbender_commits mailing list