NextGIS storage and visualization support library is a C++ library with C and Kotlin bindings. The library provides API to optimized vector and raster geodata storage, reading and modification (datasource) and maps creation from these geodata.
Developer can create many maps with different content (layers, based on geodata from datasource) and define different styles. Map can be panned and zoomed, the current extent is stored in map context. Map can return rendered images to display to user in various graphic interfaces. Rendering is optimized for big amounts of geodata and uses non blocking (async) functions. Map spatial reference is Web Mercator (EPSG:3857).
Datasource supports limited input of GDAL vector and raster formats. Supported vector formats:
- GeoJSON
- ESRI Shape file
- MapInfo Tab
- KML
Supported raster formats (only in EPSG:3857):
- GeoTIFF
- Png
- Jpeg
Supported online services:
- WMS (EPSG:3857)
- WFS
Supported tiled services
- TMS (EPSG:3857, 3395)
- MVT
Environment | Status |
---|---|
Ubuntu trusty GCC | |
Ubuntu trusty Clang | |
Mac OS X | |
Android |
Details link
Library also supports NextGIS Web integration:
- NGW instance access
- supported resources listing
- rendering or loading vector geodata (NGW Json, GeoJSON, MVT, WFS)
- rendering or loading raster (WMS, TMS)
- syncing vector geodata with NGW instance (history tables support)
- sending tracking data
During the upload to the internal database (geopackage) the vector geodata is projected into EPSG:3857 and generalized for several zoom levels (equivalent to 4, 8, 12 and 16). This is needed for fast drawing on all map scales. For raster data appropriate overviews generated as well.
The online data is cached for fast access in common place to use from different instances of library.
The library can be linked from desktop software or used via bindings. There are special support scripts for mobile platforms (Android and iOS). See /opt/ios folder.
For Android JNI used to access library functions in Kotlin. The special kotlin wrapper library is at separate repository.
For iOS special Python script build_framework.py to build XCode framework. Carthage support enabled. The special swift wrapper library is at separate repository.
The library code, CMake scripts and other files are distributed under the terms of GNU Lesser Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
Need to fix a bug or add a feature to NextGIS Datastore? We provide custom development and support for this software. Contact us to discuss options!