> *Thank you so much Mr.Phil > > but would you please explane your idea much more ? > coz I'm new at field and need some details Well be prepared for a fair bit of work and learning then.
Assume from application logic that you have the text you want to search for and you know which layer you are searching. First you create a filter object for the search eg. a wildcard like on "myfieldname" var filter = new OpenLayers.Filter.Comparison({ type: OpenLayers.Filter.Comparison.LIKE, matchCase:false, property: "myfieldname", value: "*" + searchText + "*" }); You could use tools though to create polygon or dwithin filters instead. The logic doesnt depend on filter type. To do a WFS search, then you need a wfs_protocol object for the layer you are going to search. eg var wfsProtocol = new OpenLayers.Protocol.WFS.v1_1_0({ url: mywfsURL, geometryName: "SHAPE", featurePrefix: mywfsFeaturePrefix, featureType: mywfsFeatureType, srsName: myprojname // eg "EPSG:900913" }); URL, prefix and featuretype depend on your WFS server and layer. Ditto the name of geometry field To do a search, with wfsprotocol.read ({ filter:filter, callback: processTheQuery, scope: strategy }); strategy is whatever you want for the app. eg var strategy = new OpenLayers.Strategy.Fixed(); You might want a layer to display the selected features. eg. selectedLayer = new OpenLayers.Layer.Vector("Selected Layer", { displayOutsideMaxExtent: true, displayInLayerSwitcher: false }); You then write the callback, eg function processTheQuery(request) { // the first bit sets the value of sExt to be the a boundingbox on the features returned. // Depending on application logic, this could happen in other places in the code. if (request.data && request.data.bbox) { var b = request.data.bbox; sExt = new OpenLayers.Bounds(b[0],b[1],b[2],b[3]); }else { var fts = request.features; if (fts.length>0) { sExt = fts[0].geometry.getBounds().clone(); for(var i=1;i<fts.length;i++) { sExt.extend(fts[i].geometry.getBounds()); } } }; selectedLayer.destroyFeatures(); // get rid of values from previous call // any other process of the returned features goes here eg display attributes in a popup selectedLayer.addFeatures(request.features); map.zoomToExtent(sExt); } Notice: This email and any attachments are confidential. If received in error please destroy and immediately notify us. Do not copy or disclose the contents. _______________________________________________ Users mailing list us...@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/openlayers-users