[Mapbender-commits] r7082 - in trunk/mapbender: conf http/javascripts

svn_mapbender at osgeo.org svn_mapbender at osgeo.org
Wed Nov 3 06:51:21 EDT 2010


Author: christoph
Date: 2010-11-03 03:51:21 -0700 (Wed, 03 Nov 2010)
New Revision: 7082

Modified:
   trunk/mapbender/conf/digitize_default.conf
   trunk/mapbender/http/javascripts/mod_digitize_tab.php
Log:
https://trac.osgeo.org/mapbender/ticket/716

Modified: trunk/mapbender/conf/digitize_default.conf
===================================================================
--- trunk/mapbender/conf/digitize_default.conf	2010-11-02 11:00:11 UTC (rev 7081)
+++ trunk/mapbender/conf/digitize_default.conf	2010-11-03 10:51:21 UTC (rev 7082)
@@ -27,6 +27,7 @@
 var dotDistance = 7;
 var linepointColor = "#ffff00";
 var mod_digitize_elName = "digitize";
+var snapping = true;
 var snappingColor = "#ff0000";
 var snappingTolerance = 12;
 

Modified: trunk/mapbender/http/javascripts/mod_digitize_tab.php
===================================================================
--- trunk/mapbender/http/javascripts/mod_digitize_tab.php	2010-11-02 11:00:11 UTC (rev 7081)
+++ trunk/mapbender/http/javascripts/mod_digitize_tab.php	2010-11-03 10:51:21 UTC (rev 7082)
@@ -564,13 +564,17 @@
 					// enable snapping to all points except 
 					// the ones from this line
 					s.resetPoints();
-					s.store(d);
-					for (var j = 0; j < d.get(i).count(); j++) {
-						var currentLine = d.getGeometry(i, j);
-						for (var k = 0; k < currentLine.count(); k++) {
-							s.removePoint(currentLine.get(k));
+					if (snapping) {
+						s.store(d);
+						for (var j = 0; j < d.get(i).count(); j++) {
+							var currentLine = d.getGeometry(i, j);
+							for (var k = 0; k < currentLine.count(); k++) {
+								s.removePoint(currentLine.get(k));
+							}
 						}
 					}
+
+
 					// delete last point, will be added again below, 
 					// as the event has changed to "button_line"
 					d.getGeometry(i, -1).del(-1);
@@ -597,11 +601,15 @@
 				back: function () {
 					s.resetPoints();
 					d.del(currentGeomIndex);
-					s.store(d);
+					if (snapping) {
+						s.store(d);
+					}
 				},
 				// add the multigeometry to the geometry array
 				forward: function () {
-					s.store(d);
+					if (snapping) {
+						s.store(d);
+					}
 					parent.mb_enableButton(geometryType);
 					d.addMember(geometryType);
 					d.get(currentGeomIndex).addGeometry();
@@ -842,7 +850,9 @@
 function selectBasepoint(e){
 	if(!basepointDragActive && mod_digitizeEvent == button_move){
 		basepointDragActive = true;
-		s.store(d, d.getPoint(basepointMemberIndex, basepointGeometryIndex, basepointPointIndex));
+		if (snapping) {
+			s.store(d, d.getPoint(basepointMemberIndex, basepointGeometryIndex, basepointPointIndex));
+		}
 		// replace basepoint by transparent blob
 		basepointObject.style.width = mod_digitize_width + "px";
 		basepointObject.style.height = mod_digitize_height + "px";
@@ -1231,7 +1241,10 @@
 
 		//get a first snapping point for digitizing
 		if (mod_digitizeEvent == button_point || mod_digitizeEvent == button_line || mod_digitizeEvent == button_polygon || mod_digitizeEvent == button_insert ) {
-			s.store(d);
+			s.resetPoints();
+			if (snapping) {
+				s.store(d);
+			}
 		}
 		
 		if (mod_digitizeEvent == button_point || mod_digitizeEvent == button_line || mod_digitizeEvent == button_polygon || mod_digitizeEvent == button_insert ) {
@@ -1251,12 +1264,16 @@
 						back: function(){
 							s.resetPoints();
 							d.del(_currentGeomIndex);
-							s.store(d);
+							if (snapping) {
+								s.store(d);
+							}
 							d.getGeometry(_currentGeomIndex, -1).reopen();
 						},
 						forward: function(){
 							d.close(-1);
-							s.store(d);
+							if (snapping) {
+								s.store(d);
+							}
 							d.addMember(currentGeometryType);
 							d.get(_currentGeomIndex).addGeometry();
 							d.getGeometry(_currentGeomIndex,-1).setEpsg(currentEpsg);
@@ -1282,7 +1299,6 @@
 			}
 		}
 		else if (obj.id == button_line) {
-			//s.store(d);
 			if (d.count() > 0 && d.get(_currentGeomIndex).count() > 0 && !d.get(_currentGeomIndex).get(-1).isComplete()) {
 				if (d.get(_currentGeomIndex).geomType != parent.geomType.line) {
 //					d.close();



More information about the Mapbender_commits mailing list