Skip to content
Switch branches/tags
Go to file
Cannot retrieve contributors at this time
937 lines (683 sloc) 27.3 KB
- Support cookie management for HTTP sources.
1.13.0 2020-11-18
- Proj: Support for PROJ>=5 via pyproj.
- Services: New hide_exception_url option to hide source URLs.
- Tile sources: Support '@' in URL path (e.g. /0/0/0@2x.png)
- Various fixes for Python 3.8 compatibility.
- WMS: Always query WMS server in supported SRS.
- Fix warnings for tagged layer sources in layers.
- Demo: Fix capabilites "as HTML" when running behind a proxy
1.12.0 2019-08-30
- Cache: Rescale tiles existing tiles with new upscale_tiles/downscale_tiles option.
- Cache: Finer control for reprojection sources with preferred_src_proj option.
- WMS: Add georeference to TIFF images (GeoTIFF).
- WMS: Support for compressed TIFF images (LZW/JPEG).
- WMS: Advertise MaxWidth/MaxHeight.
- WMTS: Support for FeatureInfo requests.
- WMS/ArcGIS: Add on_error handler (similar to on_error handling for tile sources).
- WMS/WMTS: Add keyword_list to capabilities.
- S3: Support for custom S3 server and ACL.
- autoconfig: Support for username/password in URL.
- Various fixes for Python 3.6 and 3.7 compatibility.
- Set explicit permissions for write_atomic on Windows.
- WMS: Respond with highest supported WMS version (1.3.0 by default).
- Test: Now uses pytest instead of nosetest for all unit and system tests.
- YAML: Always use load_safe to support PyYAML >3 without warnings.
- Paster and eventlet specific code removed.
1.11.1 2019-08-06
- Fix Cross Site Scripting (XSS) issue in demo service. Fix for #322 did not
properly escaped input used in JavaScript examples. Found by Janek Vind.
A targeted attack could be used for information disclosure. For
example: Session cookies of a third party application running on
the same domain.
1.11.0 2017-11-20
- Improve reprojection performance and accuracy.
- ArcGIS compact cache: Support for version 2.
- ArcGIS compact cache: Improve performance for version 1.
- ArcGIS compact cache: Add ``mapproxy-util defrag`` to reduce bundle size
after tiles were removed/updated.
- ArcGIS REST source: Support and seed_only.
- Use systems CA certs by default and fix ssl_no_cert_checks
for Python >=2.7.9 and >=3.4
- WMS: Improve Bounding Boxes in Capabilities.
- Mapserver: Find mapserv binary in PATH environment.
- Seed: Always show last log line (100%).
- Fix saving transparent PNGs for some versions of Pillow
(workaround for Pillow bug #2633)
- SQLite: Fix possible errors on first request after start.
- Demo: Fix demo client with `use_grid_names`.
- serve-develop: Fix header encoding for Python 3.
- Seed: Fix --interactive for Python 3.
- Support tagged layers for sources with colons in name.
- Support # character in Basis Authentication password.
- Fix import error with shapely>=1.6
- Fix duplicate level caches when using WMTS KVP with MBtile/SQLite/CouchDB.
- Remove support for Python 2.6
1.10.4 2017-08-17
- Fix Cross Site Scripting (XSS) issue in demo service (#322).
A targeted attack could be used for information disclosure. For
example: Session cookies of a third party application running on
the same domain.
1.10.3 2017-07-07
- Fix crash during clipping
- Fix bilinear/bicubic resampling from cropped source
- Fix loading empty coverages
1.10.2 2017-06-21
- Fix coverage clipping for caches with a single source
1.10.1 2017-06-06
- Fix mapproxy-util serve-develop for Python 3.6 on Windows
- Fix OGR coverages on Windows with Python 3 and official OGR Python bindings
- Fix --repeat option of mapproxy-util scales
1.10.0 2017-05-18
- Support for S3 cache.
- Support for the ArcGIS Compact Cache format version 1.
- Support for GeoPackage files.
- Support for Redis cache.
- Support meta_tiles for tiles sources with bulk_meta_tiles option.
- mbtiles/sqlite cache: Store multiple tiles in one transaction.
- mbtiles/sqlite cache: Make timeout and WAL configurable.
- ArcGIS REST source: Improve handling for ImageServer endpoints.
- ArcGIS REST source: Support FeatureInfo requests.
- ArcGIS REST source: Support min_res and max_res.
- Support merging of RGB images with fixed transparency.
- Coverages: Clip source requests at coverage boundaries.
- Coverages: Build the difference, union or intersection of multiple coverages.
- Coverages: Create coverages from webmercator tile coordinates like 05/182/123
with expire tiles files.
- Coverages: Add native support for GeoJSON (no OGR/GDAL required).
- mapproxy-seed: Add --duration, -reseed-file and -reseed-interval options.
- Fix level selection for grids with small res_factor.
- mapproxy-util scales: Fix for Python 3.
- WMS: Fix FeatureInfo precision for transformed requests.
- Auth-API: Fix FeatureInfo for layers with limitto.
- Fixes subpixel transformation deviations with Pillow 3.4 or higher.
- mapproxy-seed: Reduce log output, especially in --quiet mode.
- mapproxy-seed: Improve tile counter for tile grids with custom resolutions.
- mapproxy-seed: Improve saving of the seed progress for --continue.
- Fix band-merging when not all sources return an image.
- Python 2.6 is no longer supported.
1.9.1 2017-01-18
- serve-develop: fixed reloader for Windows installations made
with recent pip version (#279)
1.9.0 2016-07-22
- New band merge feature. Allows to create false-color or grayscale
images on the fly.
- Support for ArcGIS REST sources.
- Support multiple tilesets for each WMTS layer with the new
tile_sources option.
- Allow to build WMS images from SQLite cache with more then 330 tiles.
- New `arcgis` cache layout. Compatible to ArcGIS exploded caches.
- New `mp` cache layout. Reduces number of nested directories.
- Prevent unneeded quantizing/re-encoding of images.
- Demo client: Support custom tile_size.
- Fix quantization error for some image modes
(e.g. grayscale image with transparency)
- Support custom Proj4/EPSG files in mapproxy-util grid.
- Convert paletted images to RGB(A) to avoid NEAREST resampling.
- Fix quantizing with FASTOCTREE for paletted images with alpha channel.
- Keep configured layer order in WMTS capabilities.
- Fix coverage loading with Python 3.
- Make the output of various utils more clear.
- is no longer required, default to "MapProxy WMS".
1.8.2 2016-01-22
- serve-develop: fixed reloader for Windows installations made
with recent pip version
1.8.1 2015-09-22
- WMS 1.3.0: support for metadata required by INSPIRE View Services
- WMS: OnlineResource defaults to service URL
- mapproxy-seed: fix race-condition which prevented termination at the
end of the seeding process
- autoconfig: parse capabilities without ContactInformation
- SQLite cache: close files after seeding
- sqlite/mbtiles: fix tile lock location
- WMS 1.0.0: fix image format for source requests
- WMS: allow floats for X/Y in GetFeatureInfo requests
- CouchDB: fix for Python 3
- mapproxy-seed: seeding a cache with disable_storage: true returns
an error
- all changes are now tested against Python 2.7, 3.3, 3.4 and 3.5
1.8.0 2015-05-18
- Support for Python 3.3 or newer
- WMS is now available at /service, /ows and /wms
- WMTS KVP is now available at /service and /ows, RESTful service at /wmts
- allow tiled access to layers with multiple map:false sources
- add Access-control-allow-origin header to HTTP responses
- list KVP and RESTful capabilities on demo page
- disable verbose seed output if stdout is not a tty
- add globals.cache.link_single_color_images option
- support scale_factor for Mapnik sources
- handle EPSG axis order in WMTS capabilities
- pass through legends/featureinfo for recursive caches
- accept PNG/JPEG style image_format for WMS 1.0.0
- fix TMS capabilities in demo for TMS with use_grid_names
- fix ctrl+c behaviour in mapproxy-seed
- fix BBOX parsing in autoconf for WMS 1.3.0 services
- 1.8.0 is expected to work with Python 2.6, but it is no longer officially supported
- MapProxy will now issue warnings about configurations that will change with 2.0.
doc/mapproxy_2.rst lists some of the planed incompatible changes
1.7.1 2014-07-08
- fix startup of mapproxy-util when libgdal/geos is missing
1.7.0 2014-07-07
- new `mapproxy-util autoconf` tool
- new versions option to limit supported WMS versions
- set different max extents for each SRS with bbox_srs
- display list of MultiMapProxy projects sorted by name
- check included files (base) for changes in reloader and serve-develop
- improve combining of multiple cascaded sources
- respect order of --seed/--cleanup tasks
- catch and log sqlite3.OperationalError when storing tiles
- do not open cascaded responses when image format matches
- mapproxy-seed: retry longer if source fails (100 instead of 10)
- mapproxy-seed: give more details if source request fails
- mapproxy-seed: do not hang nor print traceback if seed ends
after permanent source errors
- mapproxy-seed: skip seeds/cleanups with empty coverages
- keep order of image_formats in WMS capabilities
- handle errors when loading to many tiles from mbtile/sqlite in
one batch
- reduce memory when handling large images
- allow remove_all for mbtiles cleanups
- use extent from layer metadata in WMTS capabilities
- handle threshold_res higher than first resolution
- fix exception handling in Mapnik source
- only init libproj when requested
- 1.7.x is the last release with support for Python 2.5
- depend on Pillow if PIL is not installed
1.6.0 2013-09-12
- Riak cache supports multiple nodes
- handle SSL verification when using HTTP proxy
- ignore errors during single color symlinking
- --debug option for serve-multiapp-develop
- Riak cache requires Riak-Client >=2.0
1.6.0rc1 2013-08-15
- new `sqlite` cache with timestamps and one DB for each zoom level
- new `riak` cache
- first dimension support for WMTS (cascaded only)
- support HTTP Digest Authentication for source requests
- remove_all option for seed cleanups
- use real alpha composite for merging layers with transparent
- new tile_lock_dir option to write tile locks outside of the cache dir
- new decorate image API
- new GLOBAL_WEBMERCATOR grid with origin:nw and EPSG:3857
- speed up configuration loading with tagged sources
- speed up seeding with sparse coverages and limited levels
(e.g. only level 17-20)
- add required params to WMS URL in mapproxy-util wms-capabilities
- support for `@` and `:` in HTTP username and password
- try to load pyproj before using libproj.dll on Windows
- support for GDAL python module (osgeo.ogr) besides using
- files are now written atomical to support concurrent access
to the same tile cache from different servers (e.g. via NFS)
- support for WMS 1.3.0 in mapproxy-util wms-capabilities
- support layer merge for 8bit PNGs
- support for OGR/GDAL 1.10
- show TMS root resource at /tms
- support requests>=1.0 for CouchDB cache
- HTTP_X_FORWARDED_HOST can be a list of hosts
- fixed KML for caches with origin: nw
- fixed 'I/O operation on closed file' errors
- fixed memory leak when reloading large configurations
- improve handling of mixed grids/formats when using caches as
cache sources
- threading related crashes in coverage handling
- close OGR sources
- catch IOErrors when PIL/Pillow can't identify image file
- update example configuration (base-config)
- update deployment documentation
- update OpenLayers version in demo service
- use restful_template URL in WMTS demo
- update to prevent unnecessary warnings during installation
- accept Pillow as depencendy instead of PIL when already installed
- deprecate use_mapnik2 option
1.5.0 2012-12-05
- read remove_before/refresh_before timestamp from file
- add --concurrency option to mapproxy-utils export
- fixed where option for coverages (renamed from ogr_where)
- only write seed progess with --continue or --progress-file option
- add EPSG:3857 to WMS default SRSs and remove UTM/GK
- remove import error warning for shapely
- create metadata table in MBTiles caches
1.5.0rc1 2012-11-19
- clipping of tile request to polygon geometries in security API
- WMTS support in security API
- mixed_image mode that automatically chooses between PNG/JPEG
- use caches as source for other caches
- `mapproxy-util grids` tool to analyze grid configurations
- `mapproxy-util wms-capabilities` tool
- `mapproxy-util export` tool
- use_grid_names option to access Tiles/TMS/KML layers by grid
name instead of EPSGXXXX
- origin option for TMS to change default origin of the /tiles service
- continue stopped/interrupted seed processes
- support min_res/max_res for tile sources
- do not show layers with incompatible grids in WMTS/TMS demo
- make 0/0/0.kml optional for the initial KML file
- use BBOX of coverage for capabilities in seed_only layers
- ignore debug layer when loading tile layers
- simplified coverage configuration
- add reloader option to make_wsgi_app()
- add MetadataURL to WMS 1.1.1 capabilities
- improved WMTS services with custom grids (origin)
- use in_image exceptions in WMS demo client
- larger map in demo client
- always request with transparent=true in WMS demo client
- use in_image exceptions in WMS demo client
- fixed reloading of multiapps in threaded servers
- fixed BBOX check for single tile requests
- fixed TMS for caches with watermarks
- fixed limited_to clipping for single layer requests with service-wide
clipping geometries
- fixed WMTS RESTful template
- deprecated `origin` option for tile sources was removed
- empty tiles are now returned as PNG even if requested as .jpeg
1.4.0 2012-05-15
- fix TypeError exception when auth callback returns {authorized:'full'}
- use MAPPROXY_LIB_PATH on platforms other that win32 and darwin
- raise config error for mapnik sources when mapnik could not be imported
1.4.0rc1 2012-05-02
- support clipping of requests to polygon geometries in security API
- support for WMS 1.3.0 extended layer capabilities
- on_error handling for tile sources. fallback to empty/transparent
tiles when the source returns HTTP codes like 404 or 204
- add HTTP Cache-Control header to WMS-C responses
- WMS source requests and requests to cached tiles are now clipped
to the extent. this should prevent projection errors when requesting
large bbox (e.g. over 180/90 in EPSG:4326)
- improved lock timeouts in mapproxy-seed
- the debug source does not overwrite the layer extent anymore.
makes it more usable in demo/wms clients
- support for multiple files and recursion in base option
- mapproxy-seed ETA output is now more responsive to changes in seed speed
- improved demo service
- choose different SRS for WMS layers
- support for WMTS
- support loading of WKT polygon files with UTF8 encoding and BOM header
- upgraded dictspec module with fix for some nested configuration specs.
a bug prevented checking of the layers configuration
- the documentation now contains a tutorial
- old layer configuration syntax is now deprecated
- EPSG:4326/900913/3857 are now always initialized with the +over proj4
option to prevent distortions at the dateline
1.3.0 2012-01-13
No changes since 1.3.0b1
1.3.0b1 2012-01-03
- support for RESTful WMTS requests with custom URL templates
- support for CouchDB as tile backend
- support for Mapnik 2 sources
- limit maximum WMS response size with max_output_pixels
- new color option for watermarks
- new ``mapproxy-util serve-multiapp-develop`` command
- new wms.bbox_srs option for bounding boxes in multiple SRS in WMS
- log exceptions when returning internal errors (500)
- fix BBOX in WMS-C capabilities
- prevent exception for WMS requests with unsupported image formats with
mime-type options (like 'image/png; mode=24bit')
- fixed blank image results for servers that call .close() on the
response (like gunicorn)
- origin option for tile sources is deprecated. use a custom grid with
the appropriate origin.
1.2.1 2011-09-01
- fixed configuration of watermarks
- support for unicode title in old-style layer configuration
1.2.0 2011-08-31
- fixed links in demo service when running as MultiMapProxy
1.2.0b1 2011-08-17
- support for MBTiles cache
- support for (tagged-) layers for Mapnik sources
- configurable cache layout (tilecache/TMS)
- new `mapproxy-util scales` tool
- use MultiMapProxy with server scripts
- prevent black borders for some custom grid configurations
- all fixes from 1.1.x
1.1.2 2011-07-06
- compatibility with older PyYAML versions
- do not try to transform tiled=true requests
- escape Windows path in wsgi-app template
1.1.1 2011-06-26
- add back transparent option for mapnik/tile sources (in addition
to image.transparent)
- keep alpha channel when handling image.transparent_color
- fixed combining of multiple WMS layers with transparent_color
- fixed header parsing for MapServer CGI source
1.1.0 2011-06-01
- Changed license to Apache Software License 2.0
- fixed image quantization for non-png images with
1.1.0rc1 2011-05-26
- add template to build MapProxy .deb package
- font dir is now configurable with globals.image.font_dir
- fixed errors in config spec
1.1.0b2 2011-05-19
- unified logging
- verify mapproxy/seed configurations
1.1.0b1 2011-05-12
- support for tagged WMS source names: wms:lyr1,lyr2
- new Mapserver source type
- new Mapnik source type
- new mapproxy-util command
- include development server (``mapproxy-util serve-develop``)
- first WMTS implementation (KVP)
- configurable image formats
- support for ArcGIS tile sources (/L09/R00000005/C0000000d)
- support for bbox parameter for tile sources
- tweaked watermarks on transparent images
- [mapproxy-seed] initialize MapProxy logging before seeding
- authentication callbacks get environ and qusery_extent
- authentication callbacks can force HTTP 401 returns
- hide error tracebacks from YAML parser
- support for multipolygons in coverages
- add support for HTTP_X_SCRIPT_NAME
- support for integer images (e.g. 16bit grayscale PNG)
- fixes demo on Windows (loaded static content from wrong path)
- fixed one-off error with grid.max_res: last resolution is now < max_res
e.g. min_res: 1000 max_res: 300 -> now [1000, 500], before [1000, 500, 250]
- add workaround for Python bug #4606 (segfaults during projection on 64bit
- do not add attribution to WMS-C responses
- removed Paste dependencies
- removed deprecated mapproxy-cleanup tool, feature included in mapproxy-seed
1.0.0 2011-03-03
- no changes since 1.0.0rc1
1.0.0rc1 2011-02-25
- handle epsg:102100 and 102113 as equivalents to 900913/3857
- fixed attribution placement and padding
1.0.0b2 2011-02-18
- [mapproxy-seed] support for configuration includes in mapproxy.yaml (base)
- [mapproxy-seed] updated config templates
- KML: reduce number of required KML requests
- KML: improve superoverlays with res_factor != 2
- [mapproxy-seed] apply globals from mapproxy.yaml during seed
- fix tile_lock cleanup
- merging of cache sources with only tile sources failed
1.0.0b1 2011-02-09
- [mapproxy-seed] separated seed and cleanup tasks; call tasks independently
- XSL transformation of WMS FeatureInfo responses
- content aware merging of multiple XML/HTML FeatureInfo repsonses
- FeatureInfo types are configurable with wms.featureinfo_types
- request cascaded sources in parallel (with threading or eventlet)
with new wms.concurrent_layer_renderer option
- disable GetMap requests for WMS sources (for FeatureInfo only sources)
- new cache.disable_storage option
- authorization framework
- new image.transparent_color option: replaces color with full transparency
- new image.opacity option: blend between opaque layers
- new watermark.spacing option: place watermark on every other tile
- new wms.on_source_errors option: capture errors and display notice in
response image when some sources did not respond
- support for custom http headers for requests to sources
- add support for http options for tile source (user/password, https ssl
options, headers, timeout)
- [mapproxy-seed] enhanced CLI (summary and interactive mode)
- combine requests to the same WMS URL
- support for local SLD files (sld: file://sld.xml)
- changed watermark color to gray: improves readability on full transparent
- support for transparent/overlayed tile sources
- renamed thread_pool_size to concurrent_tile_creators
- tweaked KML level of detail parameters to fix render issues in Google Earth
with tilted views
- rounding errors in meta-tile size calculation for meta_buffer=0
- work with upcomming PIL 1.2 release
0.9.1 2011-01-10
- fixed regression in mapproxy_seed
- resolve direct WMS request issues with equal but not same
SRS (e.g. 900913/3857)
0.9.1rc2 2010-12-20
- Allow nested layer configurations (layer groups/trees)
- Support custom path to libproj/libgdal with MAPPROXY_LIB_PATH environ
- Look for xxx if libxxx returned no results.
- Limit lat/lon bbox in WMS capabilities to +-89.999999 north/south values
- bug fix for threshold_res that overlap with the stretch_factor
0.9.1rc1 2010-12-07
- WMS 1.1.0 support
- Coverage support (limit sources to areas via WKT/OGC polygons)
- new base option to reuse configurations
- ScaleHint support (min/max_res, min/max_scale)
- Support for multiple MapProxy configurations in one process with distinct
global/cache/source/etc. configurations
- New MultiMapProxy: dynamically load multiple configurations (experimental)
- threshold_res option for grids: switch cache levels at fixed resolutions
- seed_only option for sources: allows offline usage
- GetLegendGraphic support
- SLD support for WMS sources
- concurrent_requests limit is now per unique hostname and not per URL
- concurrent_requests can be set with globals.http.concurrent_requests
- font_size of watermark is now configurable
- improved configuration loading time and memory consumption
- make use of PyYAML's C extension if available
- cache projection attributes in SRS objects for better performance
- try system wide projection definitions first, then fallback to defaults
(e.g. for EPSG:900913)
- trailing slash is now optional for /tms/1.0.0
- support for http.ssl_ca_cert for each WMS source
- support for http.client_timeout for each WMS source (Python >=2.6)
- removed start up error on systems where proj4 misses EPSG:3857
- fixed color error for transparent PNG8 files
- fixed links in demo service when URL is not /demo/
- removed memory leak proj4 wrapper
- fixed mapproxy-seed -f option
- tests work without Shapely
0.9.0 2010-10-18
- minor bug fixes
0.9.0rc1 2010-10-13
- new OpenLayers-based '/demo' service that shows all configured WMS/TMS layers
- display welcome message at '/' instead of 'not found' error
- less rigid feature info request parser (no error with missing style or format
parameters). Use wms.strict to enable OCG compliant mode.
- updated tempita to 0.5
0.9.0b2 2010-09-20
- new minimize_meta_requests option
- moved python implementation dependent code to mapproxy.platform module
0.9.0b1 2010-08-30
- Improved support for EPSG:3857
- Source requests now never go beyond the grid BBOX even with meta_buffers/meta_tiles
- removed install_requires
- flup: not required for all deployment options
- tempita: now embeded
- now Python 2.7 compatible
- [mapproxy-seed] fixed libgdal loading on some Linux systems
- [mapproxy-seed] check for intersections on all levels
- add origin options to /tiles service to support Google Maps clients
- Improved PNG performance with PIL fastpng branch.
- New concurrent_requests option to limit requests for each source WMS server.
- minor bug fixes
0.9.0a1 2010-07-27
- new configuration format (merged proxy.yaml and service.yaml)
- refactoring of the caching (sources and layers)
- large refactoring of the package layout
- pyproj dependency is not required when libproj is available
- removed jinja dependency
- more options to define tile grids (min_res, max_res, etc.)
0.8.4 2010-08-01
- Extra newline at the end of all templates. Some deployment setups
removed the last characters.
- Improved PNG performance with PIL fastpng branch.
- New concurrent_requests option to limit requests for each source WMS server.
0.8.3 2010-06-01
- Some bug fixes regarding feature info
- The configured resolutions are sorted
0.8.3rc2 2010-05-25
- HTTPS support with certificate verification and HTTP Basic-
- New `use_direct_from_level` and `use_direct_from_res` options to
disable caching for high resolutions.
- New `cache_tiles` source for more flexible tile-based sources
Supports url templates like '/tiles?x=%(x)s&y=%(y)s&level=%(z)s'
and Quadkeys as used by Bing-Maps. (as suggested by Pascal)
- You can limit the SRS of a source WMS with the `supported_srs`
option. MapProxy will reproject between cached/requested SRS and
the supported. This also works with direct layers, i.e. you can
reproject WMS on-the-fly.
0.8.3rc1 2010-04-30
- new improved seed tool
- seed polygon areas instead BBOX (from shapefiles, etc)
- advanced seeding strategy
- multiprocessing
- new link_single_color_images layer option. multiple "empty" tiles will
be linked to the same image. (Unix only)
- fixed transparency for image parts without tiles
- log HTTP requests to servers regardless of the success
- made proj4 data dir configurable
- use same ordering of layers in service.yaml for capabilities documents
(use list of dicts in configuration, see docs)
- performance improvements for requests with multiple layers and
for layers with smaler BBOXs
0.8.2 2010-04-13
- no changes since 0.8.2rc1
0.8.2rc1 2010-04-01
- add fallback if PIL is missing TrueType support
- use zc.lockfile for locking
- improved logging:
- log to stdout when using develop.ini
- add %(here)s support in log.ini (changed from {{conf_base_dir}})
- do not enable ConcurrentLogHandler by default
0.8.1 2010-03-25
- improved performance for simple image transformation
(same srs and same resolution) #4
0.8.0 2010-03-22
- initial release