[Mapbender-commits] r5982 - trunk/mapbender/http/plugins

svn_mapbender at osgeo.org svn_mapbender at osgeo.org
Tue Apr 20 04:55:19 EDT 2010


Author: christoph
Date: 2010-04-20 04:55:19 -0400 (Tue, 20 Apr 2010)
New Revision: 5982

Modified:
   trunk/mapbender/http/plugins/mb_digitize_geometry.js
Log:


Modified: trunk/mapbender/http/plugins/mb_digitize_geometry.js
===================================================================
--- trunk/mapbender/http/plugins/mb_digitize_geometry.js	2010-04-20 08:54:58 UTC (rev 5981)
+++ trunk/mapbender/http/plugins/mb_digitize_geometry.js	2010-04-20 08:55:19 UTC (rev 5982)
@@ -2,14 +2,15 @@
 
 var DigitizeApi = function () {
 	var that = this;
-	var geom;
-	var settings = {
+	var featureCollection = new GeometryArray();
+	var defaults = {
 		geometryType: "point"
 	};
-	settings = $.extend({}, settings, options);
+	var settings = $.extend(defaults, options);
 
 	this.events = {
 		finished: new Mapbender.Event(),
+		aborted: new Mapbender.Event(),
 		added: new Mapbender.Event(),
 		mousemove: new Mapbender.Event()
 	};
@@ -20,12 +21,12 @@
 
 	var setPoint = function (e) {
 		var map = $(this).mapbender(); 
-		var pt = map.getMousePosition(e);
+		var pt = map.getPos(e);
 		var coord = map.convertPixelToReal(pt);
-		geom.get(-1).setEpsg(map.getSrs());
+		featureCollection.getGeometry(-1, -1).setEpsg(map.getSrs());
 
-		// add snapping!
-		geom.get(-1).addPoint(coord);
+		// TODO: add snapping!
+		featureCollection.getGeometry(-1, -1).addPoint(coord);
 		
 		that.events.added.trigger({
 			point: coord
@@ -43,24 +44,25 @@
 		off: options.src,
 		name: options.id,
 		go: function () {
-			geom = new MultiGeometry(settings.geometryType);
-			geom.addGeometry();
+			featureCollection.addMember(settings.geometryType);
+			featureCollection.get(-1).addGeometry();
 			
 			options.$target.bind("click", setPoint);
 			options.$target.bind("mousemove", mousemove);
 		},
 		stop: function () {
-			if (geom !== undefined) {
-				if (!geom.get(-1).close()) {
+			if (featureCollection.count() > 0) {
+				if (!featureCollection.getGeometry(-1, -1).close()) {
 					new Mapbender.Exception("Geometry could not be created.");	
+					that.events.aborted.trigger();
 				}
 				else {
-					var json = geom.toString();
+					var json = featureCollection.toString();
 					that.events.finished.trigger({
-						feature: json
+						featureCollection: json
 					});
 				}
-				geom = undefined;
+				featureCollection.empty();
 			}
 			options.$target.unbind("click", setPoint);
 			options.$target.unbind("mousemove", mousemove);
@@ -71,11 +73,11 @@
 $digitize.mapbender(new DigitizeApi());
 
 $digitize.mapbender().events.finished.register(function (obj) {
-	console.log(obj.feature);
+	console.log(obj);
 });
 $digitize.mapbender().events.mousemove.register(function (obj) {
-	console.log(obj);
+//	console.log(obj);
 });
 $digitize.mapbender().events.added.register(function (obj) {
-	console.log(obj.point);
+//	console.log(obj);
 });



More information about the Mapbender_commits mailing list