4

I'm implementing a project with openlayers 2.12, Geoserver 2.1.3 and PostgreSQL 9.1/PostGIS 2.0

I also use HTML5 Geolocation API and MapQuest's Geocoding API.

In the database I have data (osm_line, osm_point, osm_polygon, osm_road) of a county I downloaded from OpenStreet Map.

The user can also search for points. That's implemented with JavaScript and vector layers.

The problem is , after a certain zoom level (about 16/20) the tiles load very slow. Especially in FireFox and Internet Explorer.

Also, when panning, tiles are blended in Internet Explorer.

Please advice, how can I fix this?

Is there a way to make the whole system load faster?

EDIT

As for the IE problem, with tiles blending, a friend of mine Skyped me this

As for the loading speed issue, I checked the CPU usage and Geoserver goes up to 60-70, when postGis and browsers are about 08-10.

And I also remember that I edited the settings of Geoserver so I increased the SLD file limit.

Also the base layer is WMS, containing the four tables together {layers: 'cultumap:planet_osm_polygon, cultumap:planet_osm_line, cultumap:planet_osm_roads, cultumap:planet_osm_point'}

Any thoughts?

6
  • can you provide more information about tile cache seeding in your environment? It sounds like your OSM data might be tile-cached up to zoom level 16 but after that point you're generating tiles on demand.
    – tomfumb
    Commented Oct 16, 2013 at 18:07
  • @tomfumb Hey.I just edited my question, added more info. About the cache seeding...How I check this? Sorry, no experience with that. Can you be more specific? Thanks
    – slevin
    Commented Oct 16, 2013 at 20:38
  • 1
    ideally you'd just ask whoever configured your GeoServer installation. Next best option might be exploring the GeoWebCache interface from the GeoServer administration page. If that's no use you might end up trawling the file system looking for your tiles. I think you should give some indication of what kind of performance you're getting, i.e. if tiles render after 2 - 3 seconds or it takes longer. Also read docs.geoserver.org/2.1.3/user/production/java.html on JAI and performance (though don't expect a massive change)
    – tomfumb
    Commented Oct 16, 2013 at 21:10
  • You first need to figure out what part of the application is slow. Is generating the tiles taking time? or is transfering the tiles over the network taking time? Commented Oct 17, 2013 at 4:30
  • @slevin doing a preview in geoserver might be helpful.
    – kinkajou
    Commented Oct 17, 2013 at 4:51

3 Answers 3

4

Here's my suggestions:

  1. Try the map as just tiles. Is this slow? If so, use someone else's base map or use GeoWebCache to pre-generate tiles. Then all you should be seeing when loading only tiles is HDD usage and no or very little processing.
  2. If you're loading vectors, and that's slow, don't load vectors. Tile the vectors and query the database for searching and return only the one vector you are active on.
  3. You could try another web-mapping library. Leaflet is a very simple and light-weight library that works well.
4
  • Since problems only occur at a certain zoomlevel switching to leaflet will not solve anything.
    – johanvdw
    Commented Oct 17, 2013 at 7:44
  • Well, where is the bottleneck? Can you run top on your server while you move aroudn on the map to see whether HDD/CPU/RAM are maxed out? Identify that bit, then find a solution to fix it.
    – Alex Leith
    Commented Oct 17, 2013 at 23:53
  • @alexgleith Thanks for the anser. I have little experience with Geoserver, just the basics. So is there any tutorial on how to use GeoWebCache? Thanks
    – slevin
    Commented Oct 19, 2013 at 14:48
  • Check it out here: docs.geoserver.org/stable/en/user/geowebcache/index.html Basically, you use the server/geoserver/gwc/wms? endpoint rather than server/geoserver/wms? then you can generate a cache of all the tiles before hand to speed it up.
    – Alex Leith
    Commented Oct 20, 2013 at 5:40
0

To make the whole system load faster, you could:

  • Cache the 'slow' zoom levels as raster tiles
  • Generalise/simplify your vector data to adapt it to each 'slow' zoom level. Generalised data are faster to transfer and render on the client.
0

Check out GeoServer on Steroids for a detailed description of tuning GeoServer. But in this case the first thing to check could be how your PostGis DB is set up (see Best practices for PostGIS production environments?).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.