[OpenLayers-Users] Slow WFS filter layer

Paul Meems bontepaarden at gmail.com
Mon Jul 2 13:17:29 PDT 2012


Thanks Ivo for your input.

I use a WFS layer because the user can change the attributes using a form
and then the colors of the features need to be changed.
I understood I need a WFS layer to do so.

Can I change the colors of the features (based on Terugverdientijd = ROI)
using your approach?
If so I can try that.

Thanks,

Paul


2012/7/2 Ivo Limmen <ivo at limmen.org>

> Paul,
>
> Looked at your site and I do not really understand why you would want to
> use a WFS layer to zoom in on an adres. I would simply:
>
>    1. create a filter based on the input of the user.
>    2. create WFS protocol
>    3. add a callback on the WFS callback and zoom to the extend of the
>    returned features.
>
> But that is just my 2 euro cents.
>
> Ivo
>
> On Mon, Jul 2, 2012 at 9:53 PM, Paul Meems <bontepaarden at gmail.com> wrote:
>
>> Hi Milo,
>>
>> Thanks for the quick reply.
>> 1. Yes, GeoServer and PostGIS are on the same server (dedicated server @
>> RackSpace)
>> 2. What is enough RAM? I now have 2GB, with only Ubuntu, GeoServer and
>> PostGIS
>> 3. My dataset has 67k features. I can try tomorrow with a smaller dataset.
>> 4. I'm using FF v13 with FireBug.
>> 5. I'll also try the empty string as initial filter.
>>
>> Here's a live sample:
>> http://demo.smartdakscan.nl/zonnekaart.php (in Dutch).
>>
>> Thanks,
>>
>> Paul
>>
>>
>> 2012/7/2 Milo van der Linden <milo at dogodigi.net>
>>
>>> I am doing something similar, but my initial filter is an empty string
>>> "" that gets set to a valid string later on. I do not use an id, but use
>>> the filter to limit results to a viewers organizational unit. I have seen
>>> over a hunderd features displayed in less then a second. The underlying
>>> table is oracle spatial with less then 10k records.
>>>
>>> To dig in deeper:
>>> 1. Are geoserver and your db on the same machine?
>>> 2. Do you have enough RAM?
>>> 3. Did you test smaller datasets which generate the same result and are
>>> they faster?
>>> 4. What browser are you using?
>>> On Jul 2, 2012 9:18 PM, "Paul Meems" <bontepaarden at gmail.com> wrote:
>>>
>>>> I use GeoServer and PostGIS and OpenLayers to show the data.
>>>> For one page I'm using a WFS layer and I filter on address.
>>>>
>>>> The user first need to select an address. This is done with an AJAX
>>>> call and the adresID and the location (X, Y) are returned.
>>>> I zoom to that location and change my filter.
>>>> This is my initial set-up of my layer, an addressID of -1 doesn't
>>>> exists so it starts with just the baselayer:
>>>>
>>>> var myLayer = new OpenLayers.Layer.Vector("tmp", {   displayInLayerSwitcher: true,  strategies: [new OpenLayers.Strategy.BBOX()],  filter: new OpenLayers.Filter.Comparison({           type: OpenLayers.Filter.Comparison.EQUAL_TO,          property: "_adresid",          value: "-1"}),  styleMap: new OpenLayers.StyleMap(),  protocol: new OpenLayers.Protocol.WFS({     url: ".../wfs",    featureType: "myName",    srsName: "EPSG:3857",    geometryName: "geomgoogle"  })});
>>>>
>>>> But this call takes long because it tries to find the -1 value.
>>>> *Q1*: How can I add a WFS layer without data?
>>>>
>>>> And this is the method I call after the user selects an address:
>>>>
>>>> function changeFilter(newValue, x, y){   myLayer.destroyFeatures();  filter = new OpenLayers.Filter.Logical({     type: OpenLayers.Filter.Logical.AND,     filters: [       new OpenLayers.Filter.Comparison({           type: OpenLayers.Filter.Comparison.EQUAL_TO,           property: "_adresid",           value: newValue       }),       new OpenLayers.Filter.Spatial({           type: OpenLayers.Filter.Spatial.BBOX,           value: new OpenLayers.Bounds(x-50, y-50, x+50, y+50),           projection: "EPSG:3857"       })   ] });   myLayer.filter = filter;  myLayer.refresh({force: true});
>>>>   showAttributes();
>>>> }
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> This is working great, but is does take a very long time: about 7-10
>>>> seconds.
>>>> The result are just a few features: 3-10
>>>>
>>>> Of course I have an index in the database on _adresid and a spatial
>>>> index.
>>>>
>>>> *Q2*: What else can I do to speed up this filter?
>>>>
>>>> Thanks,
>>>>
>>>> Paul
>>>>
>>>> _______________________________________________
>>>> Users mailing list
>>>> Users at lists.osgeo.org
>>>> http://lists.osgeo.org/mailman/listinfo/openlayers-users
>>>>
>>>>
>>
>> _______________________________________________
>> Users mailing list
>> Users at lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/openlayers-users
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/openlayers-users/attachments/20120702/cb3120c6/attachment.html>


More information about the Users mailing list