Selaa lähdekoodia

fix dragging and little code cleanup

Marek Strzała 11 vuotta sitten
vanhempi
commit
bf0c76bb6d
1 muutettua tiedostoa jossa 59 lisäystä ja 56 poistoa
  1. 59 56
      SE/superedit-OPEN_LAYERS_WPS.php

+ 59 - 56
SE/superedit-OPEN_LAYERS_WPS.php

@@ -136,7 +136,7 @@ function OPEN_LAYERS_WPS() {
              background-image: url(stuff/open-layers/theme/default/img/draw_point_on.png); 
          } 
         .olControlRefresh {
-        	 background-image: url(stuff/open-layers/theme/default/img/save_features_off.png.png);
+        	 background-image: url(stuff/open-layers/theme/default/img/save_features_off.png);
          }
         .olControlZoomToPoly {
         	 background-image: url(stuff/open-layers/theme/default/img/ruler.png);
@@ -165,12 +165,6 @@ function OPEN_LAYERS_WPS() {
 
 		<div id="TreeTableMap"></div>
 
-
-  <a href="http://openlayers.org/dev/examples/wps.html">http://openlayers.org/dev/examples/wps.html</a>
-  <a href="http://openlayers.org/dev/examples/wfs-protocol-transactions.html">transaction</a>
-  <a href="http://openlayers.org/dev/examples/select-feature-multilayer.html">on click event</a>
-
-
     <script src="stuff/open-layers/OpenLayers.js"></script>
 <!--    <script src="stuff/open-layers/wps.js"></script> -->
     <script>
@@ -271,9 +265,63 @@ function OPEN_LAYERS_WPS() {
 			var toolbar = new OpenLayers.Control.EditingToolbar(_layer);
 			toolbar.addControls([new OpenLayers.Control.ModifyFeature(_layer, {
 				title: "Wybierz",
-				deferDelete: true
-			})]);
-			    
+				mode: OpenLayers.Control.ModifyFeature.DRAG | OpenLayers.Control.ModifyFeature.RESHAPE		
+			})]);					    
+			    	
+ 			var btnZoomToPoly = new OpenLayers.Control.Button({
+ 				displayClass: "olControlZoomToPoly", 
+                title: "Zbliz",
+ 				trigger: 
+ 					function() {
+ 				   		var multiPolygon = OpenLayers.Geometry.fromWKT(
+ 			                    "MULTIPOLYGON(((2072016.74395199 7234076.79293037,2072016.74395199 7234115.01144451,2072131.3994944 7234115.01144451,2072131.3994944 7234076.79293037,2072016.74395199 7234076.79293037)))"
+ 			                ).getBounds(); 		
+ 						map.zoomToExtent(multiPolygon);
+	                }
+ 			});
+ 				toolbar.addControls([btnZoomToPoly]);	
+
+			var btnRefresh = new OpenLayers.Control.Button({
+			    displayClass: "olControlRefresh", 
+	            title: "Odswiez",
+			    trigger: 
+			    	function() {
+						_layer.refresh({force:true});
+			    }
+			});
+			toolbar.addControls([btnRefresh]);
+
+			var deleteFeatureControl = new OpenLayers.Control.SelectFeature(_layer, OpenLayers.Handler.Path, {
+               clickout: false,
+               toggle: false,
+               displayClass: "olControlDelete",
+               title: "Usun"
+            });
+               
+            deleteFeatureControl.events.register("featurehighlighted", this, function(e) {
+               if (confirm('Czy na pewno chcesz usunąć ten obiekt?')) {
+                   _layer.removeFeatures([e.feature]);
+                   deleteFeatureControl.deactivate();
+               } else {
+                   deleteFeatureControl.unselect(e.feature);
+               }
+            });
+
+    		toolbar.addControls([deleteFeatureControl]);
+	
+			function report(event) {
+                OpenLayers.Console.log(event.type, event.feature ? event.feature.id : event.components);
+            }
+            _layer.events.on({
+                "beforefeaturemodified": report,
+                "featuremodified": report,
+                "afterfeaturemodified": report,
+                "vertexmodified": report,
+                "sketchmodified": report,
+                "sketchstarted": report,
+                "sketchcomplete": report
+            });
+            
 			var extent = new OpenLayers.Bounds(
 				2035059.4410645328, 7200979.560689885, 2113330.958028555, 7279251.0776539035
 			);
@@ -297,46 +345,13 @@ function OPEN_LAYERS_WPS() {
 		                            1.194328566789627, 0.5971642833948135],
 		        transitionEffect: 'resize'
 		    });
-
-			var selectFeature = new OpenLayers.Control.SelectFeature(_layer);
-
-				var dragFeature = new OpenLayers.Control.DragFeature(_layer);
-				dragFeature.handlers['drag'].stopDown = false; 
-				dragFeature.handlers['drag'].stopUp = false; 
-				dragFeature.handlers['drag'].stopClick = false; 
-				dragFeature.handlers['feature'].stopDown = false; 
-				dragFeature.handlers['feature'].stopUp = false; 
-				dragFeature.handlers['feature'].stopClick = false; 
-			    	
- 				var btnZoomToPoly = new OpenLayers.Control.Button({
- 				    displayClass: "olControlZoomToPoly", trigger: 
- 				    	function() {
- 				   			var multiPolygon = OpenLayers.Geometry.fromWKT(
- 			                    "MULTIPOLYGON(((2072016.74395199 7234076.79293037,2072016.74395199 7234115.01144451,2072131.3994944 7234115.01144451,2072131.3994944 7234076.79293037,2072016.74395199 7234076.79293037)))"
- 			                ).getBounds(); 		
- 						map.zoomToExtent(multiPolygon);
-	                	}
- 				});
- 				toolbar.addControls([btnZoomToPoly]);	
-
-			
-			var btnRefresh = new OpenLayers.Control.Button({
-			    displayClass: "olControlRefresh", trigger: 
-			    	function() {
-						_layer.refresh({force:true});
-			    }
-			});
-			toolbar.addControls([btnRefresh]);					
-				
+	
 			var map = new OpenLayers.Map(_nodeMapId, {
 				projection: new OpenLayers.Projection("EPSG:900913"),
 				displayProjection: new OpenLayers.Projection("EPSG:4326"),
 				restrictedExtent: extent,
 				controls: [
 					toolbar,
-					dragFeature,
-					selectFeature,
-				//	removeFeature,
 					new OpenLayers.Control.ZoomPanel(),
 					new OpenLayers.Control.PanPanel(),
 					new OpenLayers.Control.LayerSwitcher(),
@@ -347,18 +362,6 @@ function OPEN_LAYERS_WPS() {
 			});
 						
 			map.zoomToMaxExtent();
-				
-			selectFeature.activate();
-			dragFeature.activate();
-
-			//var removeFeature = new OpenLayers.Control.RemoveFeature(_layer//, 
-            // {onDone: function(feature) {console.log(feature)}
-             // }
- //     );
-				
-			
-		//	_layer.removeFeatures(_layer.getSelectedFuture());		
-		//	removeFuture.activate();
 
 // 			var draw = new OpenLayers.Control.DrawFeature(
 // 				    _layer, OpenLayers.Handler.Path