The v3.19.0 release includes features and fixes from a little more than 120 pull requests with more than 380 commits. Most of the changes are bug fixes, documentation enhancements or target the continuing removal of the dependency on Closure Library. Some notable new or enhanced features are:
- Vector fills with
CanvasGradient
orCanvasPattern
now move and rotate with the map which is far more intuitive (#5950) - Drawing in
freehand
-mode also became more intuitive (#5970, #5973, #5975) - When tiles of different resolutions are combined for a layer (which is the case before all tiles of the best resolution have been loaded), lower resolution tiles now align with higher resolution tiles resulting in a map without gaps (#5890)
- Styles can now easily be cloned (#5832)
Additionally the openlayers.org homepage is now available via the https
-protocol.
Previously, gradients and patterns were aligned with the canvas, so they did not
move and rotate with the map. This was changed to a more expected behavior by anchoring the fill to the map origin (usually at map coordinate [0, 0]
).
As last step in the removal of the dependency on Google Closure Library, the goog.DEBUG
compiler define was renamed to ol.DEBUG
. Please change accordingly in your custom build configuration json files.
ol.format.ogc.filter
was simplified to ol.format.filter
; to upgrade your code, simply remove the ogc
string from the name.
For example: ol.format.ogc.filter.and
to ol.format.filter.and
.
A number of internal types have been renamed. This will not affect those who use the API provided by the library, but if you are compiling your application together with OpenLayers and using type names, you'll need to do the following:
- rename
ol.CollectionProperty
tool.Collection.Property
- rename
ol.DeviceOrientationProperty
tool.DeviceOrientation.Property
- rename
ol.DragBoxEvent
tool.interaction.DragBox.Event
- rename
ol.DragBoxEventType
tool.interaction.DragBox.EventType
- rename
ol.GeolocationProperty
tool.Geolocation.Property
- rename
ol.OverlayPositioning
tool.Overlay.Positioning
- rename
ol.OverlayProperty
tool.Overlay.Property
- rename
ol.control.MousePositionProperty
tool.control.MousePosition.Property
- rename
ol.format.IGCZ
tool.format.IGC.Z
- rename
ol.interaction.InteractionProperty
tool.interaction.Interaction.Property
- rename
ol.interaction.DrawMode
tool.interaction.Draw.Mode
- rename
ol.interaction.DrawEvent
tool.interaction.Draw.Event
- rename
ol.interaction.DrawEventType
tool.interaction.Draw.EventType
- rename
ol.interaction.ExtentEvent
tool.interaction.Extent.Event
- rename
ol.interaction.ExtentEventType
tool.interaction.Extent.EventType
- rename
ol.interaction.DragAndDropEvent
tool.interaction.DragAndDrop.Event
- rename
ol.interaction.DragAndDropEventType
tool.interaction.DragAndDrop.EventType
- rename
ol.interaction.ModifyEvent
tool.interaction.Modify.Event
- rename
ol.interaction.SelectEvent
tool.interaction.Select.Event
- rename
ol.interaction.SelectEventType
tool.interaction.Select.EventType
- rename
ol.interaction.TranslateEvent
tool.interaction.Translate.Event
- rename
ol.interaction.TranslateEventType
tool.interaction.Translate.EventType
- rename
ol.layer.GroupProperty
tool.layer.Group.Property
- rename
ol.layer.HeatmapLayerProperty
tool.layer.Heatmap.Property
- rename
ol.layer.TileProperty
tool.layer.Tile.Property
- rename
ol.layer.VectorTileRenderType
tool.layer.VectorTile.RenderType
- rename
ol.MapEventType
tool.MapEvent.Type
- rename
ol.MapProperty
tool.Map.Property
- rename
ol.ModifyEventType
tool.interaction.Modify.EventType
- rename
ol.RendererType
tool.renderer.Type
- rename
ol.render.EventType
tool.render.Event.Type
- rename
ol.source.ImageEvent
tool.source.Image.Event
- rename
ol.source.ImageEventType
tool.source.Image.EventType
- rename
ol.source.RasterEvent
tool.source.Raster.Event
- rename
ol.source.RasterEventType
tool.source.Raster.EventType
- rename
ol.source.TileEvent
tool.source.Tile.Event
- rename
ol.source.TileEventType
tool.source.Tile.EventType
- rename
ol.source.VectorEvent
tool.source.Vector.Event
- rename
ol.source.VectorEventType
tool.source.Vector.EventType
- rename
ol.source.wms.ServerType
tool.source.WMSServerType
- rename
ol.source.WMTSRequestEncoding
tool.source.WMTS.RequestEncoding
- rename
ol.style.IconAnchorUnits
tool.style.Icon.AnchorUnits
- rename
ol.style.IconOrigin
tool.style.Icon.Origin
- #6007 - Add note to example that canvas.toBlob() is required (@marcjansen)
- #5979 - Use FileSaver.js in export-map example (@fredj)
- #6004 - Bring back the vector-osm example, using a different service (@ahocevar)
- #6002 - Use tile pixel ratio for gutter calculation (@ahocevar)
- #5991 - Only test ol.format.MVT if ArrayBuffer.isView is supported (@openlayers)
- #6000 - Fix mockup of tile layer to keep drawImage arguments in range (@ahocevar)
- #5997 - Always load a gated URL polyfill when testing (@marcjansen)
- #5963 - Remove the vertex on ol.interaction.Modify deactivation (@fredj)
- #5994 - Setup a loaded image with src for TileLayer test (@marcjansen)
- #5989 - Remove vector-osm example (@openlayers)
- #5985 - Update Mapzen urls to new scheme (@ahocevar)
- #5984 - Less examples with mixed content (@ahocevar)
- #5986 - Update eslint to version 3.8.1 π (@openlayers)
- #5982 - Use a https enabled GeoServer (@ahocevar)
- #5977 - Convenience function for drawing boxes (@tschaub)
- #5978 - Update async to version 2.1.2 π (@openlayers)
- #5975 - Finish drawing on pointerup when in freehand mode (@tschaub)
- #5976 - Use https where available (@tschaub)
- #5973 - Add a freehand option to the draw interaction (@tschaub)
- #5964 - Set one-off transform instead of transforming back and forth (@ahocevar)
- #5970 - Allow circles, squares, and boxes to be drawn in freehand mode (@tschaub)
- #5972 - Update eslint to version 3.8.0 π (@openlayers)
- #5969 - Test all, not just one (@ahocevar)
- #5967 - Add missing jsdoc to ol.render.canvas.Replay#fill_ function (@fredj)
- #5962 - Use same proj4js version in examples and tests (@ahocevar)
- #5961 - Remove unused error codes (@ahocevar)
- #5960 - More renaming to have one provide per file (@fredj)
- #5959 - Remove unnecessary and misleading assertion (@ahocevar)
- #5950 - Move gradient and pattern fills with the view (@ahocevar)
- #5957 - Update async to version 2.1.1 π (@openlayers)
- #5956 - Update async to version 2.1.0 π (@openlayers)
- #5955 - Add getters to BingMaps source for api key and imagerySet (@bartvde)
- #5944 - Allow readFeature and readFeatures to be called with GeoJSON geometries (@tschaub)
- #5949 - Add prose documentation for ol.AttributionLike (@marcjansen)
- #5948 - Fix API docs of ol.Feature#getStyle (@marcjansen)
- #5946 - Update mocha to version 3.1.2 π (@openlayers)
- #5941 - Update mocha to version 3.1.1 π (@openlayers)
- #5890 - No gaps between tiles of different resolutions (@ahocevar)
- #5935 - Keep transformed coordinates within valid y range (@tschaub)
- #5937 - One provide per file for vector tiles (@ahocevar)
- #5933 - Update phantomjs-prebuilt to version 2.1.13 π (@openlayers)
- #5932 - Update eslint to version 3.7.1 π (@openlayers)
- #5931 - Update jsdoc to version 3.4.2 π (@openlayers)
- #5923 - Update pbf to version 3.0.2 π (@openlayers)
- #5926 - Ensure correct type of event.element (@adube)
- #5928 - Update eslint to version 3.7.0 π (@openlayers)
- #5919 - Update resemblejs to version 2.2.2 π (@openlayers)
- #5909 - Update jquery to version 3.1.1 π (@openlayers)
- #5917 - Accept feature projection in GeoJSON constructor (@tschaub)
- #5918 - Update mocha to version 3.1.0 π (@openlayers)
- #5916 - Update eslint to version 3.6.1 π (@openlayers)
- #5914 - Allow clipping by MultiPolygon (@tschaub)
- #5894 - Reuse arrays for rendered tiles and extent (@ahocevar)
- #5895 - Always use the frameState's extent (@ahocevar)
- #5911 - Update eslint to version 3.6.0 π (@openlayers)
- #5903 - Rename ol.format.ogc.filter namespace to ol.format.filter (@fredj)
- #5913 - Update clean-css to version 3.4.20 π (@openlayers)
- #5776 - Add ol.style.Circle#setRadius (@jonataswalker)
- #5905 - Update pbf to version 3.0.1 π (@openlayers)
- #5904 - Fix changelog/upgrade-notes.md formating (@fredj)
- #5906 - Update glob to version 7.1.0 π (@openlayers)
- #5898 - Update sinon to version 1.17.6 π (@openlayers)
- #5888 - Remove unused functions (@fredj)
- #5900 - Update coveralls to version 2.11.14 π (@openlayers)
- #5897 - Show NEXRAD data in WMS Time example (@ahocevar)
- #5896 - Remove plain string from Map renderer option (@probins)
- #5893 - Fix fillStyle or strokeStyle defined assertion (@ahocevar)
- #5892 - Remove getRendererFromQueryString from examples (@probins)
- #5889 - Update coveralls to version 2.11.13 π (@openlayers)
- #5886 - Remove unused functions (@fredj)
- #5885 - Remove unused pruneTileRange function (@bartvde)
- #5853 - Allow more than one digit range in ol.TileUrlFunction.expandUrl (@fredj)
- #5445 - Select interaction default styling function can now handle geometry less features (@fblackburn)
- #5884 - Fix jsdoc tag indentation (@fredj)
- #5863 - Allow CanvasPattern or CanvasGradient as stroke style (@fredj)
- #5838 - Require ol where ol.DEBUG is being used (@marcjansen)
- #5878 - Smarter handling of closed rings and closePath() instructions (@ahocevar)
- #5880 - More work towards one provide per file (@marcjansen)
- #5857 - Fixed issue with multi option of ol.interaction.Select (@KlausBenndorf)
- #5876 - Use clone method in kml format (@KlausBenndorf)
- #5832 - Add clone methods to styles (@KlausBenndorf)
- #5869 - Update jsdoc to version 3.4.1 π (@openlayers)
- #5872 - Keep ol.Color as Array (@tschaub)
- #5870 - Update eslint to version 3.5.0 π (@openlayers)
- #5867 - Add dedicated example using CanvasPattern and CanvasGradient for styling vectors (@marcjansen)
- #5864 - More renaming (@fredj)
- #5861 - More renaming to have one provide per file (@fredj)
- #5860 - Rename ol.MapProperty and ol.interaction.DragAndDropEvent* (@fredj)
- #5855 - Rename ol.DragBoxEvent* to ol.interaction.DragBox.Event* (@fredj)
- #5859 - Rename ol.RendererType to ol.renderer.Type (@fredj)
- #5846 - Remove unused goog.require('ol') (@probins)
- #5854 - Use a canvas pattern in the vector-layer example (@fredj)
- #5852 - ol.interaction.extent cleanup (@fredj)
- #5851 - Remove unused imageByContext_ in ol.ImageTile (@fredj)
- #5849 - Remove 'global' from externs/closure-compiler.js (@fredj)
- #5837 - Remove ol.global (@tschaub)
- #5842 - Remove extra provide causing a circular dependency (@ahocevar)
- #5795 - Render older loaded tiles while waiting for new tiles (@thomasmoelhave)
- #5840 - Rename source.wms.ServerType β source.WMSServerType (@marcjansen)
- #5839 - Rename source.VectorEvent() to source.Vector.Event() (@marcjansen)
- #5835 - document and test ol.getUid sequence behavior (@thomasmoelhave)
- #5834 - Rename goog.DEBUG to ol.DEBUG (@thomasmoelhave)
- #5815 - Remove the DOM renderer (@tschaub)
- #5828 - Always close polygon rings (@ahocevar)
- #5794 - Fix more missing requires (@openlayers)
- #5820 - Change ol.format.Format to ol.format.Feature in format/readme.md (@fredj)
- #5819 - Add ArrayBuffer.isView method in externs/closure-compiler.js (@fredj)
- #5793 - Closure bye bye (@ahocevar)
- #5809 - Reuse ol.LayerState object (@fredj)
- #5811 - Use ol.global.getComputedStyle instead of window.getComputedStyle (@fredj)
- #5810 - ESLint rule typo (@gberaudo)
- #5807 - Update pbf to version 3.0.0 π (@openlayers)
- #5806 - Fix olx.style.TextOptions.rotateWithView option in externs (@fredj)
- #5770 - Update ol.source.Vector comments (@fredj)
- #5803 - V3.18.1 (@openlayers)
- #5801 - Remove ol.style.ImageState and use ol.ImageState instead (@fredj)
- #5790 - Fix vector tile rotation on HiDPI devices (@ahocevar)
- #5798 - Move to 90Β° along the circle, not 0Β° (@ahocevar)
- #5800 - Wrap values in for InBetween filter (@tsauerwein)
- #5769 - Only call addToDrawing if sketchFeature (@bartvde)
- #5745 - removed dependencies on goog.object.clone and fixed placemark rendering (@tamarmot)
- #5290 - Add extent interaction (@tbarsballe)
- #5786 - Update eslint to version 3.4.0 π (@openlayers)
- #5785 - Release v3.18.0 (@openlayers)