This page last changed on May 21, 2008 by dwinslow@openplans.org.

Problem

When you zoom in a lot and pan around a layer served by GWC + GeoServer in Google Earth, things start to get bogged down regardless of how many features are in the dataset. This is because GWC doesn't look at the content of the tiles so it continues to generate network links indefinitely even when there are no more features to serve.

Proposed Solution

The proposed solution is to have GWC inspect the KML and not generate links to empty tiles. This effectively truncates the tree and can drastically reduce the number of KML files that Google Earth needs to process when dealing with localized data. The inspection could be done in any of at least two ways:

  • GWC could parse and interpret the KML
  • GeoServer could detect the absence of any features in the requested tile and return an HTTP "204 No Content" status.

So, the current way things work is:

When Google Earth requests a root document, GWC doesn't make any requests to GeoServer and generates a KML document that links to more KML documents autogenerated by GWC. Each KML document includes 4 network links to deeper zoom levels, as well as 1 network link to a tile generated by GeoServer (and cached by GWC).

We would change this to:

When Google Earth requests a root document, GWC requests the corresponding tile from GeoServer, along with the four direct children of that tile, and generates a KML document that links to more KML documents autogenerated by GWC. Each KML document includes up to 4 network links to deeper zoom levels, but only those that contain additional data, as well as 1 network link to a tile generated by GeoServer (and cached by GWC).

Assumptions

This technique assumes that having a tile returned by GeoServer with no features implies that no tiles within that tile's bounding box contain any features. This is true of the current attribute-based regionating implementation in GeoServer.

Document generated by Confluence on May 14, 2014 23:00