Hello Andreas, Thanks for pointing out the bottleneck will likely be elsewhere. You are certainly right about the limit on number of features - though there are enormous differences between javascript engines now; "IE8 was more than 12 times slower than Opera 10.53" [1].
Since it's usually hard to dictate browser, I'll explore WMSGetFeatureInfo and GetFeature. Cheers, Knut [1] http://www.computerworld.com/s/article/9176320/New_Chrome_browser_fastest_Google_beta_yet On Tue, May 25, 2010 at 10:43 AM, Andreas Hocevar <[email protected]> wrote: > Hi Knut, > > I don't think that anybody has done benchmarking on the various formats that > GeoExt supports through OpenLayers. > > Be warned, regardless of the format you choose, that building the geometries > and rendering features on a vector layer is a time consuming task. Web > applications that process more than a few hundred features are known to feel > slow, and switching to a different format won't make much of a difference. > > Alternatives to check for a large number of features include rendering > features on the server (e.g. using WMS) and using WMS GetFeatureInfo or WFS > GetFeature to get information for a small number of features. With the > available WMSGetFeatureInfo and GetFeature controls of OpenLayers, you can > easily build interactive applications without having all the features on the > client. > > Regards, > Andreas. > > On May 24, 2010, at 15:48 , Knut Staring wrote: > >> Dear list, >> >> I was wondering if there are any criteria for choosing between GeoJSON >> or WKT when feeding GeoExt from the database? I care about both >> transmission size (since many users will have low bandwidth) and >> processing (users may have low spec hardware, and even the latest >> Chrome and Opera struggle with too large geometries). >> >> WKT looks more compact, in that there are much fewer square brackets. >> But since browsers speak javascript, it may be heavier to process? >> >> I've written some PHP to generate GeoJSON, like this: >> http://109.74.202.200/ke/geojson.php, which feeds into >> http://109.74.202.200/ke/feature-grid.html in the following way: >> >> protocol: new OpenLayers.Protocol.HTTP({ >> url: "geojson.php", >> format: new OpenLayers.Format.GeoJSON() >> }) >> >> However, looking at http://waterandhealth.eu/, I notice that WKT is >> used rather than GeoJSON: >> http://waterandhealth.eu/php/geometries.php >> >> Here is a snippet from the javascript: >> >> Atlas.data.store.GeometryStore = Ext.extend(Ext.data.JsonStore, { >> features: [], >> countryRoot: null, >> constructor: function (a) { >> Ext.apply(this, a); >> Atlas.data.store.GeometryStore.superclass.constructor.call(this, >> Ext.apply({ >> proxy: new Ext.data.HttpProxy({ >> url: "php/geometries.php", >> method: "POST" >> }), >> root: "geometries", >> fields: ["fid", "geom", "country_id", "country_name"] >> }, a)); >> this.addEvents("featureLoad"); >> this.on("load", function () { >> this.data.each(function (e, b, f) { >> var d = OpenLayers.Geometry.fromWKT(e.get("geom")); >> var c = new OpenLayers.Feature.Vector(d, { >> id: e.get("fid"), >> countryId: e.get("country_id"), >> countryName: e.get("country_name"), >> value: -1 >> }); >> this.features.push(c) >> }, this); >> this.fireEvent("featureLoad") >> }) >> }, >> getFeatures: function () { >> var c = this.features; >> var d = []; >> for (var b = 0; b < c.length; b++) { >> var a = c[b].clone(); >> d.push(a) >> } >> return d >> } >> }); >> >> Grateful for any guidance. >> >> Cheers, >> Knut >> _______________________________________________ >> Users mailing list >> [email protected] >> http://www.geoext.org/cgi-bin/mailman/listinfo/users > > > > -- > Andreas Hocevar > OpenGeo - http://opengeo.org/ > Expert service straight from the developers. > > -- Cheers, Knut Staring _______________________________________________ Users mailing list [email protected] http://www.geoext.org/cgi-bin/mailman/listinfo/users
