/mod_reproject

An apache module that converts a geospatial tile service from one projection and tiling grid to another, on the fly

Primary LanguageC++Apache License 2.0Apache-2.0

mod_reproject

An apache module that converts a geospatial tile service from one projection and tiling grid to another

Building

Requires apache httpd, libapr-1, libjpeg, libpng and zlib to be available for linking and at runtime. In linux this means the runtime and the development packages have to be installed. In Windows, the header files are expected to be in the zlib, png and jpeg subfolders in the same directory as the project files, and the httpd and apr in \Apache24\include. The libraries for all the above packages should be available in \Apache24\lib and \Apache24\bin

Usage

When reprojecting from GCS to WM or backwards, the input level gets chosen based on the relative resolution of the output tile and the input levels. There are two such values, calculated on the two axis. The lowest output resolution axis figure is chosen, it will fall between two input levels. By default, the slightly lower resolution input level is chosen, which will lead to the minimum number of input tiles, thus maximum performance. When the Oversample parameter is on, it chooses the next higher resolution input level, which in general will improve the output image sharpness, while degrading the performance slightly. At hight latitudes, for GCS to WM reprojection it might be necessary to use an even higher input resolution level. This can be done by using the ExtraLevels parameter, which takes a positive numerical value (defaults to 0). The allowed extra levels are only used when needed (at high latitudes). Use this setting with care, as it decreases performance considerably and increasing latency, processing and memory usage per request. The Oversample and ExtraLevels have slightly different purpose and can be combined, for example having oversample off while allowing one or two extra levels. They do interact however, the extra level implicit in the Oversample is added to the ones provided by ExtraLevels.

Implements two apache configuration directives:

Reproject_RegExp pattern

Can be present more than once, one of the existing regular expressions has to match the request URL for the request to be considered

Reproject_ConfigurationFiles source_configuration_file configuration_file

The first file contains the source raster information, while the second the desired configuration for the output

Directives in both source and reproject configuration files

Size X Y Z C

  • Mandatory, at least x and y, the raster size in pixels, in both files

PageSize X Y 1 C

  • Optional, the pagesize in pixels, in both files, defaults to 512x512

Projection prj

  • Optional, WM and GCS are recognized.

DataType type

  • Required if not unsigned byte. Valid values are Byte, Int16, UInt16, Int32, UInt32. Case insensitive

SkippedLevels N

  • Optional, defaults to 0, counted from the top of the pyramid, in both files

BoundingBox xmin,ymin,xmax,ymax

  • Optional, WMS style bounding box, defaults to 0 to 1 in both x and y. Floating point using decimal dot format, comma separated

Directives only in the reproject configuration file

SourcePath filepath

  • Mandatory, the location of the tile source, up to the numerical arguments, as a local web path suitable for a subrequest

SourcePostfix string

  • Optional, a literal string that gets appended to the source URL tile requests

EmptyTile size offset filename

  • Size is required, Offset defaults to zero and filename defaults to sourcepath

MimeType mtype

  • Output mime type, defaults to input format. image/jpeg or image/png. If specified, forces the output type

ETagSeed value

  • A base32 64bit number, to be used as a seed for ETag generation

InputBufferSize size

  • Default is 1MB, should be larger than the maximum expected input tile size

OutputBufferSize size

  • Default is 1MB, should be larger than the maximum expected output tile size

Quality Q

  • A floating point figure, format dependent. Default for JPEG is 75. Default for PNG is 6

Oversample On

  • If on and the output resolution falls between two available input resolution levels, the lower resolution input will be chosen instead of the higher one

ExtraLevels N

  • By default, mod_reproject avoids oversampling, which can generate stretched pixels in one direction. Turning oversample on picks the next higher resolution level. This parameter lets it use more higer resolution levels. It defaults to 0, the value is in addition to the one added by oversample (if on).

Nearest On

  • If on, use nearest neighbor resampling instead of bilinear interpolation

Radius value

  • The planet radius in meters. Used in reprojection calculations. Defaults to earth major radius

Ways to use

If the input and output size and alignment match, it can be used to change quality or the format