[Mapbender-commits] r6071 - trunk/mapbender/http/javascripts

svn_mapbender at osgeo.org svn_mapbender at osgeo.org
Tue May 4 07:11:35 EDT 2010


Author: verenadiewald
Date: 2010-05-04 07:11:34 -0400 (Tue, 04 May 2010)
New Revision: 6071

Modified:
   trunk/mapbender/http/javascripts/mod_digitize_tab.php
Log:
delete old line segment when merging two lines into a single line

Modified: trunk/mapbender/http/javascripts/mod_digitize_tab.php
===================================================================
--- trunk/mapbender/http/javascripts/mod_digitize_tab.php	2010-05-04 08:53:23 UTC (rev 6070)
+++ trunk/mapbender/http/javascripts/mod_digitize_tab.php	2010-05-04 11:11:34 UTC (rev 6071)
@@ -1,4 +1,9 @@
 <?php
+# License:
+# Copyright (c) 2009, Open Source Geospatial Foundation
+# This program is dual licensed under the GNU General Public License 
+# and Simplified BSD license.  
+# http://svn.osgeo.org/mapbender/trunk/mapbender/license/license.txt
 
 require_once(dirname(__FILE__) . "/../php/mb_validateSession.php");
 
@@ -1451,8 +1456,8 @@
 					parent.mb_disableThisButton(mod_digitizeEvent);
 					return false;
 				}
-				var wfsConfId = d.get(0).wfs_conf;
-				var wfsProperties = d.get(0).e;
+				var wfsConfId = d.get(-1).wfs_conf;
+				var wfsProperties = d.get(-1).e;
 				var mapIndex = parent.getMapObjIndexByName(mod_digitize_target);
 				
 				d.importGeometryFromText(line, parent.mb_mapObj[mapIndex].epsg);
@@ -1460,12 +1465,48 @@
 				for (var i = 0; i < wfsProperties.count(); i++) {
 					d.get(-1).e.setElement(wfsProperties.getName(i), wfsProperties.getValue(i));
 				}
+
+				var len = d.count();
+				var obsoleteFeatureArray = [];
+				wfsConf = parent.get_complete_wfs_conf();
+				for (var i = 0; i < len-2; i++) {
+					if(typeof wfsConf == 'object' && typeof wfsConf[d.get(i).wfs_conf] == 'object') {	
+						var featureCollection = new GeometryArray();
+						featureCollection.importGeoJSON(d.get(i).toString());
+						obsoleteFeatureArray.push({
+							geoJson : featureCollection.toString(),
+							wfsConfId : wfsConf[d.get(i).wfs_conf]['wfs_conf_id']    
+						});
+					}
+				}
+				var mergedFeatureId = d.get(-1).e.getElementValueByName("fid");
+				if(mergedFeatureId !== false) {
+					parent.Mapbender.modules.digitize.events.afterWfs.register(function (obj) {
+						for(var j = 0; j < obsoleteFeatureArray.length; j++) {
+							if(obj.type == 'update' && obj.feature.e.getElementValueByName("fid") == mergedFeatureId) {
+								parent.mb_ajax_post(
+									"../extensions/geom2wfst.php", 
+									{
+										'geoJson' : obsoleteFeatureArray[j].geoJson,
+										'method' : "delete",
+										'wfs_conf_id' : obsoleteFeatureArray[j].wfsConfId
+									}, 
+									function(json,status){
+										parent.zoom(mod_digitize_target, true, 0.999);				
+									}
+								);	
+							}
+						}	
+					});
+				}
 				
 				// remove the original lines
 				var len = d.count();
+				//for (var i = len-1 ; i >= 1; i--) {
 				for (var i = 0; i < len-1; i++) {
 					d.del(0);
 				}
+				
 				parent.mb_disableThisButton(mod_digitizeEvent);
 				
 			});



More information about the Mapbender_commits mailing list