The 3.1.0 release includes a whopping 214 merged pull requests since 3.0.0. Of note, the WebGL renderer now supports point rendering. You can use UTFGrids for interaction! Styles can now specify alternate geometries for rendering. Library builds can now be loaded with module loaders like Browserify or RequireJS. You can now symbolize point features with stars, squares, enneadecagons, or any other regular(ish) polygon. See the full list of changes below.
The 3.1.0 release maintains a backwards-compatible API with the 3.0.0 release, so upgrades should be painless. Some special considerations below.
-
If you are using a
ol.source.ImageStatic
, you no longer need to provide animageSize
option if you don't want any special scaling on your image (see #2796). -
Instead of calling
obj.unByKey(key)
you can now callol.Observable.unByKey(key)
(see #2794). -
If you were using
format.writeFeatures(features)
, note that this method returns a string for all feature formats. We considered the previous behavior a bug (see #3003). -
The
obj.dispatchChangeEvent()
method is now spelledobj.changed()
. This method is still unstable (see #2684).
- #3076 - Add script to standardize changelog creation. (@tschaub)
- #3074 - Remove misplaced function annotation. (@fredj)
- #3075 - Remove unneeded undefined from ol.proj.ProjectionLike definitions (r=@tschaub) (@bartvde)
- #3071 - Add task for publishing to npm. (@tschaub)
- #3070 - Define goog and assign to global when generating UMD debug builds. (@tschaub)
- #3068 - Update pre-release version. (@tschaub)
- #3039 - Support for UMD builds. (@tschaub)
- #3038 - Update attribution CSS #2803 (@acanimal)
- #3061 - Add a renderBuffer option to ol.layer.Vector (@elemoine)
- #3048 - Add a drag-features example (@elemoine)
- #3060 - Update closure-library version (@fredj)
- #3058 - Use an API function to extend the extent (@ahocevar)
- #3010 - Allow styles to override feature geometries (@ahocevar)
- #3056 - Reuse previousExtent_ local variable (@fredj)
- #3055 - ol.tilecoord.createOrUpdate: add 'opt_' prefix to optional param (@fredj)
- #3044 - Mark Image style constructor properties
@api
(@gberaudo) - #3052 - Add a testcase for parsing GML feature with only boundedBy (@bartvde)
- #3051 - Remove // NOCOMPILE from vector-wfs (@elemoine)
- #2699 - No need for featureNS and featureType to be quoted (@bartvde)
- #3047 - Move description above annotation to avoid JSDoc warnings. (@tschaub)
- #2996 - Add getter functions for points and angle in ol.style.RegularShape (@bartvde)
- #3046 - Need exportable constructor for constructor options in olx (@ahocevar)
- #3043 - Use // NOCOMPILE for vector-wfs (@elemoine)
- #3042 - Print example name in check-examples exception (@gberaudo)
- #3032 - Extension points for custom controls and interactions (@elemoine)
- #3033 - Allow custom mousemove conditions for Select interaction (@ahocevar)
- #3040 - Transform the coordinates in place (@fredj)
- #3036 - Respect geometry stride in modify interaction (@tonio)
- #3020 - Correct error message from generate-info.js. (@tschaub)
- #3037 - Implement rotation for ol.style.RegularShape (@bartvde)
- #3015 - UTFGrid Support (@klokantech)
- #3012 - Failing tests in IE9 (@bartvde)
- #3029 - Update closure compiler and library (@fredj)
- #3031 - Add missing maxZoom property in olx.view.FitGeometryOptions (@fredj)
- #3028 - ol.format.WFS cleanup (@fredj)
- #3024 - Add missing gmlFormat to olx.format.WFSOptions (@fredj)
- #3023 - Change loader function return type (@fredj)
- #3021 - Add missing properties in olx.control.AttributionOptions typedef (@fredj)
- #3013 - Improve vector source clear() performance (@gberaudo)
- #3017 - Use writeFeatures instead of writeFeaturesNode in GPX and KML example (r=@elemoine) (@bartvde)
- #3014 - Simplify hit detection code (@elemoine)
- #3006 - gml3.js and gml2.js don't follow file naming conventions (@bartvde)
- #3003 - The writeFeatures method should always return a string (r=@elemoine) (@bartvde)
- #3011 - opt_options may not be defined, use options (@pagameba)
- #3009 - Fix hit detection bug (@elemoine)
- #3002 - Passing options to RegularShape is mandatory (@elemoine)
- #2967 - Add support for drawing points with WebGL (@camptocamp)
- #2701 - Writing GeoJSON does not respect the feature's geometryName (@bartvde)
- #3000 - Explain that return of ol.color.asArray should not be modified (@bartvde)
- #2997 - Use new demo GeoServer location (@ahocevar)
- #2976 - Add an example to show off ol.style.RegularShape (@bartvde)
- #2992 - Add support for finding features at a given coordinates for vector tiles - fixes (@pgiraud)
- #2987 - Image layer renderers use source projection if given and equivalent (@kartverket)
- #2975 - Use offsetX and offsetY if available (@fredj)
- #2973 - Making GetTileCoordFor methods public avaible (@s093294)
- #2986 - Add support for finding features at a given coordinates for vector tiles (@pgiraud)
- #2937 - Clip layer rendering to limited extent. (@tschaub)
- #2971 - Two ol.source.TileVector fixes (@elemoine)
- #2988 - Correct olx.style.RegularShapeOptions definition (r=@elemoine) (@bartvde)
- #2981 - Use lineDash in ol.style.Circle's and ol.style.RegularShape's stroke (r=@fredj,@elemoine) (@bartvde)
- #2982 - Allow radius1 as an alias for radius in ol.style.RegularShape (@bartvde)
- #2980 - Export ol.source.TileVector#getFeatures in built mode (@pgiraud)
- #2979 - Support OGC srs urns without an EPSG database version (@bartvde)
- #2978 - Fix zoom levels for the MapQuest Street layer (@ahocevar)
- #2889 - Add GetFeatureInfo format (@fgravin)
- #2965 - Fix pan with select interaction in mousemove mode. (@tonio)
- #2960 - LayerGroup extent should be used if extent not set on child layer (@bartvde)
- #2956 - Revert "Remove mousewheel event name workaround" (@fredj)
- #2959 - Fix typo in selector (@ahocevar)
- #2895 - Move font-family customization to layout.css (@fredj)
- #2896 - Remove duplicated style parameter (@kalinbas)
- #2938 - Additional image static docs. (@tschaub)
- #2939 - Make stability checkbox sticky. (@tschaub)
- #2949 - Add ol.ext to hosted dir (@elemoine)
- #2943 - Mark applyTransform api stable (@fredj)
- #2936 - Fix unselection of selected features (@ahocevar)
- #2935 - Fix jsdoc comment (@geosense)
- #2933 - Fix compile warning (@elemoine)
- #2931 - Improvement to view docs (@elemoine)
- #2906 - Assume a latitude, longitude order for Polyline format (@fredj)
- #2927 - Make it possible to programmatically finish drawing (@elemoine)
- #2928 - Do not rename handleMapBrowserEvent internally (@elemoine)
- #2924 - Readability rearangement in canvasmaprenderer.js (@gberaudo)
- #2911 - List events fired in the navigation. (@tschaub)
- #2921 - Small feature overlay optimization (@gberaudo)
- #2897 - Remove pointerup listener on controls (@fredj)
- #2912 - jQuery externs update (@fredj)
- #2888 - Element boundedBy must not be set as geometry field on GML reading (@fgravin)
- #2903 - Improved docs for icon options (@elemoine)
- #2900 - Allow build.js task to add header. (@tschaub)
- #2893 - Don't pass an object to goog.dom.createDom for the class name (@fredj)
- #2781 - Use a standard title attribute for the control buttons (@fredj)
- #2852 - Add missing space between class names (@fredj)
- #2891 - Introduce a load function for image sources (@ahocevar)
- #2885 - Add wrapX option to TileJSON source (@elemoine)
- #2890 - Use correct layer property names (@elemoine)
- #2887 - Explicitly pass coordinate dimension before transforming. (@tschaub)
- #2886 - Use ternary notation (@elemoine)
- #2869 - Export useful xml functions (@tonio)
- #2884 - Make WKT methods throw errors instead of calling a method that throws. (@tschaub)
- #2746 - Add versioning for GML format (@fgravin)
- #2882 - Allow olx.source.WMTSOptions#requestEncoding to be a string (@fredj)
- #2881 - Add default requestEncoding in documentation (@fredj)
- #2877 - Remove FIXME in src/ol/structs/rbush.js (@fredj)
- #2870 - Use bulk-insertion for addFeatures (@tsauerwein)
- #2856 - Allow layer source to be set. (@tschaub)
- #2875 - Avoid modifying
map.logos_
with each frame. (@tschaub) - #2874 - Avoid shrinking logos. (@tschaub)
- #2872 - Remove the beforepropertychange event from ol.Object (@fredj)
- #2868 - Remove doc about dispatching events. (@tschaub)
- #2871 - Make
npm install
a dependency of node based targets. (@tschaub) - #2867 - Support for importing CommonJS style modules (like rbush). (@openlayers)
- #2865 - Add old value to property change events (@elemoine)
- #2866 - Cluster source calls loadFeatures on vector source (@elemoine)
- #2864 - Avoid mixed content in Bing Maps (r=@elemoine) (@bartvde)
- #2855 - Move touchstart preventDefault to ol.renderer.dom.Map (@fredj)
- #2690 - Vector rendering with the DOM renderer (@ahocevar)
- #2859 - Document exportable vector source symbols. (@tschaub)
- #2857 - Update the OSM attribution. (@tschaub)
- #2847 - Constrain center in zoomify example (@elemoine)
- #2838 - ol.source.WMTS now passes tileClass option to ol.source.TileImage (@mike-mcgann)
- #2821 - Add ol.geom.Polygon.fromExtent (@elemoine)
- #2835 - Use correct Stamen URL for SSL. (@j16sdiz)
- #2839 - Dependency updates and new package name. (@tschaub)
- #2840 - Fewer point resolution tests. (@tschaub)
- #2836 - Give priority to feature's style instead of source's style (@oterral)
- #2834 - Use ADVANCED instead of ADVANCED_OPTIMIZATIONS (@fredj)
- #2833 - Avoid too many files open with [email protected]. (@tschaub)
- #2829 - Zoom slider refactor. (@tschaub)
- #2757 - Clear the canvas on layer extent changes. (@tschaub)
- #2796 - Determine image size on load. (@tschaub)
- #2825 - Change comments for examples_star_json build target (@elemoine)
- #2822 - Remove obsolete comment (@gingerik)
- #2769 - OverviewMap control (@adube)
- #2820 - Add parsing of LabelStyle in KML format (@oterral)
- #2819 - Improvements to the xyz-esri-4326-512 example (@elemoine)
- #2743 - Handle ol.interaction.Draw activation/deactivation (@elemoine)
- #2816 - Exit on check-examples failure (@gberaudo)
- #2794 - Add ol.Observable.unByKey (@elemoine)
- #2815 - Fix jquery.min.js path in xyz-esri-4326-512 example (@fredj)
- #2756 - Add an example for using an Esri 512x512 tile server in EPSG:4326 (r=@elemoine) (@bartvde)
- #2814 - Add missing whitespaces in CSS calc (@fredj)
- #2811 - Remove defaultProjection and object from typedef (@fredj)
- #2779 - Update jQuery to 1.9.1 (@fredj)
- #2810 - Remove unused properties from olx.source.TileVectorOptions (@pagameba)
- #2808 - Remove reprojectTo option from olx.source.OSMXMLOptions (@fredj)
- #2809 - Miscellaneous controls cleanups (@fredj)
- #2805 - Enable subclassing Interaction in public API (@sweco-sebhar)
- #2798 - Update closure-util to version 1.0.0 (@fredj)
- #2785 - Use goog.* types in externs (@ahocevar)
- #2795 - Externs (@gingerik)
- #2792 - Use valid mediatype for GPX export. (@pgiraud)
- #2784 - Add 'tooltip'-tag to KML example. (@marcjansen)
- #2782 - Hide the rotate control when the rotation is 0 (@fredj)
- #2774 - Remove unused distinctFeatures object in ol.interaction.Modify#handlePointerDown (@fredj)
- #2771 - Allow package to be published in npm registry. (@tschaub)
- #2773 - Type-related changes to ol.style.Image (@elemoine)
- #2751 - Export constructors and options of ol.source.Source children (@gberaudo)
- #2772 - Rename updatefeature event to changefeature (@fredj)
- #2766 - Make interaction "active" an ol.Object property (@elemoine)
- #2765 - Treat unknown opt types as Object in ol externs (@elemoine)
- #2759 - Fix test failures. (@tschaub)
- #2762 - Report test failures to the console. (@tschaub)
- #2768 - Write the function name correctly in the doc. (@xamgreen)
- #2764 - Remove rtree example (@fredj)
- #2763 - Miscellaneous coding style and typo fixes (@fredj)
- #2758 - Correctly generate child tile ranges for XYZ tiles. (@tschaub)
- #2734 - Add maxZoom option to BingMaps (@elemoine)
- #2752 - Call loadFeatures from ol.source.ImageVector (@elemoine)
- #2658 - Set inherited values when parsing a GetCapabilities (@oterral)
- #2750 - Export ol.layer.Base (@fredj)
- #2749 - Export ol.source.Source (@fredj)
- #2742 - Dispatch an 'updatefeature' from the vector source (@fredj)
- #2747 - Fix incorrect web address. (@lazaruslarue)
- #2745 - DragBox Interaction: getGeometry return type can be ol.geom.Polygon (r=@fredj) (@bartvde)
- #2744 - Fix ol.Feature 'change' event documentation (@fredj)
- #2741 - issue with reading scientific notation coordinates in ol.format.GML (r=@fredj) (@bartvde)
- #2739 - Revert "Function circular renamed to createCircularOnSphere" (@elemoine)
- #2616 - Target for attribution links differs between maps (@fredj)
- #2740 - Make interactions activable and deactivable (@elemoine)
- #2727 - Rename ol.geom.Polygon#circular to createCircularOnSphere (@elemoine)
- #2730 - Do not call toLowerCase when forming a change:property event (@elemoine)
- #2728 - Mark
ol.extent.getIntersection
as stable. (@tschaub) - #2726 - Make ol.Feature#setStyle accept null (@elemoine)
- #2724 - Error when compiling individual example (@fredj)
- #1959 - Add a feature box selection example (@elemoine)
- #2722 - Make ol.Map#setView do not accept undefined (@elemoine)
- #2696 - Consistent circle transform. (@gberaudo)
- #2717 - Change the control visibility by using css class (@fredj)
- #2715 - Add an EPSG:3857 map to Tissot example (@elemoine)
- #2714 - Set the opacity directly to element.style.opacity (@fredj)
- #2647 - Upgrade closure library version (@fredj)
- #2549 - Use goog.array.ASSUME_NATIVE_FUNCTIONS define (@fredj)
- #2711 - Remove Google Maps example (@elemoine)
- #2684 - Rename ol.Observable#dispatchChangeEvent() to #changed() (@ahocevar)
- #2678 - Mutable symbolizer properties for styles (@ahocevar)
- #2568 - re-implement auto-configure code for ol.format.GML (r=@ahocevar) (@bartvde)
- #2704 - Use pool thread for calling bin/check-example.js. (@gberaudo)
- #2698 - StaticVector is not an abstract base class (@ahocevar)
- #2702 - Add vector layer in export-map example (@fredj)
- #2687 - Use ol.LEGACY_IE_SUPPORT and ol.IS_LEGACY_IE define (@fredj)
- #2675 - Remove undefined from ol.Map#getLayers return type (@fredj)
- #2692 - Unset z-index in overlay example (@fredj)
- #2681 - Make tileSize a config option for ol.source.XYZ (@ahocevar)
- #2534 - Document ol.geom.Polygon#getLinearRing function (@fredj)
- #2677 - Add TextStyle offsets getters to API. (@gberaudo)
- #2676 - ol.FeatureOverlay: use the feature style if defined (@fredj)
- #2656 - Set ol.layer.Image#getSource return type to ol.source.Image (@fredj)
- #2651 - ol.layer.Vector.getSource return type specialisation. (@gberaudo)
- #2669 - Revert "snapshot" (@fredj)
- #2663 - Set tracking property to false on geolocation error (@fredj)
- #2662 - Delegate transformation in ol.source.FormatVector#readFeatures to
ol.format.*
(@gingerik) - #2447 - Correct documentation typo. (@lazaruslarue)
- #2660 - New domain in the build header (@elemoine)