Maybe this well help you: http://dev.geoext.org/geoext/trunk/geoext/examples/geocoder-geonames.html
Best regards, Bart -- Bart van den Eijnden OpenGeo - http://opengeo.org Expert service straight from the developers. On Sep 27, 2012, at 4:49 PM, Gery . <gameji...@hotmail.com> wrote: > > Hello, after several days checking on google I've found no examples to keep > working on this, I'd appreciate if someone could point me to some examples, > the problem is basically that the whole GeoJSON output is passed to OL no > matter what I write in the search button, I don't get that part, I'd > appreciate some support on this, thank you. > > > > From: gameji...@hotmail.com > To: openlayers-users@lists.osgeo.org > Subject: getting GeoJSON features in my search > Date: Tue, 25 Sep 2012 22:32:12 +0000 > > > After googleing for a while and reading the OL documentation, I don't > understand well how the filterToParams in OpenLayers.HTTP protocol should > work, what I'm trying to do is to get the GeoJSON features that matches my > search using the following code: > > [code] > Ext.onReady(function() { > var map = new OpenLayers.Map(); > var osm = new OpenLayers.Layer.OSM( > "OSM" > ); > map.addLayer(osm); > > var mappanel = new GeoExt.MapPanel({ > region:"center", > height: 400, > width: 600, > map: map, > title: 'A Simple GeoExt Map' > }); > > var layerList = new GeoExt.tree.LayerContainer({ > text: 'All Layers', > layerStore: mappanel.layers, > leaf: false, > expanded: true > }); > > var layerTree = new Ext.tree.TreePanel({ > title: 'Map Layers', > maxWidth: 500, > region: "east", > collapsible: true, > collapsed: true, > root: layerList > }); > > var features = []; > var vecLayer = new OpenLayers.Layer.Vector("Results"); > var select = new GeoExt.grid.FeatureSelectionModel(); > > // define the data source > var protocol = new OpenLayers.Protocol.HTTP({ > url: > 'http://localhost/postgis_geojson.php?geotable=boreholes_point_wgs84&geomfield=geom', > /* params: { > outputFormat: "json" > }, > filterToParams: function (filter, params) { > if (filter.type === name) > return params; > },*/ > format: new OpenLayers.Format.GeoJSON({ > ignoreExtraDims: true, > 'internalProjection': new OpenLayers.Projection("EPSG:900913"), > 'externalProjection': new OpenLayers.Projection("EPSG:4326") > }) > }); > /* protocol.read({ > callback: function(r){ > console.log("received featured: " + r.features); > } > });*/ > > formPanel = new GeoExt.form.FormPanel({ > title: "Place Name Search", > height: 150, > region: "north", > protocol: protocol, > items: [{ > xtype: "textfield", > width: 200, > name: "station__like", > fieldLabel: "station <br />(use * and . for wildcards)", > allowBlank: false, > minLength: 1 > }], > listeners: { > actioncomplete: function(form, action) { > features = action.response.features; > store.loadData(features); > vm=map.getLayersByName("Results"); > if(vm.length===0){ > vecLayer = new OpenLayers.Layer.Vector("Results"); > map.addLayer(vecLayer); > store.bind(vecLayer); > select.bind(vecLayer); > } > } > }, > buttons: [{text: 'search', > handler: function(){ > formPanel.search(); > } > }], > keys: [{ key: [Ext.EventObject.ENTER], > handler: function() { > formPanel.search(); > } > }] > }); > > var cols = [ {name: 'station', type: 'string'}, > {name: 'survey', type: 'string'}, > {name: 'type', type: 'string'}, > {name: 'w_depth_m', type: 'float'}, > {name: 'comments', type: 'string'}, > {name: 'latitude', type: 'float'}, > {name: 'longitude', type: 'float'} > ]; > > var reader = new GeoExt.data.FeatureReader({},cols); > > var store = new GeoExt.data.FeatureStore({ > reader: reader, > fields: cols, > autoLoad: false > }); > // create grid panel configured with feature store > gridPanel = new Ext.grid.GridPanel({ > title: "Results", > height: 500, > region:"center", > store: store, > columns: [{ > header: "Station", > width: 100, > sortable: true, > dataIndex: "station" > }, { > header: "Survey", > width: 40, > sortable: true, > dataIndex: "survey" > }, { > header: "Type", > width: 40, > sortable: true, > dataIndex: "type" > }, { > header: "Water depth [m]", > width: 40, > sortable: true, > dataIndex: "w_depth_m" > }, { > header: "Comments", > width: 100, > align: 'right', > sortable: true, > dataIndex: "comments" > }], > sm: select > }); > > gridPanel.on('rowdblclick', function(g,rowIdx,r){ > rec = store.getAt(rowIdx); > map.setCenter( > new OpenLayers.LonLat( > rec.get('longitude'), > rec.get('latitude')), > 10); > }); > > searchPanel = new Ext.Panel({ > layout: "border", > region: "west", > collapsible: true, > width: 400, > items: [formPanel,gridPanel] > }); > mainPanel = new Ext.Panel({ > height: 600, > renderTo: "mainpanel", > layout: "border", > items: [searchPanel,mappanel,layerTree] > }); > > }); > [/code] > > thanks to Eric Lemoine I understand that the PHP script I'm using for the > postgis request (update https://gist.github.com/3763701), should allow > filtering the features I'm looking for (ie.WHERE ... LIKE ...). This script > has a "parameters" option that should give this but so far it only throws an > error. > > Sorry for probably this very simple question but I'm just starting using > GeoJSON and protocol.HTTP, I'd appreciate your support, thanks, > > Gery > > > > __________________________________________________________________________________________ > Piensa en el medio ambiente - mantenlo en la pantalla. NO lo imprimas si NO > es necesario. > Think green - keep it on the screen. Do NOT print if it is NOT necessary. > Denken Sie an die Umwelt - bewahren Sie es auf dem Bildschirm. Drucken Sie > NICHT, wenn es NICHT notwendig ist. > _______________________________________________ > Users mailing list > us...@lists.osgeo.org > http://lists.osgeo.org/mailman/listinfo/openlayers-users
_______________________________________________ Users mailing list us...@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/openlayers-users