[OpenLayers-Commits] r12087 - trunk/openlayers/examples

commits-20090109 at openlayers.org commits-20090109 at openlayers.org
Wed Jun 15 16:55:09 EDT 2011


Author: tschaub
Date: 2011-06-15 13:55:08 -0700 (Wed, 15 Jun 2011)
New Revision: 12087

Added:
   trunk/openlayers/examples/wfs-spatial-filter.html
   trunk/openlayers/examples/wfs-spatial-filter.js
Log:
Adding example demonstrating the use of a spatial filter with the WFS protocol.

Added: trunk/openlayers/examples/wfs-spatial-filter.html
===================================================================
--- trunk/openlayers/examples/wfs-spatial-filter.html	                        (rev 0)
+++ trunk/openlayers/examples/wfs-spatial-filter.html	2011-06-15 20:55:08 UTC (rev 12087)
@@ -0,0 +1,37 @@
+<!DOCTYPE html>
+<html>
+    <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <meta name="apple-mobile-web-app-capable" content="yes">
+        <title>OpenLayers WFS Protocol with Filter</title>
+        <link rel="stylesheet" href="../theme/default/style.css" type="text/css">
+        <link rel="stylesheet" href="style.css" type="text/css">
+        <script src="../lib/OpenLayers.js"></script>
+    </head>
+    <body>
+        <h1 id="title">WFS Protocol and Filter</h1>
+        <div id="tags">
+            filter, wfs, spatial
+        </div>
+        <p id="shortdesc">
+            Demonstrates the use of a spatial filter in making GetFeature requests using the WFS protocol.
+        </p>
+        <div id="map" class="smallmap"></div>
+        <div id="docs">
+            <p>
+                If a vector layer has a filter and the protocol supports server-side filtering,
+                the filter will be serialized in requests for features.  The WFS protocol can be
+                used with a vector layer to serialize a filter using OGC Filter Encoding.
+            </p><p>
+                This example has a draw control that is always active.  When you draw a polygon
+                on the map, the filter for the main vector layer will be updated, and features
+                that intersect your drawn polygon will be requested.
+            </p><p>
+                See the <a href="wfs-spatial-filter.js" target="_blank">source</a> 
+                for details on how this is done.
+            </p>
+        </div>
+        <script src="wfs-spatial-filter.js"></script>
+    </body>
+</html>

Added: trunk/openlayers/examples/wfs-spatial-filter.js
===================================================================
--- trunk/openlayers/examples/wfs-spatial-filter.js	                        (rev 0)
+++ trunk/openlayers/examples/wfs-spatial-filter.js	2011-06-15 20:55:08 UTC (rev 12087)
@@ -0,0 +1,36 @@
+OpenLayers.ProxyHost= "/proxy?url=";
+var map = new OpenLayers.Map('map');
+var wms = new OpenLayers.Layer.WMS(
+    "OpenLayers WMS", "http://vmap0.tiles.osgeo.org/wms/vmap0",
+    {layers: "basic"}
+);
+
+var layer = new OpenLayers.Layer.Vector("WFS", {
+    strategies: [new OpenLayers.Strategy.BBOX()],
+    protocol: new OpenLayers.Protocol.WFS({
+        url:  "http://demo.opengeo.org/geoserver/wfs",
+        featureType: "tasmania_roads",
+        featureNS: "http://www.openplans.org/topp"
+    })
+});
+
+map.addLayers([wms, layer]);
+map.setCenter(new OpenLayers.LonLat(146.7, -41.8), 6);
+
+var drawings = new OpenLayers.Layer.Vector();
+map.addLayer(drawings);
+var draw = new OpenLayers.Control.DrawFeature(drawings, OpenLayers.Handler.Polygon);
+map.addControl(draw);
+draw.activate();
+
+drawings.events.on({
+    beforefeatureadded: function(event) {
+        var geometry = event.feature.geometry;
+        layer.filter = new OpenLayers.Filter.Spatial({
+            type: OpenLayers.Filter.Spatial.INTERSECTS,
+            value: event.feature.geometry
+        });
+        layer.refresh({force: true});
+        return false;
+    }
+});



More information about the Commits mailing list