Changeset 7945
- Timestamp:
- 09/04/08 06:54:30 (3 months ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
sandbox/camptocamp/unhcr/lib/OpenLayers/Filter/Spatial.js
r7826 r7945 21 21 * {String} type: type of spatial filter. This is one of 22 22 * - OpenLayers.Filter.Spatial.BBOX = "BBOX"; 23 * - OpenLayers.Filter.Spatial.INTERSECTS = "INTERSECTS";24 * - OpenLayers.Filter.Spatial.DWITHIN = "DWITHIN";23 * - OpenLayers.Filter.Spatial.INTERSECTS = "INTERSECTS"; 24 * - OpenLayers.Filter.Spatial.DWITHIN = "DWITHIN"; 25 25 */ 26 26 type: null, … … 71 71 72 72 /** 73 * 73 * Method: evaluate 74 * Evaluates this filter for a specific feature. 75 * 76 * Parameters: 77 * feature - {<OpenLayers.Feature.Vector>} feature to apply the filter to. 78 * 79 * Returns: 80 * {Boolean} false if the feature is filtered out, true otherwise. 74 81 */ 75 evaluate: function(){ 76 //to be implemented 82 evaluate: function(feature){ 83 var intersect = false; 84 switch(this.type) { 85 case OpenLayers.Filter.Spatial.BBOX: 86 case OpenLayers.Filter.Spatial.INTERSECTS: 87 if(feature.geometry) { 88 var geom = this.value; 89 if(this.value.CLASS_NAME == "OpenLayers.Bounds") { 90 geom = this.value.toGeometry(); 91 } 92 if(feature.geometry.intersects(geom)) { 93 intersect = true; 94 } 95 } 96 break; 97 default: 98 OpenLayers.Console.error( 99 OpenLayers.i18n("filterEvaluateNotImplemented")); 100 break; 101 } 102 return intersect; 77 103 }, 78 104 … … 82 108 83 109 OpenLayers.Filter.Spatial.BBOX = "BBOX"; 84 OpenLayers.Filter.Spatial.INTERSECTS = "INTERSECTS";85 OpenLayers.Filter.Spatial.DWITHIN = "DWITHIN";110 OpenLayers.Filter.Spatial.INTERSECTS = "INTERSECTS"; 111 OpenLayers.Filter.Spatial.DWITHIN = "DWITHIN"; sandbox/camptocamp/unhcr/tests/Filter/Spatial.html
r7826 r7945 24 24 25 25 function test_Spatial_evaluate(t) { 26 t.plan(0); 27 26 t.plan(4); 27 28 var filer, feature, res, geom, bounds; 29 30 bounds = new OpenLayers.Bounds(0, 0, 10, 10); 31 filter = new OpenLayers.Filter.Spatial({ 32 type: OpenLayers.Filter.Spatial.BBOX, 33 value: bounds 34 }); 35 36 // 1 test 37 feature = new OpenLayers.Feature.Vector( 38 new OpenLayers.Geometry.Point(2, 2)); 39 res = filter.evaluate(feature); 40 t.eq(res, true, 41 "evaluates returns correct value when feature intersects bounds"); 42 43 // 1 test 44 feature = new OpenLayers.Feature.Vector( 45 new OpenLayers.Geometry.Point(20, 20)); 46 res = filter.evaluate(feature); 47 t.eq(res, false, 48 "evaluates returns correct value when feature does not intersect bounds"); 49 50 // 1 test 51 geom = bounds.toGeometry(); 52 feature = new OpenLayers.Feature.Vector( 53 new OpenLayers.Geometry.Point(2, 2)); 54 filter = new OpenLayers.Filter.Spatial({ 55 type: OpenLayers.Filter.Spatial.INTERSECTS, 56 value: geom 57 }); 58 res = filter.evaluate(feature); 59 t.eq(res, true, 60 "evaluates returns correct value when feature intersects bounds"); 61 62 // 1 test 63 geom = bounds.toGeometry(); 64 feature = new OpenLayers.Feature.Vector( 65 new OpenLayers.Geometry.Point(20, 20)); 66 filter = new OpenLayers.Filter.Spatial({ 67 type: OpenLayers.Filter.Spatial.INTERSECTS, 68 value: geom 69 }); 70 res = filter.evaluate(feature); 71 t.eq(res, false, 72 "evaluates returns correct value when feature does not intersect bounds"); 28 73 } 29 74 </script>
