ソースを参照

Merge branch 'feature-wfs-t' of biuro.biall-net.pl:plabudda/se into feature-wfs-t

Piotr Labudda 11 年 前
コミット
ccaafb284c
1 ファイル変更55 行追加87 行削除
  1. 55 87
      SE/superedit-OPEN_LAYERS_WPS.php

+ 55 - 87
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>
@@ -254,9 +248,18 @@ function OPEN_LAYERS_WPS() {
 			});
 			priv.getCapabilities();
 
+			var style = new OpenLayers.Style();
+
+			var rule = new OpenLayers.Rule({
+			  symbolizer: {strokeWidth: 4}
+			});
+
+			style.addRules([rule]);
+			
 			_layer = new OpenLayers.Layer.Vector("Warstwa rysowania", {
 				strategies: [new OpenLayers.Strategy.BBOX()],
 				projection: new OpenLayers.Projection("EPSG:900913"),
+				styleMap: new OpenLayers.StyleMap(style),
 				protocol: new OpenLayers.Protocol.WFS({
 					version: "1.1.0",
 					srsName: "EPSG:900913",
@@ -271,9 +274,50 @@ 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]);
+	            
 			var extent = new OpenLayers.Bounds(
 				2035059.4410645328, 7200979.560689885, 2113330.958028555, 7279251.0776539035
 			);
@@ -297,46 +341,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,49 +358,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
-// 				);
-// 				map.addControl(_draw);
-// 				draw.activate();
-
-// 				OpenLayers.Event.observe(document, "keydown", function(evt) {
-// 				    var handled = false;
-// 				    switch (evt.keyCode) {
-// 				        case 90: // z
-// 				            if (evt.metaKey || evt.ctrlKey) {
-// 				                draw.undo();
-// 				                handled = true;
-// 				            }
-// 				            break;
-// 				        case 89: // y
-// 				            if (evt.metaKey || evt.ctrlKey) {
-// 				                draw.redo();
-// 				                handled = true;
-// 				            }
-// 				            break;
-// 				        case 27: // esc
-// 				            draw.cancel();
-// 				            handled = true;
-// 				            break;
-// 				    }
-// 				    if (handled) {
-// 				        OpenLayers.Event.stop(evt);
-// 				    }
-// 				});
 
 			};