- Mapnik core v4.2.1
- node target v25.5.0
- Mapnik core v4.2.0
- Mapnik core v4.1.4
- Mapnik core v4.1.3
- Mapnik core v4.1.2
- node-addon-api >= 8.5.0
- target node v24.5.0
- fix $MODULE_PATH issue (ref #1018)
- Mapnik core v4.1.1
- node-addon-api >= 8.4.0
- target node v24.3.0
- Fix share/[icu,gdal,proj] versions
- Add explicit node version --target 24.1.0
- Mapnik core v4.1.0
- Mapnik core v4.0.7
- Mapnik core v4.0.6
- node-addon-api >= v8.3.1
- node-gyp >= 4.8.1
- Fix/update proj/gdal/icu data files (ref #1011)
- Mapnik core v4.0.5
- Mapnik core dependencies update (See https://github.com/mapnik/mapnik-core-npm/blob/main/README.md for a full list)
- Mapnik core v4.0.4
- node-addon-api v8.3.0
- NAPI_EXPERIMENTAL=1
- Re-start publishing packages to npmjs as well as GitHub registry.
mapnik.Map- check for valid width/height and throw an exception if not (#990)mapnik.Map- add tests for NaN, Infinity and negative width/height- Use "optionalDependencies" to pull platform specific core-[platform]-[arch]-[version] package
- Use
mapnik::is_empty(featureset_ptr)ref mapnik/mapnik#4479
- Fix bogus shared library (libzstd.1.dylib) used in gdal.input and ogr.input plugins (darwin-arm64)
- Correct example code to use '@mapnik/mapnik'
- Mapnik v4.0.2
- Bundle mapnik-vector-tile as submodule
- Remove node-pre-gyp dependency
- Use node-gyp-build and prebuildify to package "prebuilds" for native modules
- Publish binary packages on GitHub NPM registry
- Pre-built binaries for
linux-x64,dariwin-x64anddarwin-arm64vianpm install @mapnik/mapnik - Add
definition,descriptionandarea_of_usemethods tomapnik.Projection
- Image - fix object lifetimes/scopes in relevant async methods (#978)
- Add persistent Buffer reference to Image to ensure underlying buffer stays in scope (in situations when Image doesn't own underlyling data)
- Image - update ctor and remove ad-hoc _buffer field
- Use Napi::EscapableHandleScope in Image::buffer and Image::data
- Upgrade to mapnik@e553f55dc
(https://github.com/mapnik/mapnik/compare/c3eda40e0...e553f55dc)
- SVG: restore default values in
parse_svg_valueon failure to preserve "viewport/viewBox" logic when using boost > 1.65.1 - Upgrade to boost 1.75 + ICU 58.1
- SVG: restore default values in
- Upgrade node-addon-api (>=v3.1.0)
- Upgrade to @mapbox/node-pre-gyp >= v1.x
- Check
std::stringis not-empty before accessing internal data via operator[] - Upgrade to mapnik@c3eda40e0 (https://github.com/mapnik/mapnik/compare/c6fc956a7...c3eda40e0)
- Upgrade to mapnik@c6fc956a7
(https://github.com/mapnik/mapnik/compare/26d3084ea...c6fc956a7)
- SVG CSS support mapnik/mapnik#4123
- Use mapnik::value_integer for
idtype in feature generator - GeoJSON - allow 'null' properties in
Featureobjects #4177 - Implement
is_solidusing stdlibfind_if - Add perfect forwarding in apply_visitor alias
- Re-implement feature_json_generator by adapting feature_impl into boost::fusion container and removing use semantic actions (simpler code + boost_1_73 support) #4143
- Relax bounding box extracting grammar #4140
- mapnik::color - fix operator== #4137
- color::swap - add missing premultiplied_ #4137
- Add
spacing-offsetoption mapnik/mapnik#4132 - Add Int32 support for gdal driver
- Remove
reinterpret_castby changingNapi::Buffer<T>specialisations - Replace bogus Object->Value->Object conversions e.g scope.Escape(napi_value(obj)).ToObject() => scope.Escape(obj) (ref #961)
- Remove
Escapefromenv.Undefined()(ref #961) - Travis CI: enable clang-format + clang-tidy targets
- Ensure
mapnik.Imagedata is valid duringAsyncWorker::Execute()(ref #960)
- Set default
qualityvalue for webp format to 80 (ref #957) - Fixes utfgrid support (ref #959)
- Fixed default
scale_denominatorvalue in Map::render(..)` (#952) - Set JS objects properties
napi_writablefor backward compatibility with sinon usage (#954)
- Fixed 'scale_denominator' default value in
VectorTile::render(..)(#952) - Fixed wrong arguments order in AsyncComposite + added test (#953)
- Ported to N-API.
- Now supporting node v14 using a "universal binary" (same binary will be used for all major node versions)
- Update mapnik@26d3084ea
- Ported tests from mocha to tape
- Upgraded to boost 1.73.0
- Binaries now compiled with clang++ 10.x
- Update mapnik@3be9ce8fa
(https://github.com/mapnik/mapnik/compare/a0ea7db1a...3be9ce8fa)
- SVG renderer fixes mapnik/mapnik#4113
- Add "darkslategray" and "rebeccapurple" named colors (ref: https://drafts.csswg.org/css-color/#typedef-color)
- Use std::round (ref:https://en.cppreference.com/w/cpp/numeric/math/round) mapnik@ed194a3
- Move 0.5 up/down rounding into rounding expression (via @lightmare https://github.com/mapnik/mapnik/pull/4113/commits/7f54e947485df0a35e0dab9b5aacea8db2cff88c#r369294323) #4116
- SVG: only use reflection of the second control point on the previous command relative to the current point as first control point when both last and prev( NOTE: before last command in AGG logic!) are curve commands. This fixes long outstanding SVG rendering bug aka
Octocatbug #4115 - SVG parser: fix typo (stroke gradient was applied instead if fill gradient) mapnik@1a0b1a1e77
- Add support for
scale-factorparameter - useful for debugging SVG issues (ref #4112) - Don't attempt to rasterize ARCs with very small sweep_angles, just resort to LINETO (#4112)
- SVG parser: ix typo in agg_bezier_arc initialisation mapnik@0420b13055
- SVG parser: use numeric parser for arc flags mapnik@60a33a9b
- SVG parser: parse arc and sweep flags using special single digit parser, numeric
int_parser was over greedy and didn't handle compact notation produced by svgo (https://github.com/svg/svgo) mapnik@222835e73 - Use official colospace HSL/HSV converters from boost source tree (BOOST_VERSION > 1_69) mapnik@7f2c8b756a
- Only push new elements to
parenStackwhen needed #4096 - Use
& maskfor array bounds clipping (provided array size is 2^n) mapnik@1edd3b7a930 - Avoid potential out-of-bounds array access (undefined behaviour) + add c++
C-arraysize implementation mapnik@dec6bc095081
- Update protozero to v1.6.8
- Update geometry.hpp to v1.0.0
- Update wagyu to 0.5.0
- Drop support for Node versions less than 10.
- Consistent output image size compatible with other SVG libraries (#938)
- Update to mapnik@a0ea7db1a
(https://github.com/mapnik/mapnik/compare/da69fdf66...a0ea7db1a)
- Accept explicit parameter "application_name" in postgis and pgraster datasources mapnik/mapnik#3984
- Use
ST_MakeEnvelopemapnik/mapnik#3319 - postgis.input: always put decimal point in substituted tokens in SQL mapnik/mapnik#3942
- Replace MAPNIK_INIT_PRIORITY workaround
- Ensure 'scaling' and
comp-opstored as enumeration_wrappers + fix imagescalingproperty mapnik/mapnik#4066 - New raster colorizer mode for Terrain-RGB mapnik/mapnik#4058
- mapnik@831e353c5 SVG parser: better stderr - don't assume fill/stroke ref is a , can be a also
- Adaptive
smoothmapnik/mapnik#4031 - CSS parser - use appropriate storage type for
huevalue (0..320) mapnik/mapnik#4020 - mapnik@776fa0d2f True global pattern alignment, fixed local alignment
- mapnik@692fc7f10 render_pattern() needs its own rasterizer
- Remove remaining "SVG parse error" error message headers
- Updated NAN bindings to support node12
- Added support for
remove_layeron map object - Fixed various resource leaks
- Remove bogus "SVG parse error" error message header
- Performance improvement in
mapnik.blendandmapnik.Imagemethods by having it hold the event loop less time and copying less data into buffers - Added
Map.remove_layermethod for removing layer from the map.
mapnik.Image.resizewill now accept non premultiplied images and return them back as non premultiplied images
- Added
offset_widthandoffset_heightoptional parameters to themapnik.Image.resizeandmapnik.Image.resizeSyncmethods. - Made
mapink.blend()now acceptmapnik.Imageobjects.
- Update to mapnik@da69fdf66
- Updated mapnik-vector-tile to fix strange clipping in vector tiles #892
- Added ability to release the underlying buffer from a vector tile when using
getDatamethod so no memory is copied.
- Added support for node v10
- Stop bundling node-pre-gyp
- Upgraded to mapnik@a2f5969 (pre-release master)
- Upgraded to protozero@1.6.2 (and also now pulling via submodule)
- Upgraded to mapnik-vector-tile@2.1.1 (https://github.com/mapbox/mapnik-vector-tile/blob/master/CHANGELOG.md#211)
- Pass variables to replace tokens in query (#809)
- Changed SVG parsing behavior to respect strict mode, and default to off.
- Upgraded to Mapnik v3.0.20
- Mapnik 3.7.0 was not properly published to npm with node-pre-gyp. Releasing again with fix.
- Fix to
SSE_MATHflag during building
Updated to 3.0.18 of mapnik. See here.
- Updated to mapnik-vector-tile@1.6.1
- Removed windows support (#848)
Updated to 3.0.15 of mapnik. The full changelog for this release is located here.
Updated for a fix associated with mapnik-vector-tile where images could be requested that would have a width or height of zero resulting in exceptions.
Several fixes associated with different mapnik by updating to use 3.0.14. Please see mapnik change log for specifics. In general note worthy changes from mapnik include stricter geojson parsing, fixes for raster plugin, fixes to image scaling, changing the meaning of filter-factor, and improvements to the the TIFF decoder.
Due to changes in the mapnik core version during this update you should see some changes in the image rescaling of raster and gdal plugin source data. This will definitely change the expected output. This is due to fixes in long standing bugs in the mapnik library.
- Now supporting node v8
- Updated to mapnik-vector-tile@1.4.0
- Mapnik minimum version updated to 3.0.14. Does not work with mapnik 3.1.x currently.
- Fixed tests around zlib compression and decompression when comparing to node's implementation
- Fixes rare situation of seg faults during mapnik-vector-tile image processing.
- Corrects the resolution of images in mapnik-vector-tile when using parameters from postgis plugin.
- Updated to use
font_engineinstance()method explicitely, reflecting on changes brought by 3688
This release has major performance and stability improvements.
The biggest change is the move to https://github.com/mapbox/wagyu for clipping polygons, which is faster and results in more robust results than the previous implementation based off the "clipper" http://www.angusj.com/delphi/clipper.php. The "clipper" was known to hang on very large polygons and could output self-intersecting polygons.
The second largest change is the update of all major C/C++ dependencies. The changelogs for each are listed below. The highlights are 1) the performance improvements in webp 1.6.0, 2) the many crashes fixed in harfbuzz (harfbuzz/harfbuzz#139), and critical security bugs fixed in libpng, libjpeg, and libtiff.
The third most important set of changes were to node-mapnik directly: for performance many functions now can premultiply as part of another async operation (to avoid needing an additional threadpool access for async premultiply - this matters under load when the threadpool may be full since access can block). And many functions that allocate images now protect from extreme allocation that could hang a machine and result in OOM. Additionally the address sanitizer caught several cases of undefined behavior.
- Added support for node v7
- Updated to 1.3.0 of Mapnik Vector Tile (https://github.com/mapbox/mapnik-vector-tile/blob/master/CHANGELOG.md#130)
- Removed Angus Clipper and replaced with Wagyu v0.4.2 (https://github.com/mapbox/wagyu)
- Upgraded to protozero@1.5.1
- Upgraded to mapnik-vector-tile@1.3.0
- Changed build system to use mason instead of mapnik-packaging
- Added docs for Map#queryPoint and Map#queryMapPoint, #701
- Added docs for plugins
- Fixed potential abort due to unhandled error in Mapnik when passing invalid image dimensions
- Now limiting size of image internally allocated for
image.fromSVGBytesandimage.fromSVG, #709 Defaultmax_sizeis 2046x2046. Passmax_sizeoption to customize. - Added
max_sizelimitation +premultiplyoption toImage.fromBytes, #720 - Optimized
VectorTile.queryto use fewer allocations - Fixed potential overflow in
Image.fromSVG, refs #740 - Fixed support for generating Vector Tiles at > z30, #730
- Fixed invalid casts detected by address sanitizer, #739
- Binaries compiled with clang-3.9 and requiring at least GLIBCXX_3.4.21 from libstdc++ (https://github.com/mapnik/node-mapnik#depends)
- Binaries updated to use mapnik
v3.0.13, see changelog. - Updated dependency versions (also visible in
install_mason.sh):- jpeg_turbo 1.5.1 (previously 1.5.0 | https://github.com/libjpeg-turbo/libjpeg-turbo/releases/tag/1.5.1)
- libpng 1.6.28 (previously 1.6.24 | http://www.libpng.org/pub/png/libpng.html)
- libtiff 4.0.7 (previously 4.0.6 | http://www.simplesystems.org/libtiff/v4.0.7.html)
- icu 57.1 (previously 56.1 | http://site.icu-project.org/download/57)
- proj 4.9.3 (previously 4.9.2 | https://github.com/OSGeo/proj.4/blob/18e6f047af7962a6da4ae3d6122034db4f8fe935/NEWS#L1)
- pixman 0.34.0 (no change)
- cairo 1.14.8 (previously 1.14.6 | https://www.cairographics.org/news/cairo-1.14.8/)
- webp 0.6.0 (previously 0.5.1 | https://chromium.googlesource.com/webm/libwebp/+/v0.6.0)
- libgdal 2.1.3 (previously 2.1.1 | https://trac.osgeo.org/gdal/wiki/Release/2.1.3-News)
- boost 1.63.0 (previously 1.61.0 | http://www.boost.org/users/history/version_1_63_0.html)
- freetype 2.7.1 (previously 2.6.5 | https://sourceforge.net/projects/freetype/files/freetype2/2.7.1/)
- harfbuzz 1.4.2 (previously 1.3.0 | https://github.com/behdad/harfbuzz/blob/8568588202dd718b089e43cd6d46f689c706f665/NEWS#L29)
- Added support for node v6.x
- Now persisting image buffer in
mapnik.Image.fromBufferSyncto prevent undefined behavior if buffer were to go out of scope (#677) - Upgraded to mapnik-vector-tile@1.2.2
- Upgraded to protozero@1.4.2
- Added
typeName()tomapnik.Geometry. This returns the GeoJSON type name of a geometry (@davidtheclark). - Fixed potential unsigned integer overflow in
mapnik.blend - Binaries compiled with clang-3.8 and now requiring >= GLIBCXX_3.4.21 from libstdc++ (https://github.com/mapnik/node-mapnik#depends)
- Binaries updated to use mapnik
v3.0.12, see changelog. - Binaries updated to use mapnik-packaging@7862fb9:
- icu 56.1
- boost 1.61.0
- sqlite 3140100
- freetype 2.6.5
- harfbuzz 1.3.0
- proj 4.9.2
- libpng 1.6.24
- libtiff 4.0.6
- webp 0.5.1
- jpeg-turbo 1.5.0
- libpq 9.4.5
- cairo 1.14.6
- pixman 0.34.0
- gdal 2.1.1
- expat 2.2.0
- Updated to mapnik-vector-tile
1.2.0, includes a fix for rare decoding situation in vector tiles where a tile would be incorrectly considered invalid. - Still using mapnik
v3.0.11
- Fix performance regression when passing raster through vector tile (via upgrade to mapnik-vector-tile@1.1.2)
- Still using mapnik
v3.0.11
- Fix for numerical precision issue in mapnik vector tile where valid v2 vector tiles would be thrown as invalid
- Added new exception handling for toGeoJSON
- Still using mapnik
v3.0.11
- Fix for a segfault in the vector tile clipping library
- Still using mapnik
v3.0.11
- Updated to mapnik-vector-tile
1.1.0 - Automatic updating of vector tiles from v1 to v2 no longer takes place automatically when using
setDataandaddData. - Validation of vector tiles is now optional when using
setDataandaddData - Still using mapnik
v3.0.11
- Updated to mapnik-vector-tile
1.0.6which includes a speedup on simplification for mapnik-vector-tile - Still using mapnik
v3.0.11
- Fixed a situation where repeated holes on top of each other could result in self intersections in vector tile geometries
- Improved the speed of vector tile creation by removing unrequired checks in clipper library
- Fixed a situation in clipper where horizontals could result in invalid self intersections.
- Prevent intersections outside the clipper from being processed after intersections inside the clipped area as this in very rare situations would cause an intersection.
- Updated to mapnik
3.0.11, see changelog.
- Another set of fixes for clipper where it would produce invalid polygons when creating vector tiles.
- Fixed another endless loop in clipper around vector tile creation
- Fixed a situation where the clipper would get locked in an endless loop when creating vector tiles.
- Updated the angus clipper with several fixes that solve intersections issues within vetor tile polygons created when using strictly simple
- Updated version of
mapnik-vector-tileto1.0.5this solves a SEGFAULT that occurs in rare situations when encoding fails - Corrected some problems in the documentation
- Added a new optional arguments
split_multi_featuresandlat_lontomapnik.VectorTile.reportGeometryValidityandmapnik.VectorTile.reportGeometryValiditySyncthat enables validity checks against the parts of multi geometries individually.
- Stopped building node v0.12 binaries. Use node v4 or v5 instead if you need node-mapnik binaries.
- No code changes: Just a rebuild of 3.5.2 but with debug binaries that can be installed with
npm install --debug
- Fixed bug in
mapnik-inspect.jsaround using oldparse()method on vector tiles, updated it to usemapnik.VectorTile.info - Updated
mapnik-vector-tileto1.0.3fixing issues with non valid vector tiles being created and linking issue in mapnik-vector-tile with latest mapnik library - Updated clipper library to fix bug mentioned in
mapnik-vector-tile
- Added the
mapnik.VectorTile.infocommand that returns an object that inspects buffers and provides information about vector tiles. - Updated
mapnik-vector-tileto1.0.2
This is a major update and reflects a large number of changes added into node-mapnik due to update of the Mapbox Vector Tile Specification. As part of this the mapnik-vector-tile library was updated to 1.0.0. Therefore, a large number of interfaces changes have taken place around the mapnik.VectorTile object.
It is important to know that the concept of width and height have been removed from mapnik.VectorTile objects. This is replaced by the concept of tileSize. While width and height were based on the concept of an Image size created from a vector tile, tileSize is directly related to the extent as defined in the Layer of a vector tile. For understanding what the Layer and extent is please see the Vector Tile Specification. This also changed the buffer_size arguments that were commonly used in many Vector Tile methods, which was also based on the Image size. The vector tile object now contains a bufferSize which represents the buffer added to the layer extent in a tile.
Internally, all methods now depend on V2 tiles, however, any V1 tiles that are loaded into a mapnik.VectorTile object will automatically be updated.
Summary of changes:
mapnik.VectorTile.addDatanow verifies buffers validity and internally updates v1 tiles to v2mapnik.VectorTile.addDataSyncnow verifies buffers validity and internally updates v1 tiles to v2mapnik.VectorTile.setDatanow verifies buffers validity and internally updates v1 tiles to v2mapnik.VectorTile.setDataSyncnow verifies buffers validity and internally updates v1 tiles to v2mapnik.VectorTile.addImagenow takes amapnik.Imageobject rather then a buffer, it also takes optional arguments image_scaling and image_format.mapnik.VectorTile.addImageBufferreplaces the old functionality of ofmapnik.VectorTile.addImage- Added
mapnik.VectorTile.addImageSyncand mademapnik.VectorTile.addImageaccept a callback. - Added
mapnik.VectorTile.addImageBufferSyncand mademapnik.VectorTile.addImageBufferaccept a callback. mapnik.VectorTile.height()method is removedmapnik.VectorTile.width()method is removedmapnik.VectorTile.parse()method is removedmapnik.VectorTile.IsSolid()method is removedmapnik.shutdown()is removed- Removed the dependency on libprotobuf library
- Lowered memory requirements for vector tile creation and vector tile operations.
- Duplicate layer names in
mapnik.VectorTileobjects are no longer permitted. - Added new
mapnik.VectorTile.extent()method which returns the bounding box of a tile in EPSG:3857 - Added new
mapnik.VectorTile.bufferedExtent()method which returns the bounding box including buffer of a tile in EPSG:3857 - Added new
mapnik.VectorTile.emptyLayers()method which returns the name of layers which were not added to a tile during any tile rendering operation. - Added new
mapnik.VectorTile.paintedLayers()method which returns the name of layers which were considered painted during rendering or layers that contain data. - Added new
mapnik.VetorTile.tileSizeproperty. - Added new
mapnik.VetorTile.bufferSizeproperty. - Updated many of the default configuration options on
mapnik.VectorTileclass methods - Removed the concept of
path_multiplierfrom the code entirely. - Added optional arguments of
tile_sizeandbuffer_sizetomapnik.VectorTileconstructor.
- Update to mapnik-core 3.0.11 with a fix to unquoted strings
- Fixed decoding bug that assumed tags came before geometries in vector-tile layers
- Binaries updated to use v3.0.10 and mapnik-packaging@d6ae1fb
- Upgraded to protozero v1.3.0
- Fixed invalid usage of
mapbox::variantthat was causing windows compiler crash
Notable Changes in Mapnik v3.0.10 include:
- A shapefile index now is skipped instead of causing an error to be throw. The shapefile plugin will then proceed by reading without using an index. It is advisable to regenerate the indexes to maintain top performance.
Notable changes in the Mapnik SDK include:
- sqlite 3100000->3110000
- libpng 1.6.20->1.6.21
- postgres 9.4.5->9.5.1
- sparsehash 2.0.2->2.0.3
- Fixed
image.resizebehavior when scaling images with alpha (#585) - Binaries updated to use v3.0.9-125-g5e30aee and mapnik-packaging@db696ed
Notable Changes in Mapnik v3.0.9-125-g5e30aee include:
- Compare: https://github.com/mapnik/mapnik/compare/v3.0.9-48-gbb8cd10...v3.0.9-125-g5e30aee
- Support for rendering
dash-arrayin SVGs - SVG parser is now stricter (fails is all input is not parsable)
- SVG parser now correctly handles optional separator
(,)between multiple command parts - Optimized parsing of
pngformat string - The
memory_datasourcenow dynamically reports correct datasource type (vector or raster) - Upgraded
mapbox::variant@272f91c
Notable changes in the Mapnik SDK include:
- none
vtile.querynow returns WGS84x_hitandy_hitvalues of the nearest point/vertex- Upgraded to nan@2.2.0
- Upgraded to mapnik-vector-tile@0.14.4
- Binaries updated to use Mapnik v3.0.9-57-g9494bc1 and mapnik-packaging@039aa0d
Notable Changes in Mapnik v3.0.9-57-g9494bc1 include:
- Fixed parsing of SVG
PathElement(mapnik/mapnik#3225)
- BREAKING: shapefile index files must be regenerated if using the
node-mapnik binaries which now default to Mapnik
v3.0.9-48-gbb8cd10(seeNotable Changes in Mapnikbelow for details). - Upgraded to node-pre-gyp@0.6.19
- Upgraded to mapnik-vector-tile@0.14.2
- Fixed premultiplication bug in raster encoding (#170)
- Binaries updated to use Mapnik v3.0.9-48-gbb8cd10 and mapnik-packaging@039aa0d
Notable Changes in Mapnik v3.0.9-48-gbb8cd10 include:
- BREAKING: any
.indexfiles accompanying a.shpmust now be regenerated otherwise an error will be throw likeError: invalid index file. To avoid this error you can either delete the existing.indexfiles, or ideally runshapeindex(or mapnik-shapeindex.js) to recreate the.index. The trigger for this change was an optimization that required a new binary format for the shapefile indexes (mapnik/mapnik#3217). It was a mistake of @springmeyer to bring this into node-mapnik minor release (I'm sorry). - WARNING: index files generated with this newer Mapnik are invalid for older versions of Mapnik.
- Compare: https://github.com/mapnik/mapnik/compare/v3.0.9...v3.0.9-48-gbb8cd10
- The
shapeindexcommand now has a--index-partsoption - Upgraded mapbox::variant@3ac6e46
- JSON parsing now supports arbitrary (nested) attributes in
geometry
Notable changes in the Mapnik SDK include:
- Upgrade libpng 1.6.19 -> 1.6.20
- Upgrade webp 0.4.4 -> 0.5.0
- Upgrade sqlite3 3.9.2 -> 3.10.0
- Exposed
image_scalingandimage_formatinvtile.composite(#572)- Default format is now
webpencoding rather thanjpeg(to support transparency) - Default scaling is now
bilinearrather thannear
- Default format is now
- Binaries updated to use Mapnik v3.0.9-17-g75cb954 and mapnik-packaging@e29a81e
Notable Changes in Mapnik 3.0.9-17-g75cb954 include:
- Support arbitrary (nested) attributes in JSON Geometry
- Fixed
shapeindexto avoid creating an index for null shapes
- Expose
mapnik.Geometry.type#562 - Travis tests now run against
osx_image: xcode7 - Appveyor tests now run against
nodejs_version: 5.1.0 - Updated nan to
~2.1.0 - Updated node-pre-gyp to
~0.6.16 - Updated npm-windows-upgrade (#566)
- Binaries updated to use Mapnik v3.0.9 and mapnik-packaging@1aa9705
Notable Changes in Mapnik 3.0.9 include:
- The
mapnik-indexcommand now has a--validate-featuresoption - CSV - change 'quote' auto-dection logic to handle mixed cases better
- Fixed
shapeindexfor 3dpoints (mapnik/mapnik#3184) - Fixed GeoJSON ordering (mapnik/mapnik#3182)
- Fixed parsing of empty GeoJSON FeatureCollections (mapnik/mapnik#3167)
- Invalid bbox is now instantiated with
std::numeric_limits<T>::max()(https://github.com/mapnik/mapnik/commit/4d6a735f535c27561bb40567398aba19a88243d4) - Fixed raster scaling/nodata handling (mapnik/mapnik#3147)
- For more details see entries for https://github.com/mapnik/mapnik/blob/master/CHANGELOG.md#309
Notable changes in the Mapnik SDK include:
- Upgrade harfbuzz 1.0.6 -> 1.1.2
- Upgrade pixman 0.32.6 -> 0.32.8
- Upgrade cairo 1.14.2 -> 1.14.4
- Upgrade libxml2 2.9.2 -> 2.9.3
- Upgrade postgres 9.4.0 -> 9.4.5
- Upgrade libpng 1.6.18 -> 1.6.19
- Upgrade icu_version 55.1 -> 56.1
- Upgrade icu_version2 55_1 -> 56_1
- Now bundling the
mapnik-indexcommand (#545) - Added
process_all_ringsoption toVectorTile.composite,VectorTile.addGeoJSON, andMap.render. This option enables invalid ring to be processed (and potentially kept during re-encoding) when creating vector tiles. By default this is set tofalse. Use with caution. - Added enum for all polygon fill types under
mapnik.polygonFillType. Options arenonZero,evenOdd,positive, andnegative - Added
fill_typeoption toVectorTile.composite,VectorTile.addGeoJSON, andMap.render. By default this is set tomapnik.polygonFillType.nonZero - Added
multi_polygon_unionoption toVectorTile.composite,VectorTile.addGeoJSON, andMap.render. By default this is set totrue. This will cause multipolygons to undergo a union operation during vector tile creation. - Added
simplify_distanceoption toVectorTile.composite. - Added
max_extent(bbox) option toVectorTile.composite. By default it is unset which means no clipping extent will be used for the operation. If provided the data will be restricted to this extent.- Landed in https://github.com/mapnik/node-mapnik/commit/ef3b12a36f529a1a8fbb70f4ddd6a92e1bd22008
- Previously compositing was using a hardcoded global extent of
-20037508.34,-20037508.34,20037508.34,20037508.34which meant that all vector tile data was being clipped to global extents. This was harmless in all cases except when data contained data outside of global extents intentionally in order to avoid rendering of lines and blurs being visible at tile boundaries.
- Added
reencode(boolean) option toVectorTile.composite. Iftruewill trigger re-rendering even if the z/x/y of all tiles matches. Iffalse(the default) then tiles will be concatenated for best performance. - Updated mapnik-vector-tile to
v0.14.1 - Binaries updated to use Mapnik v3.0.9-rc2 and mapnik-packaging@6f2f178
Notable Changes in Mapnik 3.0.9-rc2/3.0.8 include:
- Improved support for natural earth shapefiles
- Improved CSV and JSON parsing and error handling
- Stricter GeoJSON parsing in geojson.input (mapnik/mapnik#3125)
- For more details see entries for https://github.com/mapnik/mapnik/blob/master/CHANGELOG.md#308 and https://github.com/mapnik/mapnik/blob/master/CHANGELOG.md#309
Notable changes in the Mapnik SDK include:
- Upgrade freetype 2.6 -> 2.6.1
- Upgrade proj 4.8.0 -> 4.9.2
- Upgrade png 1.6.17 -> 1.6.18
- Upgrade tiff 4.0.4 -> 4.0.6
- Upgrade jpeg-turbo 1.4.1 -> 1.4.2
- Upgrade GDAL 2.0.0 -> 2.0.1
- Upgrade Harfbuzz 0.9.41 -> 1.0.6
- Upgrade sqlite 3.8.10.2 -> 3.9.2
- Upgrade webp 0.4.3 -> 0.4.4
- Updated to use mapnik-vector-tile
0.13.0 - Linestrings will no longer contain repeated points when vector tiles are created
- Added a new method called
decode_geometryas an optional argument totoJSONformapnik.VectorTileobject this option provides decoded geometry in the raw form from the vector tile. - Updated to use a more recent version of the angus clipper library.
- Binaries updated to use Mapnik v3.0.7 and mapnik-packaging@9606f72ef0
Notable Changes in Mapnik 3.0.7 include:
- Fixed bugs in the PostGIS
key_field_as_attributebehavior
Notable changes in the Mapnik SDK include:
- Upgrade cairo 1.12.18 -> 1.14.2
- Upgrade boost 1.58 -> 1.59
- Now supporting Node v4.x
- The
new mapnik.Paletteconstructor no longer accepts a string - please pass a correctly encoded buffer. - Added
reportGeometrySimplicityandreportGeometryValiditytomapnik.VectorTile. These check if the geometry in the vector tile is OGC simple or valid. - Added
strictlySimpleoption when creating vector tiles. - Updated to use mapnik-vector-tile
0.12.0
Notable Changes in Mapnik 3.0.5 include:
- PostGIS plugin: added
key_field_as_attributeoption. Defaults toTrueto preserve current behavior of having thekey_fieldadded both as an attribute and as thefeature.idvalue. Ifkey_field_as_attribute=falseis passed then the attribute is discarded (mapnik/mapnik#3115) - CSV plugin has been further optimized and has gained experimental support for on-disk indexes (mapnik/mapnik#3089)
- SVG parser now fallsback to using
viewboxif explicit dimensions are lacking (mapnik/mapnik#3081) - Fixed parsing colors in hexadecimal notation (mapnik/mapnik#3075)
- Rebuilt with Mapnik 3.0.5
- Added ability to create an image using a Buffer object. It should be noted that this should be used very carefully as the lifetime of the Image object is tied to that of the Buffer. If the buffer object is garbage collect this could result in a segfault.
Notable Changes in Mapnik 3.0.5 include:
scale-hslaimage filter: parameters are no longer limited by interval [0, 1] (mapnik/mapnik#3054)- Windows: Fixed SVG file loading from unicode paths
colorize-alphaimage filter: fixed normalization of color components (mapnik/mapnik#3058)colorize-alphaimage filter: added support for transparent colors (mapnik/mapnik#3061)- Enable reading optional
MAPNIK_LOG_FORMATenvironment variable(https://github.com/mapnik/mapnik/commit/6d1ffc8a93008b8c0a89d87d68b59afb2cb3757f) - CSV.input uses memory mapped file by default on *nix.
- Updated bundled fonts to the latest version
- Topojson.input - fixed geometry_index logic which was causing missing features
- Fixed SVG file loading from unicode paths (#517)
- CSV.input - improved support for LF/CR/CRLF line endings on all platforms (mapnik/mapnik#3065)
- Enhanced
vtile.setDataandvtile.getDatato have async signatures if callback passed as last argument. - Enhanced
vtile.setDatato accept gzip and zlib compressed data. - Enhanced
vtile.getDatato accept options to gzip compress data before returning buffer likevtile.getData({compression:'gzip'}) - Rebuilt with 0.10.0 of Mapnik Vector Tile. This changes the way that
paintedmethod returns inVectorTileclasses. - In
VectorTileobjectparseis no longer required please consider it depreciated. VectorTilenow utilizes the protozero library for lower memory vector tile operations.
- Rebuilt against Mapnik 3.0.4
Notable changes in Mapnik SDK include:
- CSV.input: plug-in has been refactored to minimise memory usage and to improve handling of larger input. (NOTE: large_csv branch adds experimental trunsduction parser with deferred string initialisation)
- CSV.input: added internal spatial index (boost::geometry::index::tree) for fast
bounding boxqueries (mapnik/mapnik#3010) - Fixed deadlock in recursive datasource registration via @zerebubuth (mapnik/mapnik#3038)
- Rebuilt against updated Mapnik SDK to fix mysterious zlib related build issue.
- Upgrade to mapnik-vector-tile@0.9.2
- Added
Image.filterandImage.filterSyncto filter images. - Binaries updated to use Mapnik v3.0.3
- Upgrade to mapnik-vector-tile@0.9.3
- Fixed multipoint encoding
- Optimized geometry decoding
Notable changes in the Mapnik SDK include:
- Fixed an issue with fields over size of
int32inOGRplugin (#499) - Added 3 new image-filters to simulate types of colorblindness (
color-blind-protanope,color-blind-deuteranope,color-blind-tritanope) - Fix so that null text boxes have no bounding boxes when attempting placement ( 162f82cba5b0fb984c425586c6a4b354917abc47 )
- Patch to add legacy method for setting JPEG quality in images ( #3024 )
- Added
filter_imagemethod which can modify an image in place or return a new image that is filtered - Added missing typedef's in
mapnik::geometryto allow experimenting with different containers
- Added
Image.fromSVG,Image.fromSVGBytesand the equivilent Sync functions for each - Binaries updated to use Mapnik v3.0.2 and mapnik-packaging@049968d24
Notable changes in the Mapnik SDK include:
- Added container to log SVG parsing errors
- Reimplemented to use rapidxml for parsing XML (DOM)
- Support both xml:id and id attributes ( xml:id takes precedence )
- Added parse_id_from_url using boost::spirit
- Added error tracking when parsing doubles
- Unit tests for svg_parser to improve coverage
- Fixed rx/ry validation for rounded_rect
- Fixed dimensions parsing
- Remove libxml2 dependency
- Installing like
npm install mapnik --toolset=v140now installs windows binaries built with Visual Studio 2015 (rather than 2014 CTP4) - Added support for
buffer_sizeinaddGeoJSON(#457) - Fixed bug in
rendermethod of VectorTile where invalid parameters could cause a segfault. - Added
mapnik.Image.resizemethod that enables images to be resized. - Now setting
VRT_SHARED_SOURCE=0(#437) - Removed usage of
V8::AdjustAmountOfExternalAllocatedMemoryinmapnik.Imageandmapnik.Grid(#136) - Upgraded to node-pre-gyp@0.6.9
- Upgrade to mapnik-vector-tile@0.8.5
- Updated vector tile clipping so that it throws out polygons outside bbox of tile
- Binaries updated to use Mapnik v3.0.1 and mapnik-packaging@049968d24
Notable changes in the Mapnik SDK include:
- Update gdal 1.11.2->2.0.0
- Update freetype 2.5.5->2.6
- Update harfbuzz 0.9.40->0.9.41
- Changed the offset algorithm such that offsets now will always be positive to the left of the direction of the path
- Increased performance of text rendering
- Fixed text placement performance after #2949 (#2963)
- Fixed rendering behavior for text-minimum-path-length which regressed in 3.0.0 (#2990)
- Fixed handling of xml:id in SVG parsing (#2989)
- Fixed handling of out of range rx and ry in SVG rect (#2991)
- Fixed reporting of envelope from mapnik::memory_datasource when new features are added (#2985)
- Fixed parsing of GeoJSON when unknown properties encountered at FeatureCollection level (#2983)
- Fixed parsing of GeoJSON when properties contained {} (#2964)
- Fixed potential hang due to invalid use of line-geometry-transform (6d6cb15)
- Moved unmaintained plugins out of core: osm, occi, and rasterlite (#2980)
mapnik.imageTypeis now passed in options to new mapnik.Image- Upgrade to mapnik-vector-tile@0.8.4
- Fixes support for decoding known degenerate polygons (from AGG clipper)
- Fixes support for handling data in alternative projections
- Fixes support for geometry collections
- Fixes support for skipping out of range coordinates to avoid aborting polygon clipping
- Includes fixes to clipper to avoid aborting on out of range coordinates
- Fixed support for gracefully handling proj4 transformation errors
- Upgraded to node-pre-gyp@0.6.7
- Binaries updated to use Mapnik v3.x (master branch) at 39eab41 and mapnik-packaging@3ab051556e
Notable changes in the Mapnik SDK include:
- Fixed potential crash when rendering metatiles to webp
- Now throws on missing style when loading map in strict mode
- Now handling when proj4 returns HUGE_VAL
- Fixed crash when jpeg reader is used to open a png
- Fixed gamma pollution for dot symbolizer
- Purged usage of
boost::ptr_vectorandboost::unordered_map - Support for GDAL 2.0
- Update boost 1.57.0->1.58.0
- Update icu 1.54.1->1.55.1
- Update sqlite 3.8.8.2->3.8.10.2
- Update png 1.6.16->1.6.17
- Update tiff 4.0.4beta->4.0.4
- Update jpeg-turbo 1.4.0->1.4.1
- Ugraded to Mapnik 3.x version with totally new geometry storage
- Upgrade to mapnik-vector-tile@0.8.0
- Upgraded to node-pre-gyp@0.6.5
- Added an additional parameter to Projection initialization. This prevents the initialization of a proj4 object internally. This will only be useful when reprojecting from epsg:4326 to epsg:3857 and vise versa.
- Binaries updated to use Mapnik v3.x (master branch) at 126c777.
- Added support for a variety of different grayscale images and
mapnik.imageTypelistmapnik.imageType.nullmapnik.imageType.rgba8mapnik.imageType.gray8mapnik.imageType.gray8smapnik.imageType.gray16mapnik.imageType.gray16smapnik.imageType.gray32mapnik.imageType.gray32smapnik.imageType.gray32fmapnik.imageType.gray64mapnik.imageType.gray64smapnik.imageType.gray64f
- Added the ability to return colors optionally with
getPixelonImageobjects - Added new constructors for
Colorobject - Added the concept of premultiplied to
ImageandColorobjects Imageobjects no longer have abackgroundproperty- Added
fillandfillSyncmethods toImageobjects to replacebackgroundproperty - Added
imageCopyto copy an image into a new image type Imagergba8objects are not automatically premultiplied prior to usingcompositeoperation- Added image view support for all new grayscale image types
- Modified tolerance option on
queryandqueryManyto only include features within that tolerance into the vector tile. - Modified the
renderSyncmethod on theMapobject to only take an optional parameters object. Format can still be set by passing format as a optional argument. This was done so that it mirrorsrenderFileSync. The default format if none is provide is 'png' - Changed name of method
hsl2rgb2tohsl2rgb - Changed name of method
rgb2hsl2torgb2hsl - Removed format parameter from
GridandGridViewobjectsencodeandencodeSyncmethods as it had no affect. - Added
active,queryable,clear_label_cache,minzoom, andmaxzoomproperty toLayerobjects - Added
compositeSynctoVectorTileobject. - Changed
compositeinVectorTileto accept a callback - Upgraded to nan@1.7.0 and mapnik-vector-tile@0.7.1
- Changed boolean on
ParametersforMapobject such that 1 and 0 are no longer boolean but integers. - Binaries updated to use Mapnik v3.x (master branch) at 3270d42b74821ac733db169487b5cd5d5748c1e6 and mapnik-packaging@6638de9b5b
Notable changes in the Mapnik SDK include:
- Changes: https://github.com/mapnik/mapnik/compare/30c6cf636c...5a49842952
- Mapnik TopoJSON plugin now supports optional
bboxproperty on layer - Various improvements to Mapnik pgraster plugin
- Mapnik GDAL plugin now keeps datasets open for the lifetime of the datasource (rather than per featureset)
- Mapnik GDAL plugin now has optimized nodata handling for RGB images.
- Mapnik no longer calls
dlcloseon gdal.input (mapnik/mapnik#2716) - Upgraded Clipper to v6.2.8 / svn r492.
- Upgraded libtiff to 4.0.4beta
- Upgraded libjpeg-turbo to 1.4.0
- Upgraded GDAL to 1.11.2
- Upgraded harfbuzz to 0.9.38
- Now supporting IO.js 1.x and Node v0.12.x
- Optimized
vtile.addGeoJSONby switching to Mapnik native GeoJSON plugin internally rather than OGR. - Upgraded to node-pre-gyp@0.6.4
- Security Fix: now throwing error instead of abort when vtile.getData() is called which needs to produce a node::Buffer larger than node::Buffer::kMaxLength (bed994a). However this condition did not previously happen due to integer overflow which is now also fixed (#371)
- Now handling C++ exceptions in vt.composite to prevent possible abort (although none could be replicated)
- Removed nik2img from binary packages (not useful since it duplicates ./bin/mapnik-render.js)
- Added stress test benchmarks that live in ./bench folder of git repo
- Added
isSolidmethod toImageobject - When making vector tiles that are larger then 64 MB changed node so that it would no longer through an abort but rather an exception
- Added extra meta data for some datasource associated with the use of the
describemethod on datasources
Notable changes in the Mapnik SDK include:
- Changes: https://github.com/mapnik/mapnik/compare/8063fa0...30c6cf636c
shapeindexnow works properly for point 3d shapes- Improved auto-detection of
geometry_tablefrom sql subselects for PostGIS plugin - Fixed hextree encoder (will produce non-visible image differences)
- Fixed bugs in GeoJSON parser
- GroupSymbolizer now supports MarkersSymbolizer and not PointSymbolizer
- Fixed bugs in
VectorTile.toGeoJSONto ensure properly formatted JSON output. - Cleanup of Javascript code and tests using JSLint.
- Added preliminary support for building against Nan v1.5.0 and IO.js v1.0.1 (but still using Nan v1.4.1 for the time being)
- Added
mapnik.versions.mapnik_git_describeto get access to the git details of the Mapnik version node-mapnik was built against. - Fixed
mapnik-inspect.jsscript. - Binaries updated to use Mapnik v3.x (master branch) at 8063fa0 and mapnik-packaging@0cc6382
Notable changes in the Mapnik SDK include:
- Changes: https://github.com/mapnik/mapnik/compare/1faaf595...8063fa0
- Fixed marker properties to not override svg
fill:noneorstroke:none, which avoids unintended colorization of svg symbols - Added support for
text-transform:reverse - Fixed utf8 output in json properties grammar
- Upgraded to latest Mapbox Variant
- Upgrade freetype 2.5.4 -> 2.5.5
- Upgrade libpng 1.6.15 -> 1.6.16
- Upgrade cairo 1.12.16 -> 1.12.18
- Still pinned to harfbuzz 7d5e7613ced3dd39d05df83c
- Now vt.composite
buffer-sizedefaults to1instead of256andtolerancedefaults to8instead of1. - Improvements to internals of mapnik.blend
- Fixed rare error when reading image data with the async
mapnik.Image.fromBytes - Binaries updated to use Mapnik v3.x (master branch) at 1faaf595 and mapnik-packaging@5a436d45e3513
Notable changes in the Mapnik SDK include:
- New and experimental
dotsymbolizer. - GeoJSON/TopoJSON plugin now returns correct ids even if rendered twice.
font-feature-settingsis now respected per text item.- image_data internals were refactored.
- Ignore overviews with 0 scale in pgraster (@rafatower)
- Fixed support for handling all SQLite columns (@StevenLooman)
- Upgrade libpng 1.6.14->1.6.15
- Upgrade freetype 2.5.3->2.5.4
- Upgrade sqlite 3080701->3080704
- Upgrade postgres 9.3.4->9.4.0
- Upgrade openssl 1.0.1i->1.0.1j
- Upgrade harfbuzz 0.9.35->0.9.37/7d5e7613ced3dd39d05df83ca7e8952cbecd68f6
- Now providing 32 bit windows binaries in addition to 64 bit
- Added
Map.registerFonts() - Upgraded to node-pre-gyp@0.6.1
- Aliased
mapnik.register_fonts()->mapnik.registerFonts(),mapnik.register_datasources()->mapnik.registerDatasources(). - Binaries updated to use Mapnik v3.x (master branch) at 2577a6c and mapnik-packaging@759c4a32ba
- Added
mapnik.Logger - Added
Map.loadFonts,Map.fonts(),Map.fontFiles(),Map.fontDirectory(), andMap.memoryFonts() - Added
Feature.fromJSONandFeature.geometry - Added
Geometry.toJSON - Removed:
Feature.numGeometries,Feature.addAttributes, andFeature.addGeometry - BREAKING:
VectorTile.toGeoJSONnow returns a string VectorTile.toGeoJSONnow supports multigeometries and is async if callback is passed- Dropped build dependency on pkg-config (protobuf headers and libs are assumed to be installed at paths reported by mapnik-config)
- Upgraded Nan to v1.4.0
- Upgraded to mapnik-vector-tile@v0.6.1
- Binaries updated to use Mapnik v3.x (master branch) at bff4465 and mapnik-packaging@fdc5b659d4
Notable changes in binaries:
- Restored support for OS X 10.8
Notable changes in the Mapnik SDK include:
- GDAL updated to 0334c2bed93f2
- ICU 53.1 -> 54.1
- xml2 2.9.1 -> 2.9.2
- webp 0.4.0 -> 0.4.2
- libpng 1.6.13 -> 1.6.14
- sqlite 3.8.6 -> 3.8.7.1
- boost 1.56 -> 1.57
- protobuf 2.5.0 -> 2.6.1
- Binaries updated to use Mapnik v3.x (master branch) at b90763469a and mapnik-packaging@f9e1c81b39
- shapeindex and nik2img are now bundled
- Binaries updated to use Mapnik v3.x (master branch) at 6b1c4d00e5 and mapnik-packaging@f9ec0f8d95
- Fixed incorrect bundled deps
- Upgraded Nan to v1.3.0
- Binaries updated to use Mapnik v3.x (master branch) at 7bc956e and mapnik-packaging@9c7c9de
- Binaries updated to use Mapnik v3.x (master branch) at 5a1126b
- New 3.x series targeting Mapnik 3.x / C++11
- Binaries for OS X require >= 10.9
- Binaries for Linux require >= Ubuntu 14.04
- First release providing binaries for Windows x64
Notable changes in binaries:
- Built with
-std=c++11and-fvisibility=hiddenon OS X and Linux - Built with
-fltoon OS X (link time optimization) and target >= OS X 10.9 - Built with Visual Studio 2014 CTP 3 on Windows (runtimes can be installed from https://mapnik.s3.amazonaws.com/dist/dev/VS-2014-runtime/vcredist_x64.exe and https://mapnik.s3.amazonaws.com/dist/dev/VS-2014-runtime/vcredist_x86.exe)
- Binaries updated to use Mapnik v3.x (master branch) at f81fc53cbc and mapnik-packaging@6b7345248e
Notable changes in the Mapnik SDK include:
- GDAL updated to 3fdc6e72b6e5cba
- Libtiff updated to 14bca0edd83
- Upgraded libpng from 1.6.12 -> 1.6.13
- Upgraded to mapnik-vector-tile@0.5.5 for faster raster rendering
- IMPORTANT: changes to shield placement (see Mapnik SDK notes below)
- Added
mapnik.VectorTile.empty()to check if a vector tile has any features (reports true if tile contains layers without features) - Avoid startup error if $HOME environment is not known
- Fixed all tests on windows
- Experimental:
mapnik.VectorTilenow acceptsvariablesobject in render options. - Experimental: Added
mapnik.Map.clonemethod to create a shallow copy of a map object (datasources are still shared)
Notable changes in binaries:
- Binaries updated to use Mapnik v2.3.x at 5ae55a07e and mapnik-packaging@b923eda6a
- Enabled
-DSVG_RENDERER, libtiff, and webp support for windows binaries
Notable changes in the Mapnik SDK include:
- Fixed support for unicode paths names to XML files on Windows
- Fixed
avoid-edges:truesupport for shields (fixing frequently clipped shields) (mapnik/mapnik#983) - Fixed shield bbox calculation when when
scale_factor> 1 is used (also a cause of clipped shields) (mapnik/mapnik#2381) - Upgraded boost from 1.55 -> 1.56
- Upgraded sqlite from 3.8.5->3.8.6
- Added
mapnik.Map.aspect_fix_mode(#177)
Notable changes in binaries:
- Binaries updated to use Mapnik v2.3.x at d62365c and mapnik-packaging@f012b82e6a
Notable changes in the Mapnik SDK include:
- OGR Plugin no longer throws if layer is empty
- Added new
aspect_fix_modecalledRESPECTthat is a no-op - Upgraded harfbuzz from 0.9.32 -> 0.9.35
- Fixed broken
postgis.inputplugin in binary package (#286) - New
mapnik.VectorTile.queryManymethod (@rsudekum) - Fixed mismatched new/delete in UTF8 grid encoding code (#278)
- Updated to compile against latest Mapnik 3.x development version
- Tweaked internal tracker of map concurrent usage to release before callback (should prevent spurious warnings like at mapbox/tilelive-mapnik#83)
- Added missing
invert-rgbcompositing option (@mojodna)
Notable changes in binaries:
- Now built with
-DSVG_RENDERERenabled - Now compiled and linked with
clang++-3.4on linux instead ofg++ - Now using a versioned binary module directory within
lib/binding/. - Binaries updated to use Mapnik v2.3.x at a616e9d and mapnik-packaging@a5dbe90c61
Notable changes in the Mapnik SDK include:
- Faster font i/o
- Fixed support for multi-face font collections (.ttc files)
- Fixed
comp-op:colorcompositing to preserve luma (@mojodna) - Made
pngformat string mean full color png (again) rather than paletted png8 - OGR Plugin now accepts optional
extentparameter (@kernelsanders) - New, experimental
pgrasterplugin (@strk) - Upgraded postgres from 9.3.3 -> 9.3.4
- Upgraded harfbuzz from 0.9.29 -> 0.9.32
- Upgraded png from 1.6.10 -> 1.6.12
- Upgraded pixman from 0.32.4->0.32.6
- Removed dependence on fontconfig
- Never happened (npm shasum for published package was busted)
- Fixed version of bundled node-pre-gyp
- New mapnik.blend function that implements the node-blend API (https://github.com/mapbox/node-blend#usage)
- Now supporting node v0.11.x via Nan@1.2.0
- Binaries updated to use Mapnik v2.3.x at 7c7da1a2f and mapnik-packaging@1bbd8d560e9
Notable changes in the Mapnik SDK include:
- Now building GDAL master (2.x) at https://github.com/OSGeo/gdal/commit/1106e43682056645c8c5e0dbf6ebcb69f8bf23cc
- Mapnik image-filters now support correct alpha blending.
- Mapnik PNG miniz encoding fixed.
- Mapnik can now register fonts from directories containing non-ascii characters on windows.
- Never happened (npm shasum for published package was busted)
- Added
mapnik.Image.comparefunction to compare the pixels of two images. - Fixed build issue leading to broken
ogr.inputMapnik plugin - Auto-registers fonts found in paths via the
MAPNIK_FONT_PATHenvironment variable
- vtile.parse no longer throws if
vtilewas previously composited but no new data resulted. - Fixed compile problem on some linux/bsd systems
- Binaries updated to use Mapnik v2.3.x at g7960be5 and mapnik-packaging@f007d6f1a6
Notable changes in the Mapnik SDK include:
- GDAL now built
--with-threads=yes - GDAL dependency now included as a shared library
- Now building GDAL master (2.x) at https://github.com/OSGeo/gdal/commit/c0410a07c8b23e65071789a484fca0f3391fe0ff
- Updated to use Mapnik 2.3.x SDK with rapidxml parsing fix: mapnik/mapnik#2253
- Updated to mapnik-vector-tile@0.5.0
- Subtle VectorTile.composite bugs fixed to handle both tiles created from
setDataand those just rendered to. VectorTile.fromGeoJSONmethod changed toVectorTile.addGeoJSON- Removed initializing and cleaning up global libxml2 structures because XML2 is no longer the default in node-mapnik binaries (#239)
- Added support for pre-pending PATH when set in
mapnik_settings.js(#258) - Binaries updated to use Mapnik v2.3.x at ed3afe5 and mapnik-packaging@5f9f0e0375
Notable changes in the Mapnik SDK include:
- GDAL now built
--with-threads=noand with a much more minimal set of drivers (https://github.com/mapnik/mapnik-packaging/commit/c572d73818ee4c9836171ae9fd49e950c6710d58) - Mapnik now build with rapidxml/ptree xml parser rather than libxml2 (meaning no xincludes or entities are supported)
- VectorTile constructor now accepts optional 4th arg of options which respects
widthorheight VectorTile.querynow returnsFeatureobjects withlayeranddistanceproperties- New
VectorTile.fromGeoJSONfunction to turn GeoJSON into a tile layer - New appveyor file for continuous builds on windows
- Binaries updated to use Mapnik v2.3.x at 94e78f2ae4 and mapnik-packaging@45536bd3c9
Notable changes in the Mapnik SDK include:
- Libtiff upgraded to CVS head at https://github.com/vadz/libtiff/commit/f696451cb05a8f33ec477eadcadd10fae9f58c39
- Libfiff now built with
--enable-chunky-strip-read - Harfbuzz updated to v0.9.28
- Sqlite upgraded to 3.8.4.3/3080403
- Now initializing and cleaning up global libxml2 structures to ensure safe async map loading (#239)
- Fix publishing of mapnik package to npm to include bundled node-pre-gyp.
- Binaries updated to use Mapnik v2.3.x at ce1ff99 and mapnik-packaging@49d8c3b.
Notable changes in Mapnik 2.3.x include:
- mapnik line joins are now faster by discarding more nearly coincident points
- postgis.input now links to fewer authentication libraries by only linking to libararies libpq was built against
Notable changes in the Mapnik SDK include:
- ICU upgraded to 53.1 from 52.1
- jpeg-turbo 1.3.1 is now used in place of libjpeg 8d (better performance likely)
- sqlite3 upgraded to 3080401 from 3080200
- webp upgraded to 0.4.0 from 0.3.1 (better performance likely)
- postgres upgraded to 9.3.3 from 9.3.1
- fontconfig upgraded to 2.11.0 from 2.10.0
- libpng upgraded to 1.6.10 from 1.6.8
- gdal upgraded to git master @ 0c10ddaa71
- Binaries updated to use Mapnik v.2.3.x at 818e87d.
- Improved build support for OS X Mavericks by autodetecting if linking against libc++ should be preferred.
mapnik.register_system_fonts()now registers opentype fonts as well as truetype fonts on linux (#231)
Notable changes in Mapnik 2.3.x include:
- a potential double free was fixed in mapnik::projection
- postgis plugin error reporting was fixed
- postgis plugin !bbox! token replacement was fixed to use max instead of max
- First series to default to providing binaries with
npm install(bundling Mapnik v2.3.x at f202197)
- Made vt.composite reentrant
- Updated to mapnik-vector-tile@0.4.2
- Pinned mapnik-vector-tile dependency to v0.4.1
- Support for Mapnik 3.x
- Updated to mapnik-vector-tile@0.4.0 with more encoding fixes and triggers VT layers without features to no longer be encoded
- Every layer in a vector tile that matches a layer in the mapnik.Map is now rendered and not just the first (#213)
- Added VectorTile.composite API
- Fixed exception handling for
VectorTile.isSolid - Datasource plugins must now be explicitly registered with
mapnik.register_default_input_plugins,mapnik.register_datasource, orregister_datasourcesas all default plugins are no longer automatically registered at startup. - Disabled
mapnik.Expressionobject since this is not used by any known applications - Added
mapnik.register_datasourceto register a single datasource plugin.
- Upgraded to mapnik-vector-tile@0.3.4 with multipart geometry fixes
- Added toWKT/toWKB on mapnik.Feature
- Added getPixel/setPixel on mapnik.Image
- Added mapnik.VectorTile.query ability - accepts lon/lat in wgs84 and tolerances (in meters) returns array of features
- Improvements to node-gyp path resolution in auxiliary Makefile and configure wrapper
- Added
mapnik-config --ldflagsto build by default (not just when static linking)
- Fixed windows build against Mapnik 2.3.0
- Fixed mapnik.Image.open call - which was string data in invalid way
- Upgraded to mapnik-vector-tile@0.3.3
- Fixed build on OS X against node v0.6.x (tested v0.6.22)
- Deprecated the
Datasource.features()call #180
- Added more details to
mapnik.supportsAPI includinggrid,proj4,webp,jpeg,png,svg,cairo_pdf,cairo_svg, andthreadsafe - Added more constants for available
comp-opvalues
- Map.render (when rendering to a VectorTile) and VectorTile.render now expect
buffer_sizeoption to be passed and ignores map.BufferSize (#175) - Removed
devDependenciesso thatmochaandsphericalmecatorneed to be manually installed to run tests - Tweaked gyp
Releaseconfiguration to ensure binaries are stripped and built with highest level of optimization - Added support for detecting
--runtime_link=staticflag to npm install that can trigger linking against all Mapnik dependencies (not just libmapnik) - Added travis.ci support
- Gyp binding cleanups
- Removed direct icu::UnicodString usage to ensure robust compiles against icu build with
-DUSING_ICU_NAMESPACE=0 - Fixed variable shadowing issue in vtile -> geojson code
- Disabled default debug symbol generation to speed up builds
- Upgraded to mapnik-vector-tile 3.0.x API
- Fixed extent of vector::tile_datasource to be sensitive to map buffer (TODO - long term plan is to make extent optional instead of adding support for layer specific buffered extent) - this is needed for avoiding too restrictive filtering of features at render time.
- Fixed exception handling when creating geojson from vector tile
- Build fixes to support python 3.x
- Now accepting
scale_denominator,scale, andformatin options passed tomap.RenderSync
- Added support for node v0.11.x
- Added async versions of Image methods:
fromBytes,open,premultiply,demultiply - Added experimental support for rendering vector tiles to SVG.
rendereroption (eithercairoorsvg) controls whethercairoor native svg renderer is used - Exposed
map.bufferedExtentproperty to access the buffered extent - Changed Image.composite function to accept offsets (
dxanddy),comp_op,image_filters, andopacityin options. - Fixed missing exception translation for MemoryDatasource and Image constructors
- Fixed invalid default for
scaleinmap.render - Implemented mapnik.Image.fromBytes (#147)
- Dropped support for Mapnik versions older than v2.2.0
- Moved build system to node-gyp - now supports node v0.10.x
- Fonts are not longer auto-registered. Call
mapnik.register_default_fonts()to register "DejaVu" set that is often bundled by Mapnik and callmapnik.register_system_fonts()to register fonts are various known system paths. - New mapnik.VectorTile API
- Fixed tests after removal of example code (tests depended on it)
- Added node v0.10.x support by moving build system from waf to node-gyp
- All changes are in build system with only very minor changes to code
- Moved example code to https://github.com/mapnik/node-mapnik-sample-code
- Header include refactoring to ensure clean compiles again Mapnik 2.0.x, 2.1.x, and 2.2.x
- Fix compile with latest Mapnik 2.2-pre ( header)
- Exposed Map.scale() (stefanklug)
- More fixes for 64 bit integer support
- Fix compile with Mapnik 2.1 (stefanklug)
- Support 64 bit integers in grid types in anticipation of mapnik/mapnik#1662
- Adapts to mapnik master's move to supporting 64 bit integers using
mapnik::value_integer
- Report null values in mapnik features as javascript null rather than undefined
- Added sync/async
clear()method to enable re-use of mapnik.Image and mapnik.Grid objects from a cache - Made ImageView and GridView
isSolid()methods async if a callback is passed - Made async
isSolid()return pixel value as second arg - Fixed code examples to work with generic-pool 2.x
- Improved error reporting when an invalid image format is requested
- Fixed possible edge-case memory corruption when encoding grids whose width != height
- Fixed handling of datasource exception when calculating extent
2012-10-09
- Minor compiler warning fixes
2012-09-16
- Keep chasing Mapnik 2.2.0-pre API changes in symbolizers
2012-09-13
- Fixed compile with <= Mapnik 2.1.0
2012-09-7
- Keep chasing Mapnik 2.2.0-pre API changes in singletons
2012-09-5
- Fixed compile with Mapnik 2.2.0-pre
2012-08-17
- Makefile wrapper around node-waf now allows NPROCS option to be set.
- Allow configure to work against Mapnik 2.2.0-pre without warning.
2012-08-1
- Fixed broken usage of V8::AdjustAmountOfExternalAllocatedMemory which could trigger unneeded garbage collection pauses. (@strk)
2012-07-18
- Fixed compile against Mapnik 2.0.x
2012-07-13
- remove debug output when locally customized environment settings are pushed into process.env
2012-07-13
- Further optimize grid encoding
- Allow passing scale_factor to render to file functions (#109)
- Reference count Image and Grid objects in use by View objects to avoid possible scope issues resulting in segfaults when v8 garbage collects (#89, #110)
2012-07-12
- Speed up grid encoding when featuresets are large: 12s -> 4s for processed_p at full zoom
- Throw upon errors in grid rendering test
- Fix mapnik version check in grid_view pixel value test
- Amend expected test failures per version to account for platform differences in whether hidden fonts are around
2012-07-04
2012-06-29
2012-06-27
2012-04-27
2012-04-16
2012-03-09
2012-03-01
2012-01-23
2012-01-10
2012-01-10
2011-12-21
2011-12-21
2011-12-16
2011-12-16
2011-12-06
2011-12-06
2011-12-06
2011-11-30
2011-11-30
2011-11-19
2011-11-18
2011-10-19
2011-10-18
2011-10-03
2011-11-30
2011-08-23
2011-08-04
2011-08-04
2011-08-04
2011-08-03
2011-07-29
2011-06-27
2011-05-04
2011-04-29
2011-03-12
2011-03-03
2011-03-01
2011-02-28
2011-02-24
2011-02-11
2011-02-08
2011-02-08
2011-02-08
2011-01-27
2011-01-27
2011-01-27
2011-01-27