When parsing GML then conversion of properties containing XML attributes to objects with a _content_ property must occur before the handling of multiple attributes (conversion/adding to an array), as otherwise the _content_ property and attributes are set on the array and not on the array element. Prior to this change, only multiple properties without attributes could be correctly parsed. Example problemeatic GML section: <Link xlink:href="http://example.com/a"/> <Link xlink:href="http://example.com/b"/> Resulting property as JSON extract after this change: { "Link": [ { "_content_": undefined, "xlink:href": "http://example.com/a", }, { "_content_": undefined, "xlink:href": "http://example.com/b" } ] } Prior to this change, the _content_ property and the properties for the XML attributes would be set on the resulting JS Array object, with previous entries being represented as nested arrays.
OpenLayers
OpenLayers is a high-performance, feature-packed library for creating interactive maps on the web. It can display map tiles, vector data and markers loaded from any source on any web page. OpenLayers has been developed to further the use of geographic information of all kinds. It is completely free, Open Source JavaScript, released under the BSD 2-Clause License.
Getting Started
Install the ol package:
npm install ol
Import just what you need for your application:
import Map from 'ol/Map';
import View from 'ol/View';
import TileLayer from 'ol/layer/Tile';
import XYZ from 'ol/source/XYZ';
new Map({
target: 'map',
layers: [
new TileLayer({
source: new XYZ({
url: 'https://{a-c}.tile.openstreetmap.org/{z}/{x}/{y}.png'
})
})
],
view: new View({
center: [0, 0],
zoom: 2
})
});
See the following examples for more detail on bundling OpenLayers with your application:
Sponsors
OpenLayers appreciates contributions of all kinds. We especially want to thank our fiscal sponsors who contribute to ongoing project maintenance.
Pozi helps connect communities through spatial thinking. We love Openlayers and it forms a core part of our platform. https://pozi.com/ https://app.pozi.com/
yey'maps is a scalable cloud GIS suite that is developed with the powerful Openlayers API and the GDAL library. https://www.yeymaps.io/
Your one-stop-shop for geospatial open source software. https://www.geosolutionsgroup.com/
We develop leading Physical Security Information Management (PSIM) software. OpenLayers is the core of our map engine and we love it! https://elacompil.recruitee.com/
See our GitHub sponsors page or Open Collective if you too are interested in becoming a regular sponsor.
ES Modules
The ol package contains a src/ folder with the sources, authored as ES Modules. To use these untranspiled sources, either import modules from ol/src instead of ol, or configure your bundler with an alias pointing to ol/src for the ol package.
TypeScript support
The ol package includes auto-generated TypeScript declarations as *.d.ts files.
Supported Browsers
OpenLayers runs on all modern browsers that support HTML5 and ECMAScript 5. This includes Chrome, Firefox, Safari and Edge.
For older browsers and platforms (Internet Explorer, Android 4.x, iOS v12 and older, Safari v12 and older), polyfills may be needed for the following browser features:
fetch: Available from polyfill.io.requestAnimationFrame: Available from polyfill.io.element.prototype.classList(add/remove): Available from polyfill.io.URLAPI: Available from polyfill.io or core-js.TextDecoder: Available from polyfill.io.Number.isInteger: Available from polyfill.io or core-js.Reflect: Available from core-js.- Pointer events: Use elm-pep (lightweight) or pepjs (for really, really old browsers).
ol/source/GeoTIFF requires a browser that supports ECMAScript 6. Additionally a polyfill for Promise.allSettled may be needed.
Documentation
Check out the hosted examples, the workshop or the API documentation.
Bugs
Please use the GitHub issue tracker for all bugs and feature requests. Before creating a new issue, do a quick search to see if the problem has been reported already.
Contributing
Please see our guide on contributing if you're interested in getting involved.
Community
- Need help? Find it on Stack Overflow using the tag 'openlayers'
- Follow @openlayers on Twitter



