Paul,<div><br></div><div>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:<div><ol><li>create a filter based on the input of the user. </li><li>
create WFS protocol</li><li>add a callback on the WFS callback and zoom to the extend of the returned features.</li></ol></div><div>But that is just my 2 euro cents.</div><div><br></div><div>Ivo</div><div><br><div class="gmail_quote">
On Mon, Jul 2, 2012 at 9:53 PM, Paul Meems <span dir="ltr"><<a href="mailto:bontepaarden@gmail.com" target="_blank">bontepaarden@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi Milo,<br><br>Thanks for the quick reply.<br>1. Yes, GeoServer and PostGIS are on the same server (dedicated server @ RackSpace)<br>2. What is enough RAM? I now have 2GB, with only Ubuntu, GeoServer and PostGIS<br>3. My dataset has 67k features. I can try tomorrow with a smaller dataset.<br>


4. I'm using FF v13 with FireBug.<br>5. I'll also try the empty string as initial filter.<br><br>Here's a live sample:<br><a href="http://demo.smartdakscan.nl/zonnekaart.php" target="_blank">http://demo.smartdakscan.nl/zonnekaart.php</a> (in Dutch).<br clear="all">


<br>
Thanks,<br><br>
Paul<div class="HOEnZb"><div class="h5"><br><br><div class="gmail_quote">2012/7/2 Milo van der Linden <span dir="ltr"><<a href="mailto:milo@dogodigi.net" target="_blank">milo@dogodigi.net</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<p>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.</p>




<p>To dig in deeper:<br>
1. Are geoserver and your db on the same machine?<br>
2. Do you have enough RAM?<br>
3. Did you test smaller datasets which generate the same result and are they faster?<br>
4. What browser are you using?</p>
<div class="gmail_quote"><div><div>On Jul 2, 2012 9:18 PM, "Paul Meems" <<a href="mailto:bontepaarden@gmail.com" target="_blank">bontepaarden@gmail.com</a>> wrote:<br type="attribution"></div></div>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div>
I use GeoServer and PostGIS and OpenLayers to show the data.<br>For one page I'm using a WFS layer and I filter on address.<br><br>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.<br>






I zoom to that location and change my filter.<br>This is my initial set-up of my layer, an addressID of -1 doesn't exists so it starts with just the baselayer:<br><pre style="font-family:courier new,monospace"><span>var myLayer = new OpenLayers.Layer.Vector("tmp", { 
<span></span>  displayInLayerSwitcher: true,
<span></span>  strategies: [new OpenLayers.Strategy.BBOX()],
<span></span>  filter: new OpenLayers.Filter.Comparison({ 
<span></span>          type: OpenLayers.Filter.Comparison.EQUAL_TO,
<span></span>          property: "_adresid",
<span></span>          value: "-1"}),
<span></span>  styleMap: new OpenLayers.StyleMap(),
<span></span>  protocol: new OpenLayers.Protocol.WFS({ 
<span></span>    url: ".../wfs",
<span></span>    featureType: "myName",
<span></span>    srsName: "EPSG:3857",
<span></span>    geometryName: "geomgoogle"
<span></span>  })
<span></span>});</span></pre>But this call takes long because it tries to find the -1 value. <br><b>Q1</b>: How can I add a WFS layer without data?<br><br>And this is the method I call after the user selects an address:<br>





<pre><font style="font-family:courier new,monospace" size="2">function changeFilter(newValue, x, y)
<span></span>{ 
<span></span>  myLayer.destroyFeatures();
<span></span>  filter = new OpenLayers.Filter.Logical({ 
<span></span>    type: OpenLayers.Filter.Logical.AND, 
<span></span>    filters: [ 
<span></span>      new OpenLayers.Filter.Comparison({ 
<span></span>          type: OpenLayers.Filter.Comparison.EQUAL_TO, 
<span></span>          property: "_adresid", 
<span></span>          value: newValue 
<span></span>      }), 
<span></span>      new OpenLayers.Filter.Spatial({ 
<span></span>          type: OpenLayers.Filter.Spatial.BBOX, 
<span></span>          value: new OpenLayers.Bounds(x-50, y-50, x+50, y+50), 
<span></span>          projection: "EPSG:3857" 
<span></span>      }) 
<span></span>  ] 
<span></span>}); 
<span></span>  myLayer.filter = filter;
<span></span>  </font><font style="font-family:courier new,monospace" size="2">myLayer</font><font style="font-family:courier new,monospace" size="2">.refresh({force: true});<br>  showAttributes();<br></font><span><font style="font-family:courier new,monospace" size="2">}<br>





</font><br></span></pre>This is working great, but is does take a very long time: about 7-10 seconds.<br>The result are just a few features: 3-10<br><br>Of course I have an index in the database on _adresid and a spatial index.<br>






<br><b>Q2</b>: What else can I do to speed up this filter?<br><br>Thanks,<br>
<br>
Paul<br>

<br></div></div>_______________________________________________<br>
Users mailing list<br>
<a href="mailto:Users@lists.osgeo.org" target="_blank">Users@lists.osgeo.org</a><br>
<a href="http://lists.osgeo.org/mailman/listinfo/openlayers-users" target="_blank">http://lists.osgeo.org/mailman/listinfo/openlayers-users</a><br>
<br></blockquote></div>
</blockquote></div><br>
</div></div><br>_______________________________________________<br>
Users mailing list<br>
<a href="mailto:Users@lists.osgeo.org">Users@lists.osgeo.org</a><br>
<a href="http://lists.osgeo.org/mailman/listinfo/openlayers-users" target="_blank">http://lists.osgeo.org/mailman/listinfo/openlayers-users</a><br>
<br></blockquote></div><br></div></div>