Hello all, I'm trying to set up a request from geoserver to grab a single point based on a user-input search string. I'm using OpenLayers 2.12 and geoserver 2.1.3.
>From what I understand, this should work:
found_layer = new
OpenLayers.Layer.Vector(
' Points',
{
strategies:
strategy,
displayInLayerSwitcher: false,
protocol: new
OpenLayers.Protocol.Script({
url:'http://gismgr:8080/geoserver/wfs',
callbackKey: 'format_options',
callbackPrefix: 'callback:',
params:
{
service: 'WFS',
version: '1.1.0',
srsName: 'EPSG:3857',
request: 'GetFeature',
typeName: 'MHC:Inventory_Points',
outputFormat: 'json',
//CQL_FILTER: filter
CQL_FILTER: "MHCN='"+search_string+"'",
}
}),
}
)
I've tried just about every trick I've been able to find on the internet -
multiple different strategies including the filter strategy, setting a rule
based on the CQL format, etc. All I ever get back is an empty layer.
I can get it to work with no filter, using the BBOX strategy and
filterToParams. Then if I'm already zoomed in near the point (i.e., the bbox
strategy has already loaded it) I can use getFeaturesByAttribute to zoom to and
query the point of interest. But the data layer is far too large for this to
be a good solution - I really need to be able to request just a single feature
from geoserver.
This code works, but doesn't filter to a single point:
inv_points = new OpenLayers.Layer.Vector(
' Points', {
strategies: [new
OpenLayers.Strategy.BBOX()],
//visibility: false,
minScale: 55000,
protocol: new
OpenLayers.Protocol.Script({
url:'http://gismgr:8080/geoserver/wfs',
callbackKey: 'format_options',
callbackPrefix: 'callback:',
params: {
service: 'WFS',
version: '1.1.0',
srsName: 'EPSG:3857',
request: 'GetFeature',
typeName:
'MHC:Inventory_Points',
outputFormat: 'json'
},
filterToParams:
function(filter, params) {
// example to
demonstrate BBOX serialization
//Not sure what this
does but the vector layers don't work unless they have it
if (filter.type ===
OpenLayers.Filter.Spatial.BBOX) {
params.bbox =
filter.value.toArray();
if
(filter.projection) {
params.bbox.push(filter.projection.getCode());
}
}
return params;
}
})
}
);
Is there some way that I can alter the filterToParams function to filter to a
single feature? I found this post, but parsing it for just the bits I would
need is a little beyond my skills just yet:
http://lists.osgeo.org/pipermail/openlayers-users/2011-June/020981.html
Any suggestions would be vastly appreciated ...
Kat
_______________________________________________
Users mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/openlayers-users
