Main purpose of the new libraries is to simplify usage of nextgis.com/NextGIS Web resources and to speed up the development of Web GIS application of varying complexity levels.
Different mapping frameworks are supported allowing to substitute one another with minimal changes to the code. Here is an example of the same map (a basemap + several vector layers) created with different mapping libraries:
- Leaflet – http://code.nextgis.com/ngw-leaflet-examples-geojson_layer
- Openlayers – http://code.nextgis.com/ngw-ol-examples-geojson_layer
- Mapbox GL JS – http://code.nextgis.com/ngw-mapbox-examples-geojson_layer
- ease of use (see Picture 1);
- same interface for different mapping frameworks (Leaflet, OpenLayers, Mapbox GL JS);
- optimized workflows for main mapping tools;
- data in different NextGIS services all in one place;
- convenient distribution (CDN, npm, git).
Packages and modules
We’re currently releasing a total of 14 libraries which can be described as packages or modules (see Picture 2).
A package is a library that implements a simple way to create a map. A package may contain several modules or 3rd-party libraries and is ready to be used without installing any additional dependencies. Scripts, styles and images might also be included to be distributed as a single file through CDN or other means.
Current packages are:
- ngw-leaflet, ngw-ol and ngw-mapbox – packages for three main open-source mapping frameworks with common interfaces and means to manage nextgis.com/NextGIS Web resources.
- ngw-connector – makes requests to NGW API, handles users authorization. This library is not connected to a map and deals only with data.
- ngw-uploader – uploads data, creates resources, layers, styles and services in nextgis.com/NextGIS Web.
A module is a building block prepared to be imported into an application with a build mechanism, such as Webpack. Supports TypeScript typization.
Current modules are:
- webmap – a common module that provides an abstract representation of a map, its layers and states. It has no dependencies and not linked to NextGIS services.
- adapters: leaflet-map-adapter, ol-map-adapter and mapboxgl-map-adapter – provide common interface for managing different mapping frameworks via webmap.
- ngw-map – similar to webmap, but with set NextGIS service interaction. Allows to implement typical use-cases for the Web maps with minimum code.
- External services interfaces: ngw-kit and qms-kit – extend a webmap to integrate with:
- nextgis.com/NextGIS Web to upload resources and Web maps;
- QuickMapServices for quick adding of basemaps.
- icons – a set of customizable svg-icons for point data (only for leaflet-map-adapter yet).
- dialog – modal windows.
code.nextgis.com aggregates components descriptions and code samples. Most of the libraries can be tested in action and you can test changes to this code in codepen. We continue to expand this set.
nextgis.com/NextGIS Web interaction
Our libraries work via API with data stored in nextgis.com/NextGIS Web backend. To make most use of the libraries you’ll need a cloud Web GIS created at nextgis.com or your own NextGIS Web server. The cloud Web GIS needs to be on Mini or Premium plan. Set up CORS in your Web GIS settings and list domains where your code is hosted.
Current status for NextGIS frontend libraries is Beta. We use them in all our frontend projects and continue to improve them.