/openlayers

OpenLayers

Primary LanguageJavaScriptBSD 2-Clause "Simplified" LicenseBSD-2-Clause

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 logo

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 logo

yey'maps is a scalable cloud GIS suite that is developed with the powerful Openlayers API and the GDAL library. https://www.yeymaps.io/


GeoSolutions logo

Your one-stop-shop for geospatial open source software. https://www.geosolutionsgroup.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.

IntelliSense (VS Code) support

The untranspiled sources in the src/ folder are JSDoc type annotated. For applications authored in JavaScript, VS Code can get type definitions from these sources with a properly configured jsconfig.json in the project root:

jsconfig.json
{
  "compilerOptions": {
    "checkJs": true,
    "baseUrl": "./",
    "paths": {
      "ol": ["node_modules/ol/src"],
      "ol/*": ["node_modules/ol/src/*"]
    }
  },
  "include": [
    "**/*.js",
    "node_modules/ol/**/*.js"
  ],
  "typeAcquisition": {
    "exclude": ["ol"]
  }
}

TypeScript support

When authoring in TypeScript, we recommend you try out the types that are included in the ol package. To use these types, make sure you have the following entry for @types/ol in your package.json's devDependencies section:

{
  ...
  "devDependencies": {
    ...
    "@types/ol": "file:node_modules/ol/types",
    ...
  }
}

These are auto-generated with the TypeScript compiler, and will be the default in future versions. Alternatively, you can use third-party types from Definitely Typed (npm install @types/ol) or from hanreev/types-ol.

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:

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

Test Status