Просмотр исходного кода

add zoomToPoly, Drag, Refresh, sample code for Remove

Marek Strzała 11 лет назад
Родитель
Сommit
c9f32bed7f
1 измененных файлов с 100 добавлено и 13 удалено
  1. 100 13
      SE/superedit-OPEN_LAYERS_WPS.php

+ 100 - 13
SE/superedit-OPEN_LAYERS_WPS.php

@@ -127,14 +127,20 @@ function OPEN_LAYERS_WPS() {
 
 	?>
     <link rel="stylesheet" href="stuff/open-layers/theme/default/style.css" type="text/css">
-    <link rel="stylesheet" href="stuff/open-layers/style.css" type="text/css">
+	<link rel="stylesheet" href="stuff/open-layers/style.css" type="text/css">
     <style type="text/css">
-        .olControlEditingToolbar .olControlModifyFeatureItemInactive {
-            background-image: url(stuff/open-layers/theme/default/img/draw_point_off.png);
-        }
-        .olControlEditingToolbar .olControlModifyFeatureItemActive {
-            background-image: url(stuff/open-layers/theme/default/img/draw_point_on.png);
-        }
+         .olControlEditingToolbar .olControlModifyFeatureItemInactive { 
+             background-image: url(stuff/open-layers/theme/default/img/draw_point_off.png); 
+         } 
+         .olControlEditingToolbar .olControlModifyFeatureItemActive { 
+             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);
+         }
+        .olControlZoomToPoly {
+        	 background-image: url(stuff/open-layers/theme/default/img/ruler.png);
+         }
         .olControlLayerSwitcher .layersDiv {
             border-radius: 10px 0 0 10px;
             opacity: 0.75;
@@ -193,7 +199,6 @@ function OPEN_LAYERS_WPS() {
 		var _capabilities;
 		var _process;
 		var _layer;
-
 		/*
 		 initialize the plugin.
 		 */
@@ -265,31 +270,113 @@ function OPEN_LAYERS_WPS() {
 
 			var toolbar = new OpenLayers.Control.EditingToolbar(_layer);
 			toolbar.addControls([new OpenLayers.Control.ModifyFeature(_layer, {
-				title: "Select feature"
+				title: "Wybierz",
+				deferDelete: true
 			})]);
-
+			    
 			var extent = new OpenLayers.Bounds(
 				2035059.4410645328, 7200979.560689885, 2113330.958028555, 7279251.0776539035
 			);
 
 			var gphy =  new OpenLayers.Layer.OSM("Mapa");
 
+			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(),
 					new OpenLayers.Control.ScaleLine(),
 					new OpenLayers.Control.KeyboardDefaults()
-				],
-				layers: [gphy,_layer]
+				//	new OpenLayers.Control.MousePosition()				
+				], layers: [gphy,_layer]
 			});
+						
 			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);
+// 				    }
+// 				});
+
+			};
+
+	
+		
 
 		// using OpenLayers.Format.WPSCapabilities to read the capabilities
 		priv.getCapabilities = function() {