[Mapbender-commits] r3142 - in trunk/mapbender: conf http/css http/javascripts http/php resources/db/update

svn_mapbender at osgeo.org svn_mapbender at osgeo.org
Wed Oct 8 05:31:57 EDT 2008


Author: christoph
Date: 2008-10-08 05:31:56 -0400 (Wed, 08 Oct 2008)
New Revision: 3142

Modified:
   trunk/mapbender/conf/digitize_default.conf
   trunk/mapbender/http/css/digitize.css
   trunk/mapbender/http/javascripts/mod_digitize_tab.php
   trunk/mapbender/http/php/mod_digitize_differencePolygon.php
   trunk/mapbender/http/php/mod_digitize_mergePolygon.php
   trunk/mapbender/http/php/mod_digitize_messages.php
   trunk/mapbender/http/php/mod_digitize_splitPolygon.php
   trunk/mapbender/resources/db/update/update_2.6.sql
Log:
http://trac.osgeo.org/mapbender/ticket/305
http://trac.osgeo.org/mapbender/ticket/306

Modified: trunk/mapbender/conf/digitize_default.conf
===================================================================
--- trunk/mapbender/conf/digitize_default.conf	2008-10-07 15:19:10 UTC (rev 3141)
+++ trunk/mapbender/conf/digitize_default.conf	2008-10-08 09:31:56 UTC (rev 3142)
@@ -4,14 +4,15 @@
 // * Do not change the ID (first entry)!!
 
 addButtonDig("Point", 1, "point_off.png", "", "", 0, 0);
-addButtonDig("Line", 1, "line_off.png", "", "", 25, 0);
-addButtonDig("Polygon", 1, "polygon_off.png", "", "", 50, 0);
-addButtonDig("dragBasePoint", 1, "move_node_off.png", "", "", 75, 0);
-addButtonDig("setBasePoint", 1, "new_node_off.png", "", "", 100, 0);
-addButtonDig("delBasePoint", 1, "delete_node_off.png", "", "", 125, 0);
-addButtonDig("clear", 1, "del_off.png", "", "", 150, 0);
-addButtonDig("digitizeSplit", 1, "splitPolygon_off.png", "", "", 175, 0);
-addButtonDig("digitizeMerge", 1, "mergePolygons_off.png", "", "", 200, 0);
+addButtonDig("Line", 1, "line_off.png", "", "", 28, 0);
+addButtonDig("Polygon", 1, "polygon_off.png", "", "", 56, 0);
+addButtonDig("dragBasePoint", 1, "move_node_off.png", "", "", 84, 0);
+addButtonDig("setBasePoint", 1, "new_node_off.png", "", "", 112, 0);
+addButtonDig("delBasePoint", 1, "delete_node_off.png", "", "", 140, 0);
+addButtonDig("clear", 1, "del_off.png", "", "", 168, 0);
+addButtonDig("digitizeDifference", 1, "splitPolygon_off.png", "", "", 0, 28);
+addButtonDig("digitizeSplit", 1, "splitPolygon_off.png", "", "", 28, 28);
+addButtonDig("digitizeMerge", 1, "mergePolygons_off.png", "", "", 56, 28);
 
 //definition of directory of digitize buttons
 buttonDig_imgdir = "../img/button_digitize/";
@@ -21,8 +22,6 @@
 var buttonDig_removeDb_src = "geomRemoveDb.png";
 
 var dotDistance = 7;
-var geomList_x = 20;
-var geomList_y = 50;
 var linepointColor = "#ffff00";
 var mod_digitize_elName = "digitize";
 var snappingColor = "#ff0000";

Modified: trunk/mapbender/http/css/digitize.css
===================================================================
--- trunk/mapbender/http/css/digitize.css	2008-10-07 15:19:10 UTC (rev 3141)
+++ trunk/mapbender/http/css/digitize.css	2008-10-08 09:31:56 UTC (rev 3142)
@@ -24,11 +24,4 @@
 	position:absolute;
 	left:0px;
 	top:0px;
-}
-
-.label{
-	position: absolute;
-	left:0px;
-	top:0px;
-	font-size:12px;
 }
\ No newline at end of file

Modified: trunk/mapbender/http/javascripts/mod_digitize_tab.php
===================================================================
--- trunk/mapbender/http/javascripts/mod_digitize_tab.php	2008-10-07 15:19:10 UTC (rev 3141)
+++ trunk/mapbender/http/javascripts/mod_digitize_tab.php	2008-10-08 09:31:56 UTC (rev 3142)
@@ -69,7 +69,6 @@
 ?>
 
 var wfsWindow;	
-var dwin = null;
 var wfsConf = [];
 var d;
 var mod_digitize_width;
@@ -596,6 +595,30 @@
 						currentTitle = msgObj.buttonLabelClearListOff;
 					}
 					break;
+				case "digitizeSplit":
+					if (currentStatus == 1) {
+						currentTitle = msgObj.buttonLabelSplitOn;
+					}
+					else {
+						currentTitle = msgObj.buttonLabelSplitOff;
+					}
+					break;
+				case "digitizeMerge":
+					if (currentStatus == 1) {
+						currentTitle = msgObj.buttonLabelMergeOn;
+					}
+					else {
+						currentTitle = msgObj.buttonLabelMergeOff;
+					}
+					break;
+				case "digitizeDifference":
+					if (currentStatus == 1) {
+						currentTitle = msgObj.buttonLabelDifferenceOn;
+					}
+					else {
+						currentTitle = msgObj.buttonLabelDifferenceOff;
+					}
+					break;
 			}
 			currentButton.title = currentTitle;
 		}
@@ -1078,7 +1101,7 @@
 }
 
 function updateListOfGeometries(){
-	var listOfGeom = "<div id='geometryTable' style='position:absolute; top:"+geomList_y+"px; left:"+geomList_x+"px;'><ul>";
+	var listOfGeom = "<ul>";
 	if (d.count() > 0) {
 		wfsConf = parent.get_complete_wfs_conf();
 		for (var i = 0 ; i < d.count(); i ++) {
@@ -1109,7 +1132,7 @@
 				if (isValidWfsConfIndex(wfsConf, d.get(i).wfs_conf)) {
 					listOfGeom += "<img src = '"+buttonDig_imgdir+buttonDig_removeDb_src+"' title='"+msgObj.buttonDig_removeDb_title+"' onclick=\"var deltrans = confirm('"+msgObj.messageConfirmDeleteGeomFromDb+"');if (deltrans) dbGeom('delete', "+i+")\">";
 				}
-				listOfGeom += "<div class='searchResults' onmouseover='parent.mb_wfs_perform(\"over\",d.get("+i+"));' ";
+				listOfGeom += "<div class='digitizeGeometryListItem' onmouseover='parent.mb_wfs_perform(\"over\",d.get("+i+"));' ";
 				listOfGeom += " onmouseout='parent.mb_wfs_perform(\"out\",d.get("+i+"))' ";
 				listOfGeom += " onclick='parent.mb_wfs_perform(\"click\",d.get("+i+"));' ";
 				var geomName = getName(d.get(i)); 
@@ -1138,7 +1161,7 @@
 						d.get(i).get(j).innerRings.count() > 0)) {
 						listOfGeom += "<li>";
 						listOfGeom += "<img src = '"+buttonDig_imgdir+buttonDig_remove_src+"' title='"+msgObj.buttonDig_remove_title+"' onclick='parent.mb_disableThisButton(mod_digitizeEvent);d.get("+i+").del(" + j + ");executeDigitizeSubFunctions();'>";
-						listOfGeom += "<div class='searchResults' onmouseover='parent.mb_wfs_perform(\"over\",d.get("+i+").get("+j+"));' ";
+						listOfGeom += "<div class='digitizeGeometryListItem' onmouseover='parent.mb_wfs_perform(\"over\",d.get("+i+").get("+j+"));' ";
 						listOfGeom += " onmouseout='parent.mb_wfs_perform(\"out\",d.get("+i+").get("+j+"))' ";
 						listOfGeom += " onclick='parent.mb_wfs_perform(\"click\",d.get("+i+").get("+j+"));' ";
 						listOfGeom += ">" + currentGeomType + "#" + (j+1) +"</div></li>";
@@ -1151,7 +1174,7 @@
 							var currentRing = d.get(i).get(j).innerRings.get(k);
 							listOfGeom += "<li>";
 							listOfGeom += "<img src = '"+buttonDig_imgdir+buttonDig_remove_src+"' title='"+msgObj.buttonDig_remove_title+"' onclick='parent.mb_disableThisButton(mod_digitizeEvent);d.get("+i+").get(" + j + ").innerRings.del(" + k + ");executeDigitizeSubFunctions();'>";
-							listOfGeom += "<div class='searchResults' onmouseover='parent.mb_wfs_perform(\"over\",d.getGeometry("+i+","+j+").innerRings.get(" + k + "));' ";
+							listOfGeom += "<div class='digitizeGeometryListItem' onmouseover='parent.mb_wfs_perform(\"over\",d.getGeometry("+i+","+j+").innerRings.get(" + k + "));' ";
 							listOfGeom += " onmouseout='parent.mb_wfs_perform(\"out\",d.getGeometry("+i+","+j+").innerRings.get(" + k + "))' ";
 							listOfGeom += " onclick='parent.mb_wfs_perform(\"click\",d.getGeometry("+i+","+j+").innerRings.get(" + k + "));' ";
 							listOfGeom += ">inner ring #" + (k+1) +"</div></li>";
@@ -1165,7 +1188,7 @@
 			}
 		}
 	}
-	listOfGeom += "<ul></div>";
+	listOfGeom += "<ul>";
 	parent.writeTag(mod_digitize_elName,"listOfGeometries",listOfGeom);
 }
 // --- display (end) -----------------------------------------------------------------------------------------
@@ -1732,7 +1755,7 @@
 	</script>
 	</head>
 	<body onload="registerFunctions();displayButtons();">
-		<table cellpadding='0' cellspacing='0' align = center><tr><td><div id='digButtons'></div></td></tr></table>
-		<div id = 'listOfGeometries'></div>
+		<div id='digButtons'></div>
+		<div id='listOfGeometries' class='digitizeGeometryList'></div>
 	</body>
 </html>

Modified: trunk/mapbender/http/php/mod_digitize_differencePolygon.php
===================================================================
--- trunk/mapbender/http/php/mod_digitize_differencePolygon.php	2008-10-07 15:19:10 UTC (rev 3141)
+++ trunk/mapbender/http/php/mod_digitize_differencePolygon.php	2008-10-08 09:31:56 UTC (rev 3142)
@@ -28,10 +28,13 @@
 
 $floatPattern = "-?\d+(\.\d+)?";
 $pointPattern = $floatPattern . " " . $floatPattern;
-$polygonPattern = "\(" . $pointPattern . "(, " . $pointPattern . ")*\)";
-$multiPolygonPattern = "(MULTI)?POLYGON \(" . $polygonPattern . "(, " . $polygonPattern . ")*\)";
+$ringPattern = "\(" . $pointPattern . "(, " . $pointPattern . ")*\)";
+$polygonPattern = "\(" . $ringPattern . "(,( )*" . $ringPattern . ")*\)";
+$singlePolygonPattern = "POLYGON( )*" . $polygonPattern;
+$multiPolygonPattern = "MULTIPOLYGON( )\(" . $polygonPattern . "(,( )*" . $polygonPattern . ")*\)";$pattern = "/" . $multiPolygonPattern . "(;" . $multiPolygonPattern . ")+/";
+$anyPolygonPattern = "(" . $singlePolygonPattern . ")|(" . $multiPolygonPattern . ")";
 
-$pattern = "/" . $polygonPattern . "/";
+$pattern = "/" . $anyPolygonPattern . "/";
 if (!preg_match($pattern, $polygon1Text)) {
 	echo "Polygon 1 not a polygon.";
 	die();

Modified: trunk/mapbender/http/php/mod_digitize_mergePolygon.php
===================================================================
--- trunk/mapbender/http/php/mod_digitize_mergePolygon.php	2008-10-07 15:19:10 UTC (rev 3141)
+++ trunk/mapbender/http/php/mod_digitize_mergePolygon.php	2008-10-08 09:31:56 UTC (rev 3142)
@@ -26,8 +26,13 @@
 
 $floatPattern = "-?\d+(\.\d+)?";
 $pointPattern = $floatPattern . " " . $floatPattern;
-$polygonPattern = "POLYGON \(\(" . $pointPattern . "(, " . $pointPattern . ")*\)\)";
-$pattern = "/" . $polygonPattern . "(;" . $polygonPattern . ")+/";
+$ringPattern = "\(" . $pointPattern . "(, " . $pointPattern . ")*\)";
+$polygonPattern = "\(" . $ringPattern . "(,( )*" . $ringPattern . ")*\)";
+$singlePolygonPattern = "POLYGON( )*" . $polygonPattern;
+$multiPolygonPattern = "MULTIPOLYGON( )\(" . $polygonPattern . "(,( )*" . $polygonPattern . ")*\)";$pattern = "/" . $multiPolygonPattern . "(;" . $multiPolygonPattern . ")+/";
+$anyPolygonPattern = "(" . $singlePolygonPattern . ")|(" . $multiPolygonPattern . ")";
+$pattern = "/" . $anyPolygonPattern . "(;" . $anyPolygonPattern . ")*/";
+
 if (!preg_match($pattern, $polygonList)) {
 	echo "not a polygon.";
 	die();

Modified: trunk/mapbender/http/php/mod_digitize_messages.php
===================================================================
--- trunk/mapbender/http/php/mod_digitize_messages.php	2008-10-07 15:19:10 UTC (rev 3141)
+++ trunk/mapbender/http/php/mod_digitize_messages.php	2008-10-08 09:31:56 UTC (rev 3142)
@@ -62,10 +62,12 @@
 $msg_obj["buttonLabelDeleteBasepointOn"] = _mb("Delete basepoint");
 $msg_obj["buttonLabelClearListOff"] = _mb("clear list of geometries");
 $msg_obj["buttonLabelClearListOn"] = _mb("clear list of geometries");
-$msg_obj["buttonLabelMergeOff"] = _mb("Merge geometries");
-$msg_obj["buttonLabelMergeOn"] = _mb("Merge geometries");
-$msg_obj["buttonLabelSplitOff"] = _mb("Split geometries");
-$msg_obj["buttonLabelSplitOn"] = _mb("Split geometries");
+$msg_obj["buttonLabelMergeOff"] = _mb("Merge two polygons into a single polygon (will be added to the geometry list)");
+$msg_obj["buttonLabelMergeOn"] = _mb("Merge two polygons into a single polygon (will be added to the geometry list)");
+$msg_obj["buttonLabelSplitOff"] = _mb("Split a polygon by a line (the new polygons will be added to the geometry list)");
+$msg_obj["buttonLabelSplitOn"] = _mb("Split a polygon by a line (the new polygons will be added to the geometry list)");
+$msg_obj["buttonLabelDifferenceOff"] = _mb("Combine two polygons (to create en- and exclave or to compute the difference)");
+$msg_obj["buttonLabelDifferenceOn"] = _mb("Split geometries");
 $msg_obj["buttonDig_wfs_title"] = _mb("save / update / delete");
 $msg_obj["buttonDig_remove_title"] = _mb("remove from workspace");
 $msg_obj["buttonDig_removeDb_title"] = _mb("remove from database");

Modified: trunk/mapbender/http/php/mod_digitize_splitPolygon.php
===================================================================
--- trunk/mapbender/http/php/mod_digitize_splitPolygon.php	2008-10-07 15:19:10 UTC (rev 3141)
+++ trunk/mapbender/http/php/mod_digitize_splitPolygon.php	2008-10-08 09:31:56 UTC (rev 3142)
@@ -28,10 +28,14 @@
 
 $floatPattern = "-?\d+(\.\d+)?";
 $pointPattern = $floatPattern . " " . $floatPattern;
-$polygonPattern = "POLYGON \(\(" . $pointPattern . "(, " . $pointPattern . ")*\)\)";
-$linePattern = "LINESTRING \(" . $pointPattern . ", " . $pointPattern . "\)";
+$ringPattern = "\(" . $pointPattern . "(, " . $pointPattern . ")*\)";
+$polygonPattern = "\(" . $ringPattern . "(,( )*" . $ringPattern . ")*\)";
+$singlePolygonPattern = "POLYGON( )*" . $polygonPattern;
+$multiPolygonPattern = "MULTIPOLYGON( )\(" . $polygonPattern . "(,( )*" . $polygonPattern . ")*\)";$pattern = "/" . $multiPolygonPattern . "(;" . $multiPolygonPattern . ")+/";
+$anyPolygonPattern = "(" . $singlePolygonPattern . ")|(" . $multiPolygonPattern . ")";
+$linePattern = "LINESTRING \(" . $pointPattern . ",( )*" . $pointPattern . "(,( )*" . $pointPattern . ")*\)";
 
-$pattern = "/" . $polygonPattern . "/";
+$pattern = "/" . $anyPolygonPattern . "/";
 if (!preg_match($pattern, $polygonText)) {
 	echo "not a polygon.";
 	die();
@@ -44,7 +48,7 @@
 }
 
 
-$sql = "SELECT astext(geom) FROM dump ((" . 
+$sql = "SELECT astext(multi(geom)) FROM dump ((" . 
 	"SELECT polygonize(geomunion(boundary('" . 
 	$polygonText . "'::geometry),'" . 
 	$lineText . "'::geometry))" . 

Modified: trunk/mapbender/resources/db/update/update_2.6.sql
===================================================================
--- trunk/mapbender/resources/db/update/update_2.6.sql	2008-10-07 15:19:10 UTC (rev 3141)
+++ trunk/mapbender/resources/db/update/update_2.6.sql	2008-10-08 09:31:56 UTC (rev 3142)
@@ -16,20 +16,26 @@
 INSERT INTO gui_element_vars(fkey_gui_id, fkey_e_id, var_name, var_value, context, var_type) VALUES('gui_digitize', 'gazetteerWFS', 'wfs_spatial_request_conf_filename', 'wfs_additional_spatial_search.conf', 'location and name of the WFS configuration file for spatialRequest' ,'php_var');
 
 --add style class to element var text css of element digitize in gui_digitize
-UPDATE gui_element_vars SET var_value = 'body{
- font-family: Arial, Helvetica, sans-serif;
- font-size : 12px;
- color: #ff00ff;
- background-color: #ffffff;
- margin-top: 0px;
- margin-left: 0px;
- }
- .button{
- height: 18px;
- width: 32px;
- }
- .searchResults{
+UPDATE gui_element_vars SET var_value = '
+.digitizeGeometryList{
+	position:absolute;
+	top:50px;
+	left:0px;
+}
+
+.digitizeGeometryListItem{
 	color:#000000;
 	font-size:10px;
 }
-' WHERE fkey_gui_id= 'gui_digitize' AND fkey_e_id='digitize' AND var_name='text css';
\ No newline at end of file
+body{
+	font-family: Arial, Helvetica, sans-serif;
+	font-size : 12px;
+	color: #ff00ff;
+	background-color: #ffffff;
+	margin-top: 0px;
+	margin-left: 0px;
+}
+.button{
+	height: 18px;
+	width: 32px;
+}' WHERE fkey_e_id = 'digitize' AND var_name = 'text css';



More information about the Mapbender_commits mailing list