[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