-
Notifications
You must be signed in to change notification settings - Fork 7
GSIP 208
This is a proposal for adding a the possibility to configure a fixed list or interval of Time/Elevation dimensions on the LayerConfiguration page. The new functionality will give the possibility to improve the performance of GetCapabilities request when dealing with large dataset: multiple queries are indeed performed to the datasource to request the unique values of time for presentation mode LIST and to compute the MAX and MIN for INTERVAL modes. Allowing to specify a fixed date range or list of values will cause a performance improvement for all the GetCapabilities request dealing with the Dimension values.
- Marco Volpini
This proposal is for:
- Geoserver 2.27-RC
- Under Discussion
- In Progress
- Completed
- Rejected
- Deferred
The new feature will cause a singificant performance improvement for all the GetCapabilities requests dealing with the dimension informations, expecially in case of large dataset since no datasource querying will be needed to retrieve min/max or unique values.
We propose to add a new property as a String
to hold the fixed dimension value to the DimensionInfo interface. New interface methods will have a default implementation to not break eventually existing implementations.
public class DimensionInfo {
...
/**
* Returns a string specifying a list of comma separated fixed time or elevation values.
* @return
*/
default String getFixedDimensionValue(){
return null;
}
/**
* Allows setting a list of fixed dimension values as a list of comma separated fixed time or elevation values.
*/
default void setFixedDimensionValue(String fixedDimensionValue){}
}
The two method will then be implemented in the ResourceInfoImpl
and in the VectorCustomDimensionEntry
classes.
The new property will be represented on the UI from a TextArea hidden by default that can be optionally used to provide fixed dimensions as a list of comma separated values for all the three different presentation mode List, Continuos interval and Interval and Resolution.
The string passed will be validated to be a valid time or elevation value and as well to be consistent with the selected presentation mode. It will be clearly documented that no validation will be applied to check that the fixed dimension string matches the actual data and that the user should be the one taking care of providing/keeping a list/interval of values aligned with the ones in the dataset.
Moreover changes in the following classes are foreseen:
-
WMS class will be modified to be able to get the values using the fixed string if present.
-
ReaderDimensionAccessor to get time/elevation values from the fixed value class in case it is present.
-
Wcs10DescribeCoverageTransformer will be updated to handle the fixed value when encoding the time dimension info and the elevation dimension
-
WCSDimensionHelper in WCS2_0 package, see also the GMLTransformer.
-
the Dimension class in the wmts-multidimensional extension will be modified to retrieve domain values from the fixed string in the DimensionInfo.
Even if a core configuration object will be modified, the new configuration property will be optional, thus the modification is addittive and is backward compatible.
Project Steering Committee:
- Alessio Fabiani:
- Andrea Aime:
- Ian Turton:
- Jody Garnett:
- Jukka Rahkonen:
- Kevin Smith:
- Simone Giannecchini:
- Torben Barsballe:
- Nuno Oliveira:
- [Jira Ticket]
- [pull request]