# index.html.md # Welcome to NextGIS knowledge base! * [Get Started with your Web GIS](docs_ngcom/source/index.md) * [NextGIS Toolbox](docs_toolbox/source/index.md) * [NextGIS Data](docs_data/source/index.md) * [NextGIS Web](docs_ngweb/source/index.md) # Main products * [NextGIS Web on-premise](docs_ngweb/source/ngw_op.md) * [NextGIS QGIS](docs_ngqgis/source/index.md) * [NextGIS Mobile](docs_ngmobile/source/index.md) * [NextGIS GeoServices](docs_geoserv_prem/source/index.md) # Supplementary products * [NextGIS Collector (mobile application)](docs_collector/source/index.md) * [NextGIS Tracker (mobile application)](docs_ngtracker/source/index.md) * [NextGIS ID](docs_ngid/source/index.md) * [NextGIS Connect for QGIS](docs_ngconnect/source/index.md) * [NextGIS Web 3D](docs_ngweb_3D/source/index.md) * [Plugins for QGIS](docs_ngqgis/source/plugins.md) # Developer’s documentation * [NextGIS Web](docs_ngweb_dev/doc/toc.md) * [NextGIS Mobile](ngmobile_dev/source/toc.md) * [NextGIS QMS Service API](qms_srv_dev/doc/api.md) * [NextGIS Formbuilder](docs_formbuilder_dev/doc/toc.md) * [NextGIS Tracker Hub](tracker_hub_dev/source/main.md) * [NextGIS Web Docker](https://docs.nextgis.com/docs_ngweb/source/op_install.html) * [Requirements for remote access](https://docs.nextgis.com/docs_ngweb/source/remote.html) # Additional * [Glossary](glossary.md) * [Tutorials](docs_howto/source/index.md) # PDFs * [`NextGIS Web`](docs_ngweb/build/latex/NextGISWeb.pdf) * [`NextGIS Mobile`](docs_ngmobile/build/latex/NextGISMobile.pdf) # index.html.md # NextGIS Collector Watch on [youtube](https://youtu.be/SvO41DavWm0?si=vPrdJsYSmsnZEJY2). * [Installation](install.md) * [Hardware and software requirements](install.md#hardware-and-software-requirements) * [Authorization](auth.md) * [Via cloud server (my.nextgis.com)](auth.md#via-cloud-server-my-nextgis-com) * [Via on-premise (NGIDOP)](auth.md#via-on-premise-ngidop) * [Change user](auth.md#change-user) * [Working with projects](operations.md) * [Offline data collection](operations.md#offline-data-collection) * [Basic operations](map_tools.md) * [Add a point](map_tools.md#add-a-point) * [Edit a point on the map](map_tools.md#edit-a-point-on-the-map) * [Add a line](map_tools.md#add-a-line) * [Editing lines](map_tools.md#editing-lines) * [Add a polygon](map_tools.md#add-a-polygon) * [Editing polygons](map_tools.md#editing-polygons) * [Zoom and current location](map_tools.md#zoom-and-current-location) * [Tracks](map_tools.md#tracks) * [Synchronization](map_tools.md#synchronization) * [Advanced tools](adv_tools.md) * [How to share backup](adv_tools.md#how-to-share-backup) * [Logging](adv_tools.md#logging) * [Simulation of location data](adv_tools.md#simulation-of-location-data) * [Changelog](changelog.md) * [Index](../../genindex.md) * [Glossary](../../glossary.md#glossary) # index.html.md # NextGIS Data * [General issues](common.md) * [How to order data](order.md) * [How to switch accounts](logout.md) * [How to open the entire map (project)](open_map.md) * [How to order printable map](order_printmap.md) * [How to open a particular layer](open_layer.md) * [How to find the object I need on OpenStreetMap](osm_search.md) * [How to get coordinates of a target object](coord.md) * [How to get municipal boundaries for a target region](district.md) * [How to select all of my city’s hospitals on the map](hospital.md) * [How to prepare map for printing](print.md) * [How to change the language of labels in OSM data](label_lang.md) * [NextGIS Data extracts](extracts.md) * [Our data in other software](other_soft.md) * [How to upload data to NextGIS Web with NextGIS Connect](connect2ngw.md) * [How to upload Tileset to NextGIS Web](tiles2ngw_en.md) * [How to open elevation data in QGIS](elevation_qgis.md) * [How to load elevation data into QGIS 3D window](3d_dem_qgis.md) * [How to open satellite data in QGIS](satellite.md) * [How to upload data to Google maps](google_mymaps.md) * [How to import data into AutoCAD](autocad.md) * [How to add a layer in AutoCAD Map 3D](map3d.md) * [How to load data in R](r.md) * [How to load data in GeoPandas](geopandas.md) * [How to open data in Excel](excel.md) * [How to upload text data into Microsoft Power BI](power_bi.md) * [How to load vector layer into Microsoft Power BI](power_bi_map.md) * [How to vizualize data with Highcharts Maps (highcharts.js)](highcharts.md) * [How to use data in Leaflet (leaflet.js)](leaflet.md) * [How to use data in D3 (d3.js)](d3.md) * [How to load data into PostgreSQL/PostGIS](pg.md) * [How to load multiple tables of different regions in PostgreSQL/PostGIS](upload_tables_postgis.md) * [How to load layer into Tableau](tableau.md) * [How to upload data to Blender GIS](blender.md) * [How to load data into Qlik Sense](qlik.md) * [How to open your project in MapInfo](mapinfo.md) * [How to open raster data in MapInfo](mapinfo_raster.md) * [How to open your basemap project in ArcGIS Pro](arcgispro.md) * [How to open a map or a project in ArcGIS Pro](arcgis.md) * [How to upload data to Locus GIS mobile app](locus.md) * [Data conversion](transform.md) * [How to process your data](process.md) * [How to change coordinate reference system of the data](cs_change.md) * [How to convert file to another GIS format](type_change.md) * [How to change data encoding](encoding_change.md) * [Solving technical problems](problems.md) * [When area or distance differs from the expected value](calc_area.md) # index.html.md # NextGIS Formbuilder #### NOTE This software is no longer supported. To create data collection project, use [Web interface](https://docs.nextgis.com/docs_ngweb/source/collector.html#) instead. You can [`download a PDF archive`](_static/NextGIS_Formbuilder_Fixed.pdf) of the old documentation. # index.html.md # NextGIS GeoServices on-premise * [Introduction](intro.md) * [System requirements](sys_req.md) * [Minimum hardware requirements](sys_req.md#minimum-hardware-requirements) * [Recommended OS](sys_req.md#recommended-os) * [Authorization](auth.md) * [Services](services.md) * [Service groups](services.md#service-groups) * [Add service](services.md#add-service) * [Basemap](services.md#id1) * [NextGIS Web](services.md#nextgis-web) * [External TMS](services.md#external-tms) * [Tileset](services.md#tileset) * [Seeding](services.md#seeding) * [Settings](settings.md) * [Profile](settings.md#profile) * [Users and user groups](settings.md#users-and-user-groups) * [Basemap](settings.md#basemap) * [Log](settings.md#log) * [Storage](settings.md#storage) * [About](settings.md#about) * [Access permissions](permissions.md) * [How different permission rules work together](permissions.md#how-different-permission-rules-work-together) * [Installation (Administrator manual)](admin.md) * [Introduction](admin.md#introduction) * [Select endpoints](admin.md#select-endpoints) * [Install and configure Docker](admin.md#install-and-configure-docker) * [Install NextGIS GeoServices](admin.md#install-nextgis-geoservices) * [Recommendations for reverse proxy setup](admin.md#recommendations-for-reverse-proxy-setup) * [Operability check](admin.md#nggs-prem-admin-check) * [Upgrade](upgrade.md) * [Upgrade to 2.26.x from 2.25.x](upgrade.md#upgrade-to-2-26-x-from-2-25-x) * [Upgrade to 2.25.x from 2.24.x](upgrade.md#upgrade-to-2-25-x-from-2-24-x) * [Upgrade to 2.24.x from 2.23.x](upgrade.md#upgrade-to-2-24-x-from-2-23-x) * [Upgrade to 2.23.x from 2.22.x](upgrade.md#upgrade-to-2-23-x-from-2-22-x) * [Upgrade to 2.22.x from 2.21.x](upgrade.md#upgrade-to-2-22-x-from-2-21-x) * [Upgrade to 2.21.x from 2.20.x](upgrade.md#upgrade-to-2-21-x-from-2-20-x) * [Upgrade to 2.20.x from 2.19.x](upgrade.md#upgrade-to-2-20-x-from-2-19-x) * [Upgrade to 2.19.x from 2.18.x](upgrade.md#upgrade-to-2-19-x-from-2-18-x) * [Upgrade to 2.18.x from 2.17.x](upgrade.md#upgrade-to-2-18-x-from-2-17-x) * [Upgrade to 2.17.x from 2.16.1](upgrade.md#upgrade-to-2-17-x-from-2-16-1) * [For versions 2.16.1 and below](upgrade.md#for-versions-2-16-1-and-below) * [Changelog](changelog.md) # index.html.md # NextGIS GeoServices * [Introduction](intro.md) * [Authorization](auth.md) * [Basemap services](basemap_tiles.md) * [Reissue of API key](reissue_api_key.md) # index.html.md # Tutorials Download a starter data kit and follow detailed step-ty-step instructions to get to know NextGIS platform with first-hand experience. 1. [Store, manage and publish your spatial data](https://docs.nextgis.com/docs_howto/source/tutorial_webgis.html) 2. [Seamless QGIS Integration](https://docs.nextgis.com/docs_howto/source/tutorial_qgis.html) [![image](docs_howto/source/_static/t2_title_seamless.png)](https://docs.nextgis.com/docs_howto/source/tutorial_qgis.html) 1. [Collect Spatial Data in the Field](https://docs.nextgis.com/docs_howto/source/tutorial_collect.html) [![image](docs_howto/source/_static/t3_title_collect.png)](https://docs.nextgis.com/docs_howto/source/tutorial_collect.html) 1. [Track Asset and Team Locations in Real Time](https://docs.nextgis.com/docs_howto/source/tutorial_track.html) [![image](docs_howto/source/_static/t4_title_track.png)](https://docs.nextgis.com/docs_howto/source/tutorial_track.html) # index.html.md # Get Started with NextGIS * [Intro](intro.md) * [Web GIS: Description and Main Features](description.md) * [Account](create.md) * [How to create account (NextGIS ID)](create.md#how-to-create-account-nextgis-id) * [Sign-in via NextGIS ID](create.md#sign-in-via-nextgis-id) * [Change or recover NextGIS ID password](create.md#change-or-recover-nextgis-id-password) * [My account](create.md#my-account) * [Where can I use NextGIS ID](create.md#ngcom-ngid-use) * [Team](teams.md) * [Team information](teams.md#team-information) * [Manage your team](teams.md#manage-your-team) * [Allow team members to access Web GIS](teams.md#allow-team-members-to-access-web-gis) * [Team memberships](teams.md#team-memberships) * [How to create Web GIS](create_webgis.md) * [How to sign in to your Web GIS](create_webgis.md#how-to-sign-in-to-your-web-gis) * [Main menu](create_webgis.md#main-menu) * [Subscription](subscription.md) * [Upgrade subscription plan](subscription.md#upgrade-subscription-plan) * [Cancel subscription](subscription.md#cancel-subscription) * [Which data formats and protocols are supported in Web GIS](data_types.md) * [How data is managed](resources.md) * [Demo projects](demoprojects.md) * [What you can do with demo projects](demoprojects.md#what-you-can-do-with-demo-projects) * [Tutorial: Store, manage and publish your spatial data](tutorial_webgis.md) * [Step 1/6 Create free account and Web GIS](tutorial_webgis.md#step-1-6-create-free-account-and-web-gis) * [Step 2/6 Access your Web GIS and create resource group](tutorial_webgis.md#step-2-6-access-your-web-gis-and-create-resource-group) * [Step 3/6 Upload and publish vector layer](tutorial_webgis.md#step-3-6-upload-and-publish-vector-layer) * [Step 4/6 Upload a style](tutorial_webgis.md#step-4-6-upload-a-style) * [Step 5/6 Upload and publish raster layer](tutorial_webgis.md#step-5-6-upload-and-publish-raster-layer) * [Step 6/6 Publish Web Map](tutorial_webgis.md#step-6-6-publish-web-map) * [Add external WMS layer to Web Map](tutorial_webgis.md#wms) * [Add basemaps to Web Map](tutorial_webgis.md#add-basemaps-to-web-map) * [Create vector layer inside Web GIS](tutorial_webgis.md#empty-layer) * [Edit vector layer on a Web Map, add file attachments](tutorial_webgis.md#edit-vector-layer-on-a-web-map-add-file-attachments) * [Publish OGC API — Features service](tutorial_webgis.md#ogc-api) * [What next](tutorial_webgis.md#next) * [Tutorial: Seamless QGIS Integration](tutorial_qgis.md) * [Step 1/5 Create free account and Web GIS](tutorial_qgis.md#step-1-5-create-free-account-and-web-gis) * [Step 2/5 Open and explore QGIS project](tutorial_qgis.md#step-2-5-open-and-explore-qgis-project) * [Step 3/5 Install NextGIS Connect plugin](tutorial_qgis.md#step-3-5-install-nextgis-connect-plugin) * [Step 4/5 Create a connection](tutorial_qgis.md#step-4-5-create-a-connection) * [Step 5/5 Publish QGIS project to NextGIS Web](tutorial_qgis.md#step-5-5-publish-qgis-project-to-nextgis-web) * [Connect to Web Map from QGIS](tutorial_qgis.md#id2) * [Modify layer styles on the Web Map from QGIS](tutorial_qgis.md#modify-layer-styles-on-the-web-map-from-qgis) * [Update raster layer style on a Web Map](tutorial_qgis.md#raster-style) * [Edit data from QGIS and explore results on the Web Map](tutorial_qgis.md#edit-data-from-qgis-and-explore-results-on-the-web-map) * [How to upload data](data_upload.md) * [Quick preview](data_upload.md#quick-preview) * [Raster data](data_upload.md#raster-data) * [Vector data](data_upload.md#vector-data) * [How to connect data from external sources](data_connect.md) * [Basemaps](data_connect.md#basemaps) * [External PostGIS databases](data_connect.md#external-postgis-databases) * [External WMS services](data_connect.md#external-wms-services) * [External TMS services](data_connect.md#external-tms-services) * [How to create map styles for data visualization](styles.md) * [QGIS style](styles.md#qgis-style) * [MapServer style](styles.md#mapserver-style) * [Raster style](styles.md#raster-style) * [How to create a Web Map](webmap_create.md) * [Create Web Map](webmap_create.md#create-web-map) * [Open Web Map](webmap_create.md#open-web-map) * [Add a description](webmap_create.md#add-a-description) * [How to embed a Web Map on your website](embed_webmap.md) * [Embeded map settings](embed_webmap.md#embeded-map-settings) * [How to share a link to a particular Web Map feature](embed_webmap.md#how-to-share-a-link-to-a-particular-web-map-feature) * [How to publish data using standard protocols](data_services.md) * [WMS service](data_services.md#wms-service) * [WFS service](data_services.md#wfs-service) * [How to connect a Lookup table to a vector layer](lookup.md) * [How to use a lookup table for layer editing in NextGIS Web](lookup.md#how-to-use-a-lookup-table-for-layer-editing-in-nextgis-web) * [How to use a lookup table in QGIS](lookup.md#how-to-use-a-lookup-table-in-qgis) * [How to manage data with desktop app QGIS](ngqgis_connect.md) * [How to enable the monitoring of moving objects (tracking)](tracking.md) * [Introduction](tracking.md#introduction) * [How tracking works](tracking.md#how-tracking-works) * [Creating tracker groups](tracking.md#creating-tracker-groups) * [Tracking in NextGIS Mobile, Collector and Tracker](tracking.md#tracking-in-nextgis-mobile-collector-and-tracker) * [Tracking results on the Web Map](tracking.md#tracking-results-on-the-web-map) * [Managing access rights](permissions.md) * [Terms](permissions.md#terms) * [Viewing user permissions](permissions.md#viewing-user-permissions) * [Permissions tab in Settings](permissions.md#permissions-tab-in-settings) * [Common cases of assigning permissions](permissions.md#common-cases-of-assigning-permissions) * [How to begin data collection in your Web GIS](collector.md) * [Introduction](collector.md#introduction) * [Principles of work with NextGIS Collector](collector.md#principles-of-work-with-nextgis-collector) * [Organizer of data collection: adding team participants in Web GIS](collector.md#organizer-of-data-collection-adding-team-participants-in-web-gis) * [Organizer of data collection: creating data collection project](collector.md#organizer-of-data-collection-creating-data-collection-project) * [Team participants: mobile app installation and start of data collection](collector.md#team-participants-mobile-app-installation-and-start-of-data-collection) * [Administrator’s check-list](collector.md#administrator-s-check-list) * [How to use Web GIS for creation of end-user apps](ngapi.md) * [How to improve translation](translation.md) * [Join the project](translation.md#join-the-project) * [How to translate](translation.md#how-to-translate) * [Toubleshooting](help.md) * [Styles compatibility between QGIS and NextGIS Web](help.md#styles-compatibility-between-qgis-and-nextgis-web) * [How to get help or send a bug report](help.md#how-to-get-help-or-send-a-bug-report) * [Problem Solving (Q&A)](faq_webgis.md) * [How to sign in to Web GIS](faq_webgis.md#how-to-sign-in-to-web-gis) * [Access recovery and passwords](faq_webgis.md#access-recovery-and-passwords) * [Personal data](faq_webgis.md#personal-data) * [Two NextGIS accounts. Background](faq_webgis.md#two-nextgis-accounts-background) * [How to…](howtos.md) * [Index](../../genindex.md) * [Glossary](../../glossary.md#glossary) # index.html.md # NextGIS Connect for QGIS **General information** * [Overview](https://docs.nextgis.com/docs_ngconnect/source/ngconnect.html) * [Install and update](https://docs.nextgis.com/docs_ngconnect/source/ngc_install.html) * [Create connection](https://docs.nextgis.com/docs_ngconnect/source/ngc_install.html#ng-connect-new-connection) * [Settings](https://docs.nextgis.com/docs_ngconnect/source/ngc_settings.html) **Upload data to the cloud** * [Entire project](https://docs.nextgis.com/docs_ngconnect/source/ngc_data_transfer.html#qgis-project) * [Vector layer](https://docs.nextgis.com/docs_ngconnect/source/ngc_data_transfer.html#vector-data) * [Raster layer](https://docs.nextgis.com/docs_ngconnect/source/resources.html#raster-data) * [Basemap](https://docs.nextgis.com/docs_ngconnect/source/ngc_data_transfer.html#basemaps) * [Replace data](https://docs.nextgis.com/docs_ngconnect/source/edit.html#connect-data-overwrite) * [Update style](https://docs.nextgis.com/docs_ngconnect/source/edit.html#connect-style-overwrite) **Use data from the cloud** * [Add data from the cloud](https://docs.nextgis.com/docs_ngconnect/source/resources.html#connect-data-export) * [Export to file](https://docs.nextgis.com/docs_ngconnect/source/export.html) * [Edit data](https://docs.nextgis.com/docs_ngconnect/source/edit.html) * [Work with Lookup tables](https://docs.nextgis.com/docs_ngconnect/source/resources.html#ng-connect-lookup) **Manage resources** * [Search and filter](https://docs.nextgis.com/docs_ngconnect/source/filter.html) * [Create: folder, Web Map, layer, service](https://docs.nextgis.com/docs_ngconnect/source/manage.html#wfs-wms-ogc-api-features) * [Delete](https://docs.nextgis.com/docs_ngconnect/source/manage.html#connect-resource-delete) * [Copy](https://docs.nextgis.com/docs_ngconnect/source/manage.html#connect-resource-double) **Useful information** * [Troubleshooting](https://docs.nextgis.com/docs_ngconnect/source/troubleshooting.html) * [Glossary](../../glossary.md#glossary)

Detailed table of contents

* [Overview](ngconnect.md) * [Installation](ngc_install.md) * [Create a connection](ngc_install.md#create-a-connection) * [Keycloak authentication in NextGIS QGIS](ngc_install.md#keycloak-authentication-in-nextgis-qgis) * [Plugin interface](panel.md) * [Refresh](panel.md#refresh) * [Display in browser](panel.md#display-in-browser) * [Context Menu](panel.md#context-menu) * [Main Settings](ngc_settings.md) * [Connections](ngc_settings.md#connections) * [Uploading](ngc_settings.md#uploading) * [Resources](ngc_settings.md#resources) * [Searching](ngc_settings.md#searching) * [Synchronization](ngc_settings.md#synchronization) * [Cache settings](ngc_settings.md#cache-settings) * [Other settings](ngc_settings.md#other-settings) * [Proxy server settings](ngc_settings.md#proxy-server-settings) * [Search and filter](filter.md) * [Search by name](filter.md#search-by-name) * [Search by URL](filter.md#search-by-url) * [Filter by expression](filter.md#filter-by-expression) * [Metadata search](filter.md#metadata-search) * [Resource types](filter.md#resource-types) * [How to find identification numbers](filter.md#how-to-find-identification-numbers) * [Upload data to the cloud storage](ngc_data_transfer.md) * [Resource types](ngc_data_transfer.md#resource-types) * [Upload entire QGIS project](ngc_data_transfer.md#upload-entire-qgis-project) * [Upload vector data](ngc_data_transfer.md#upload-vector-data) * [Upload raster data](ngc_data_transfer.md#upload-raster-data) * [Upload basemap](ngc_data_transfer.md#upload-basemap) * [Working with cloud data](resources.md) * [From Web GIS to QGIS](resources.md#from-web-gis-to-qgis) * [Add vector layer to QGIS](resources.md#add-vector-layer-to-qgis) * [Lookup tables](resources.md#lookup-tables) * [Synchronization with Web GIS](resources.md#synchronization-with-web-gis) * [Open a project created on another device](resources.md#open-a-project-created-on-another-device) * [Edit data](edit.md) * [Multi user editing](edit.md#multi-user-editing) * [Resolve edit confilcts](edit.md#resolve-edit-confilcts) * [Change layer structure](edit.md#change-layer-structure) * [Edit layer with WFS](edit.md#edit-layer-with-wfs) * [Update data](edit.md#update-data) * [Update style](edit.md#update-style) * [Copy style from Web GIS](edit.md#copy-style-from-web-gis) * [Export to file](export.md) * [Save layer as file](export.md#save-layer-as-file) * [Save vector layer style](export.md#save-vector-layer-style) * [Manage resources](manage.md) * [Create resource group](manage.md#create-resource-group) * [Create Web Map from a layer](manage.md#create-web-map-from-a-layer) * [Create empty vector layer](manage.md#create-empty-vector-layer) * [Create service](manage.md#create-service) * [Duplicate resource](manage.md#duplicate-resource) * [Delete resource](manage.md#delete-resource) * [Troubleshooting](troubleshooting.md) * [Problems connecting to Web GIS (NGW)](troubleshooting.md#problems-connecting-to-web-gis-ngw) * [Issues uploading data](troubleshooting.md#issues-uploading-data) # index.html.md # NextGIS ID * [Introduction](intro.md) * [Overview](ngidop.md) * [Authorization and profile](ngidop.md#authorization-and-profile) * [Team](ngidop.md#team) * [OAuth applications](ngidop.md#oauth-applications) * [Setting up LDAP](ngidop.md#setting-up-ldap) * [NextGIS ID on-premise identificator](ngidop.md#nextgis-id-on-premise-identificator) # index.html.md # NextGIS Mobile **General** * [Instal](https://docs.nextgis.com/docs_ngmobile/source/install.html) * [Log in](https://docs.nextgis.com/docs_ngmobile/source/auth.html) * [User interface](https://docs.nextgis.com/docs_ngmobile/source/main.html) * [Settings](https://docs.nextgis.com/docs_ngmobile/source/settings.html) **Layers** * Vector layers > * [Create empty layer](https://docs.nextgis.com/docs_ngmobile/source/load_geodata.html#ngmobile-create-vector) > * [Add from file](https://docs.nextgis.com/docs_ngmobile/source/load_geodata.html#ngmobile-import-vector) * [Vector layer settings](https://docs.nextgis.com/docs_ngmobile/source/layer_settings.html#ngmobile-vector-layer-settings) * [Raster layers](https://docs.nextgis.com/docs_ngmobile/source/load_geodata.html#ngmobile-import-ngrc) * [GeoServices](https://docs.nextgis.com/docs_ngmobile/source/load_geodata.html#ngmobile-add-geoservice) * [TMS service](https://docs.nextgis.com/docs_ngmobile/source/load_geodata.html#ngmobile-qms-service) * [Raster layer settings](https://docs.nextgis.com/docs_ngmobile/source/layer_settings.html#ngmobile-raster-layer-settings) * [Export](https://docs.nextgis.com/docs_ngmobile/source/share.html) **Features** * [Feature table](https://docs.nextgis.com/docs_ngmobile/source/main.html#ngmobile-attributes-table) * [Add feature](https://docs.nextgis.com/docs_ngmobile/source/editing.html#ngmobile-add-geometry) * [Edit geometry](https://docs.nextgis.com/docs_ngmobile/source/editing.html#ngmobile-edit-geometry) * [Edit attributes](https://docs.nextgis.com/docs_ngmobile/source/editing.html#ngmobile-edit-geometry) * [Attachments](https://docs.nextgis.com/docs_ngmobile/source/share.html#ngmobile-export-attachments) **Tracks** * [Setting up the device](https://docs.nextgis.com/docs_ngmobile/source/tracks.html#tracks-settings) * [Recording](https://docs.nextgis.com/docs_ngmobile/source/tracks.html#ngmobile-record-tracks) * [Managing](https://docs.nextgis.com/docs_ngmobile/source/tracks.html#ngmobile-manage-tracks) * [Automatic synchronization](https://docs.nextgis.com/docs_ngmobile/source/settings.html#ngmobile-settings-tracks) **Web GIS** * [Add layer from Web GIS](https://docs.nextgis.com/docs_ngmobile/source/ngw_integration.html#ngmobile-add-layer-webgis) * [Upload layer to Web GIS](https://docs.nextgis.com/docs_ngmobile/source/ngw_integration.html#ngmobile-upload) * [Synchronization settings](https://docs.nextgis.com/docs_ngmobile/source/ngw_integration.html#ngmobile-synchronization-layer-webgis) * [On-premise authorization](https://docs.nextgis.com/docs_ngmobile/source/ngw_integration.html#ngm-create-connection-onp) * [Manage Web GIS connections](https://docs.nextgis.com/docs_ngmobile/source/ngw_integration.html#ngmobile-change-account) **Troubleshooting** * [Signing in](https://docs.nextgis.com/docs_ngmobile/source/faq_ngmobile.html#ngmobile-change-passwords) * [Logs](https://docs.nextgis.com/docs_ngmobile/source/log.html) * [Simulating location data](https://docs.nextgis.com/docs_ngmobile/source/mock_location.html)

Detailed table of contents

* [Introduction](intro.md) * [About NextGIS Mobile](intro.md#about-nextgis-mobile) * [Hardware and software requirements](intro.md#hardware-and-software-requirements) * [Installation](install.md) * [Authorization](auth.md) * [Via my.nextgis.com](auth.md#via-my-nextgis-com) * [Via on-premise (NGIDOP)](auth.md#via-on-premise-ngidop) * [User interface (UI)](main.md) * [Main screen](main.md#main-screen) * [Layers tree](main.md#layers-tree) * [Features table](main.md#features-table) * [Useful features](main.md#useful-features) * [Settings dialogue](settings.md) * [General](settings.md#ngmobile-settings-gen) * [Map](settings.md#ngmobile-settings-map) * [Restore layers](settings.md#restore-layers) * [Location](settings.md#ngmobile-settings-loc) * [My tracks](settings.md#ngmobile-settings-tracks) * [Adding layers](load_geodata.md) * [Creating new vector layer](load_geodata.md#creating-new-vector-layer) * [Creating vector layer from GeoJSON data](load_geodata.md#creating-vector-layer-from-geojson-data) * [Creating vector layer from Custom forms (NGFP)](load_geodata.md#creating-vector-layer-from-custom-forms-ngfp) * [Creating raster layer from Tile cache (XYZ/TMS)](load_geodata.md#creating-raster-layer-from-tile-cache-xyz-tms) * [Creating raster layer from Tile cache (NGRC)](load_geodata.md#creating-raster-layer-from-tile-cache-ngrc) * [Creating raster layer from external geoservice](load_geodata.md#creating-raster-layer-from-external-geoservice) * [Adding geodata from Web GIS](load_geodata.md#adding-geodata-from-web-gis) * [Editing layers](editing.md) * [Switching to Edit mode](editing.md#switching-to-edit-mode) * [The Editing Toolbar](editing.md#the-editing-toolbar) * [Adding features](editing.md#adding-features) * [Adding current location](editing.md#adding-current-location) * [Adding line or polygon by walk](editing.md#adding-line-or-polygon-by-walk) * [Editing a geometry](editing.md#editing-a-geometry) * [Editing attributes](editing.md#editing-attributes) * [Tracks](tracks.md) * [Settings](tracks.md#settings) * [Recording a track](tracks.md#recording-a-track) * [Managing recorded tracks](tracks.md#managing-recorded-tracks) * [Exporting data](share.md) * [Exporting data in GeoJSON](share.md#exporting-data-in-geojson) * [Exporting attachments](share.md#exporting-attachments) * [Exporting tracks in GPX](share.md#exporting-tracks-in-gpx) * [Layer settings](layer_settings.md) * [Vector layer settings](layer_settings.md#vector-layer-settings) * [Raster layer settings](layer_settings.md#raster-layer-settings) * [Integration with NextGIS Web](ngw_integration.md) * [Add a layer (vector/raster) from Web GIS](ngw_integration.md#add-a-layer-vector-raster-from-web-gis) * [Upload layer to Web GIS](ngw_integration.md#upload-layer-to-web-gis) * [Parameters for synchronization with Web GIS](ngw_integration.md#parameters-for-synchronization-with-web-gis) * [Add Web GIS connection](ngw_integration.md#add-web-gis-connection) * [Add connection to NextGIS Web on-premise](ngw_integration.md#add-connection-to-nextgis-web-on-premise) * [Edit Web GIS connection](ngw_integration.md#edit-web-gis-connection) * [Delete Web GIS connection](ngw_integration.md#delete-web-gis-connection) * [Logging](log.md) * [How to get useful logs](log.md#how-to-get-useful-logs) * [Enable logging](log.md#enable-logging) * [Send log or save as file](log.md#send-log-or-save-as-file) * [Solving problem (Q&A)](faq_ngmobile.md) * [Application sign in](faq_ngmobile.md#application-sign-in) * [Other issues](faq_ngmobile.md#other-issues) * [Simulation of location data](mock_location.md) * [Changelog](changelog.md) # index.html.md # NextGIS QGIS * [Plugins for QGIS](plugins.md) * [Install plugins](install_plugin.md) * [Update plugins](update_plugins.md) * [Gather logs in QGIS](logs.md) * [QuickMapServices: most downloaded QGIS plugin](qms.md) * [IdentifyPlus](identifyplus.md) * [NextGIS EasyQuery](easyquery.md) * [Digitizr](digitizr.md) * [MOLUSCE](molusce.md) * [Geometry Paster](geom_paster.md) * [OSMInfo](osminfo.md) * [Click-Fu](clickfu.md) * [DumpLoadField](dumploadfield.md) * [QTiles](qtiles.md) * [Connect Points](connectpoints.md) * [Copy_Coords](copycoords.md) * [Points2One](points2one.md) * [Join lines](joinlines.md) * [MultiQML](multiqml.md) * [Quickly save default QML](quicksaveqml.md) * [NextGIS OGRStyle](ogrstyle.md) * [Send2GE](send2ge.md) * [OSMPoly_export](osmpoly_export.md) * [Shortcut Manager](shortcut.md) * [ReconstructLine](reconstructline.md) * [Wurman Dots](wurman_dots.md) * [QGIS DevTools — debugging QGIS plugins](devtools.md) * [NextGIS Toolbox](toolbox.md) * [NextGIS Connect](https://docs.nextgis.com/docs_ngconnect/source/index.html) * [NextGIS QGIS](intro.md) * [Index](../../genindex.md) * [Glossary](../../glossary.md#glossary) # index.html.md # NextGIS Tracker * [What the app is for](intro.md) * [Installation](install.md) * [Setting up](setting_up.md) * [Track recording settings](setting_up.md#track-recording-settings) * [Setting up sending tracks to Web GIS](setting_up.md#setting-up-sending-tracks-to-web-gis) * [User interface](ui.md) * [Main screen](ui.md#main-screen) * [Settings](ui.md#settings) * [Track recording](rec_track.md) * [Export track as GPX](export.md) * [Viewing tracks on a Web Map in Web GIS](view_webgis.md) # index.html.md # NextGIS Web **General** * [Functionality overview of NextGIS Web](https://docs.nextgis.com/docs_ngweb/source/general.html) * [Authorization](https://docs.nextgis.com/docs_ngweb/source/admin_interface.html#authorization) * [User interface](https://docs.nextgis.com/docs_ngweb/source/admin_interface.html) * [Resources](https://docs.nextgis.com/docs_ngweb/source/create_resource.html) * [Resource settings](https://docs.nextgis.com/docs_ngweb/source/edit_resource.html) * [Favorites](https://docs.nextgis.com/docs_ngweb/source/favorites.html) * [Gallery](https://docs.nextgis.com/docs_ngweb/source/gallery.html) **Layers, services** * [Vector and raster layers](https://docs.nextgis.com/docs_ngweb/source/layers.html) * [Versioning](https://docs.nextgis.com/docs_ngweb/source/version.html) * [Vector upload details](https://docs.nextgis.com/docs_ngweb/source/vect_layer_upload_params.html) * [PostGIS layers](https://docs.nextgis.com/docs_ngweb/source/postgis_details.html) * [WFS, WMS, TMS layers](https://docs.nextgis.com/docs_ngweb/source/connections.html) * [Feature table](https://docs.nextgis.com/docs_ngweb/source/feature_table.html) * [Styles](https://docs.nextgis.com/docs_ngweb/source/mapstyles.html) * [Services](https://docs.nextgis.com/docs_ngweb/source/services.html) * [Export](https://docs.nextgis.com/docs_ngweb/source/admin_interface.html#data-export) * [Attachments](https://docs.nextgis.com/docs_ngweb/source/feature_edit.html#ngw-attachments) **Web Maps** * [Web Map](https://docs.nextgis.com/docs_ngweb/source/webmaps_admin.html) * [Web Map viewer](https://docs.nextgis.com/docs_ngweb/source/webmaps_client.html) * [Edit data on Web Map](https://docs.nextgis.com/docs_ngweb/source/feature_edit.html) * [Print and export Web Maps](https://docs.nextgis.com/docs_ngweb/source/print.html) * [Embed Web Map](https://docs.nextgis.com/docs_ngweb/source/embed_webmap.html) * [Annotations](https://docs.nextgis.com/docs_ngweb/source/annotation.html) * [Settings](https://docs.nextgis.com/docs_ngweb/source/webmap_set.html) * [Clone (Duplicate)](https://docs.nextgis.com/docs_ngweb/source/webmap_clone.html) **Lookup tables and File buckets** * [Lookup table](https://docs.nextgis.com/docs_ngweb/source/create_other.html#ngw-create-lookup-table) * [File bucket](https://docs.nextgis.com/docs_ngweb/source/create_other.html#ngw-create-file-bucket) **Data collection** * [Participants](https://docs.nextgis.com/docs_ngweb/source/collector.html#ngw-collector-add-members) * [Data collection on-premise](https://docs.nextgis.com/docs_ngweb/source/data_collection_on_premise.html) * [Project](https://docs.nextgis.com/docs_ngweb/source/collector.html#ngw-collector-create-project) * [Form](https://docs.nextgis.com/docs_ngweb/source/collector.html#collector-create-form) **Tracking** * [Tracker](https://docs.nextgis.com/docs_ngcom/source/tracking.html#tracking-create) * [View tracks on Web Map](https://docs.nextgis.com/docs_ngweb/source/trackers.html#tracking-web-map) * [GPS tracking settings](https://docs.nextgis.com/docs_ngweb/source/trackers.html) **Administrating and settings** * [Manage users](https://docs.nextgis.com/docs_ngweb/source/users.html) * [Permissions](https://docs.nextgis.com/docs_ngweb/source/permissions.html) * [Spacial reference systems](https://docs.nextgis.com/docs_ngweb/source/ngw_srs.html) * [Homepage](https://docs.nextgis.com/docs_ngweb/source/look.html#ngw-homepage) * [Cross-origin resource sharing (CORS)](https://docs.nextgis.com/docs_ngweb/source/cors.html) * [System information](https://docs.nextgis.com/docs_ngweb/source/infowebgis.html) * [Metrics and analytics](https://docs.nextgis.com/docs_ngweb/source/analytics.html) * [Design](https://docs.nextgis.com/docs_ngweb/source/look.html) * [URL](https://docs.nextgis.com/docs_ngweb/source/domain.html) * [White label](https://docs.nextgis.com/docs_ngweb/source/label.html) **Useful information** * [Change log](https://docs.nextgis.com/docs_ngweb/source/sysadmin_updates.html) * [Glossary](../../glossary.md#glossary)

Detailed table of contents

* [Introduction](intro.md) * [General Information](general.md) * [Key features of NextGIS Web](general.md#key-features-of-nextgis-web) * [Minimum hardware](general.md#minimum-hardware) * [Recommended software versions](general.md#recommended-software-versions) * [Main interface](admin_interface.md) * [Authorization](admin_interface.md#authorization) * [Home page](admin_interface.md#home-page) * [Language change](admin_interface.md#language-change) * [Resource search](admin_interface.md#resource-search) * [Control panel](admin_interface.md#control-panel) * [Resource view](admin_interface.md#resource-view) * [Feature table](admin_interface.md#feature-table) * [Data export](admin_interface.md#data-export) * [Interface for guests](admin_interface.md#interface-for-guests) * [Adding resources](create_resource.md) * [Create Resource group to manage data](create_resource.md#create-resource-group-to-manage-data) * [Data preview](create_resource.md#data-preview) * [Typical structure](create_resource.md#typical-structure) * [Gallery](gallery.md) * [Gallery items](gallery.md#gallery-items) * [Gallery settings](gallery.md#gallery-settings) * [Add layers](layers.md) * [Vector layer](layers.md#ngw-create-vector-layer) * [Raster layer](layers.md#ngw-create-raster-layer) * [Tileset](layers.md#ngw-tile-set) * [Raster layer storage](layers.md#raster-storage) * [Services](services.md) * [MVT vector tiles](services.md#mvt-vector-tiles) * [TMS service](services.md#tms-service) * [OGC API – Features service](services.md#ogc-api-features-service) * [WFS service](services.md#wfs-service) * [WMS service](services.md#wms-service) * [Update resource](edit_resource.md) * [Move resource](edit_resource.md#move-resource) * [Delete resource](edit_resource.md#delete-resource) * [Edit description and metadata](edit_resource.md#edit-description-and-metadata) * [Keyname for API integrations](edit_resource.md#keyname-for-api-integrations) * [Managing Feature table](feature_table.md) * [Feature table on a separate page](feature_table.md#feature-table-on-a-separate-page) * [Feature table on a Web Map](feature_table.md#feature-table-on-a-web-map) * [Search and filter](feature_table.md#search-and-filter) * [Filter layer features on the Web Map by area](feature_table.md#filter-layer-features-on-the-web-map-by-area) * [View feature entry](feature_table.md#view-feature-entry) * [Create new feature](feature_table.md#create-new-feature) * [Edit features](feature_table.md#edit-features) * [Delete feature](feature_table.md#delete-feature) * [Export to file](feature_table.md#export-to-file) * [Displaying selected fields and feature edit information](feature_table.md#displaying-selected-fields-and-feature-edit-information) * [Other tools](feature_table.md#other-tools) * [Edit vector features](feature_edit.md) * [Edit mode on a Web Map](feature_edit.md#edit-mode-on-a-web-map) * [Create a new feature (point, line, polygon)](feature_edit.md#create-a-new-feature-point-line-polygon) * [Delete feature](feature_edit.md#delete-feature) * [Move feature](feature_edit.md#move-feature) * [Edit vertices](feature_edit.md#edit-vertices) * [Add and delete vertices](feature_edit.md#add-and-delete-vertices) * [Create holes](feature_edit.md#create-holes) * [Edit feature’s attributes](feature_edit.md#edit-feature-s-attributes) * [Attachments](feature_edit.md#attachments) * [Disable editing on the map](feature_edit.md#disable-editing-on-the-map) * [Styles](mapstyles.md) * [Formats](mapstyles.md#formats) * [QGIS Vector Style](mapstyles.md#qgis-vector-style) * [Editing QGIS style](mapstyles.md#editing-qgis-style) * [MapServer style](mapstyles.md#mapserver-style) * [Raster style](mapstyles.md#raster-style) * [Tile cache](mapstyles.md#tile-cache) * [Adding a style on the map](mapstyles.md#adding-a-style-on-the-map) * [Creating other types of resources](create_other.md) * [Lookup table](create_other.md#lookup-table) * [File bucket](create_other.md#file-bucket) * [Versioning](version.md) * [Versioning in the NextGIS Web interface](version.md#versioning-in-the-nextgis-web-interface) * [Versioning in NextGIS Web API](version.md#versioning-in-nextgis-web-api) * [Versioning in QGIS](version.md#versioning-in-qgis) * [Vector layer settings](layers_settings.md) * [Edit vector layer attributes table](layers_settings.md#edit-vector-layer-attributes-table) * [Delete or replace all features](layers_settings.md#delete-or-replace-all-features) * [Change layer geometry](layers_settings.md#change-layer-geometry) * [Advanced options for uploading vector layer from a file](vect_layer_upload_params.md) * [Processing possible errors](vect_layer_upload_params.md#processing-possible-errors) * [Detecting geometry type](vect_layer_upload_params.md#detecting-geometry-type) * [Object ID detection settings (FID)](vect_layer_upload_params.md#object-id-detection-settings-fid) * [PostGIS](postgis_details.md) * [Creating PostGIS connection](postgis_details.md#creating-postgis-connection) * [Creating PostGIS layer](postgis_details.md#creating-postgis-layer) * [Multiple geometries in a singe table](postgis_details.md#multiple-geometries-in-a-singe-table) * [PostGIS diagnostics](postgis_details.md#postgis-diagnostics) * [PostGIS layer troubleshooting](postgis_details.md#postgis-layer-troubleshooting) * [Create layers with conditions](postgis_details.md#create-layers-with-conditions) * [WFS, WMS, TMS layers](connections.md) * [WFS](connections.md#ngw-wfs-in) * [WMS](connections.md#ngw-wms-in) * [TMS](connections.md#ngw-tms-in) * [Adding Web Maps](webmaps_admin.md) * [Creating a Web Map](webmaps_admin.md#creating-a-web-map) * [Web Map Layers](webmaps_admin.md#web-map-layers) * [Basemaps](webmaps_admin.md#basemaps) * [Settings](webmaps_admin.md#settings) * [Legend](webmaps_admin.md#legend) * [Extent](webmaps_admin.md#ngw-map-extent) * [Bookmarks](webmaps_admin.md#bookmarks) * [Hide or show panels and identification sections](webmaps_admin.md#hide-or-show-panels-and-identification-sections) * [Social](webmaps_admin.md#social) * [Final steps](webmaps_admin.md#final-steps) * [Open Web Map settings](webmaps_admin.md#open-web-map-settings) * [How to optimize Web Map performance](webmaps_admin.md#how-to-optimize-web-map-performance) * [Web Map Cloning](webmap_clone.md) * [Clone to another group](webmap_clone.md#clone-to-another-group) * [Clone to a new group](webmap_clone.md#clone-to-a-new-group) * [Web Map viewer](webmaps_client.md) * [Zoom and rotation](webmaps_client.md#zoom-and-rotation) * [Panels](webmaps_client.md#ngw-webmaps-client-panels) * [Map tools](webmaps_client.md#ngw-webmaps-client-tools) * [Share](webmaps_client.md#ngw-webmaps-client-share) * [Link to a Web Map feature](webmaps_client.md#link-to-a-web-map-feature) * [Legend in the layers tree](webmaps_client.md#legend-in-the-layers-tree) * [Layer menu](webmaps_client.md#layer-menu) * [Filter](webmaps_client.md#filter) * [Feature identification](webmaps_client.md#ngw-webmaps-client-ident) * [Search](webmaps_client.md#ngw-webmaps-client-search) * [Basemap](webmaps_client.md#basemap) * [Contact Web GIS owner](webmaps_client.md#contact-web-gis-owner) * [Print a Web Map or save as image](print.md) * [Embed Web Map on a Web page](embed_webmap.md) * [Embeded map settings](embed_webmap.md#embeded-map-settings) * [Web Map Settings](webmap_set.md) * [Navigation menu vizibility](webmap_set.md#navigation-menu-vizibility) * [Identify panel](webmap_set.md#ngw-contr-panel-webmap-ident) * [Measurements](webmap_set.md#measurements) * [Address search](webmap_set.md#address-search) * [Favorites](favorites.md) * [How to add Web Map fragment to Favorites](favorites.md#how-to-add-web-map-fragment-to-favorites) * [Favorites list editing](favorites.md#favorites-list-editing) * [Web Map annotations](annotation.md) * [Annotation. What is it?](annotation.md#annotation-what-is-it) * [How to enable Web Map annotations?](annotation.md#how-to-enable-web-map-annotations) * [Web Map: Annotations panel](annotation.md#web-map-annotations-panel) * [Web Map: annotation editting](annotation.md#web-map-annotation-editting) * [Web Map: user’s permissions associated with annotations](annotation.md#web-map-user-s-permissions-associated-with-annotations) * [Managing users](users.md) * [Create new user group](users.md#create-new-user-group) * [Global permissions](users.md#global-permissions) * [How to find user identification number](users.md#how-to-find-user-identification-number) * [Disable or delete users](users.md#disable-or-delete-users) * [How to bind NextGIS ID to an existing Web GIS user](users.md#how-to-bind-nextgis-id-to-an-existing-web-gis-user) * [Create new local user](users.md#create-new-local-user) * [Update local user password](users.md#update-local-user-password) * [Permission system in NextGIS Web](permissions.md) * [Permissions and its types (scopes)](permissions.md#permissions-and-its-types-scopes) * [Access control list and the rules](permissions.md#access-control-list-and-the-rules) * [Permissions dependencies](permissions.md#permissions-dependencies) * [Computing Effective Permissions](permissions.md#computing-effective-permissions) * [Assigning permissions to users before their first sign in](permissions.md#assigning-permissions-to-users-before-their-first-sign-in) * [Spacial Reference Systems](ngw_srs.md) * [Custom Spacial Reference Systems](ngw_srs.md#custom-spacial-reference-systems) * [How to edit or delete SRS](ngw_srs.md#how-to-edit-or-delete-srs) * [Usage of additional SRS](ngw_srs.md#usage-of-additional-srs) * [Custom SRS support for external PostGIS Databases](ngw_srs.md#custom-srs-support-for-external-postgis-databases) * [Collector projects](collector.md) * [List of collectors](collector.md#list-of-collectors) * [Data collection project](collector.md#ngw-collector-create-project) * [Form for data collection](collector.md#form-for-data-collection) * [Form elements](form_elements.md) * [Label](form_elements.md#id2) * [Spacer](form_elements.md#id4) * [Tabs](form_elements.md#id6) * [Text edit](form_elements.md#text-edit) * [Checkbox](form_elements.md#checkbox) * [Date and time](form_elements.md#datetime) * [Coordinates](form_elements.md#id10) * [Distance meter](form_elements.md#distance) * [Average calculator](form_elements.md#average) * [Photo](form_elements.md#id14) * [System field](form_elements.md#sytem) * [Dropdown](form_elements.md#id17) * [Dual dropdown](form_elements.md#id19) * [Radio group](form_elements.md#radio) * [Dependent dropdowns](form_elements.md#dependet-dropdown) * [Import options](form_elements.md#import-options) * [Import options from CSV](form_elements.md#import-options-from-csv) * [Data collection on premise](data_collection_on_premise.md) * [Introduction](data_collection_on_premise.md#introduction) * [Administrator’s check-list](data_collection_on_premise.md#administrator-s-check-list) * [Trackers settings](trackers.md) * [Viewing tracks on a Web Map](trackers.md#viewing-tracks-on-a-web-map) * [Reports](trackers.md#reports) * [Export to GPX](trackers.md#export-to-gpx) * [Cross-origin resource sharing (CORS)](cors.md) * [Web GIS information](infowebgis.md) * [System information](infowebgis.md#system-information) * [Plan and features](infowebgis.md#plan-and-features) * [Storage](infowebgis.md#storage) * [Available updates](infowebgis.md#available-updates) * [Backup policy](infowebgis.md#backup-policy) * [Backups](infowebgis.md#backups) * [User activity log](infowebgis.md#user-activity-log) * [Metrics and analytics](analytics.md) * [Design customization](look.md) * [Web GIS name](look.md#web-gis-name) * [Font management](look.md#font-management) * [Upload a logo](look.md#upload-a-logo) * [Customize the design with CSS](look.md#customize-the-design-with-css) * [Custom CSS examples](look.md#custom-css-examples) * [Hide resource export](look.md#hide-resource-export) * [How to change the homepage address](look.md#how-to-change-the-homepage-address) * [How to change Web GIS domain](domain.md) * [Customize UI Elements (White label)](label.md) * [Company logo on Web Map](label.md#company-logo-on-web-map) * [Company URL](label.md#company-url) * [Help page](label.md#help-page) * [Support URL](label.md#support-url) * [Other items](label.md#other-items) * [Glossary](../../glossary.md#glossary) # index.html.md # NextGIS Web 3D * [Introduction](intro.md) * [Uploading 3D Models](3D_models.md) * [Uploading and storing 3D datasets](3D_tilesets.md) * [Uploading elevation data](DEM.md) * [3D data Styles](3D_style.md) * [General](3D_style.md#general) * [3D Style](3D_style.md#d-style) * [POI](3D_style.md#poi) * [3D Model](3D_style.md#d-model) * [Creation of 3D scenes](3D_scenes.md) * [Rendering 3D scenes](3D_scene_visualization.md) # index.html.md # NextGIS Web REST API * [Authorization](auth.md) * [Managing users](auth.md#managing-users) * [Managing groups](auth.md#managing-groups) * [Automatically creating users](auth.md#automatically-creating-users) * [Get resource permissions](auth.md#get-resource-permissions) * [Simple output](auth.md#simple-output) * [Detailed output](auth.md#detailed-output) * [Resources](resource.md) * [Resource classes](resource.md#resource-classes) * [HTTP API](resource.md#http-api) * [Create resource](create.md) * [Resource group](create.md#resource-group) * [PostGIS Connection](create.md#postgis-connection) * [PostGIS Layer](create.md#postgis-layer) * [Empty vector layer](create.md#empty-vector-layer) * [Vector layer with data](create.md#vector-layer-with-data) * [Feature in vector or PostGIS layer](create.md#feature-in-vector-or-postgis-layer) * [Add attachment to feature](create.md#add-attachment-to-feature) * [Batch create features in vector layer](create.md#batch-create-features-in-vector-layer) * [Raster layer](create.md#raster-layer) * [File bucket](create.md#file-bucket) * [Mapserver style](create.md#mapserver-style) * [QGIS style](create.md#qgis-style) * [Raster style](create.md#raster-style) * [Lookup table](create.md#lookup-table) * [Web map](create.md#web-map) * [WMS Service](create.md#wms-service) * [WMS Connection](create.md#wms-connection) * [WMS Layer](create.md#wms-layer) * [Tracker](create.md#tracker) * [File upload](file_upload.md) * [Single file upload](file_upload.md#single-file-upload) * [Multiple file upload](file_upload.md#multiple-file-upload) * [Editing](change.md) * [Change resource](change.md#change-resource) * [Change webmap](change.md#change-webmap) * [Change metadata](change.md#change-metadata) * [Change file bucket resource](change.md#change-file-bucket-resource) * [Change lookup table resource](change.md#change-lookup-table-resource) * [Change feature](change.md#change-feature) * [Change attachment](change.md#change-attachment) * [Delete feature](change.md#delete-feature) * [Delete features](change.md#delete-features) * [Delete all features](change.md#delete-all-features) * [Delete attachment](change.md#delete-attachment) * [Delete all attachments](change.md#delete-all-attachments) * [Miscellaneous](misc.md) * [Get resource data](misc.md#get-resource-data) * [Identify by polygon](misc.md#identify-by-polygon) * [Error reporting](error_report.md) * [Vector layer data types](vector_data_types.md) * [Python API library](python_api.md) * [ogr2ogr](ogr2ogr.md) # Indices and tables * [Index](../../../genindex.md) * [Module Index](../../../py-modindex.md) * [Search OpenStreetMap features](../../../docs_ngqgis/source/osminfo.md#search) # index.html.md # NextGIS Web internals * [Components and environment](component.md) * [Dependencies between components](component.md#dependencies-between-components) * [Global env object](component.md#global-env-object) * [Component class](component.md#component-class) * [Env class](component.md#env-class) * [Modern JavaScript](jsrealm.md) * [Setup and directory layout](jsrealm.md#setup-and-directory-layout) * [Working with packages](jsrealm.md#working-with-packages) * [Webpack modules](jsrealm.md#webpack-modules) * [Writing modules](jsrealm.md#writing-modules) * [Long-running API requests](lunkwill.md) * [Internationalization and localization](i18n.md) * [Server side](i18n.md#server-side) * [Client side](i18n.md#client-side) * [Testing framework](test.md) * [File layout](test.md#file-layout) * [Unit tests](test.md#unit-tests) * [Functional tests](test.md#functional-tests) * [Writing tests](test.md#writing-tests) * [Running tests](test.md#running-tests) * [Package versioning](versioning.md) * [Package configuration](versioning.md#package-configuration) * [Development versions](versioning.md#development-versions) * [Release versions](versioning.md#release-versions) * [Backports and patches](versioning.md#backports-and-patches) * [Database migrations](migration.md) * [Existing components](migration.md#existing-components) * [New components](migration.md#new-components) * [Python migrations](migration.md#python-migrations) * [URLs and routes](url_route.md) * [URLs](url_route.md#urls) * [Route names](url_route.md#route-names) * [Describing API](apitype.md) * [Path parameters](apitype.md#path-parameters) * [Query parameters](apitype.md#query-parameters) * [Request body](apitype.md#request-body) * [Response](apitype.md#response) * [Code formatting](code_formatting.md) # Indices and tables * [Index](../../../genindex.md) * [Module Index](../../../py-modindex.md) * [Search OpenStreetMap features](../../../docs_ngqgis/source/osminfo.md#search) # index.html.md # NextGIS Toolbox * [Introduction](intro.md) * [Purpose](intro.md#purpose) * [Installation and running](intro.md#installation-and-running) * [Authorization](intro.md#authorization) * [Use via MCP](mcp.md) * [ChatGPT (web)](mcp.md#chatgpt-web) * [Claude (web)](mcp.md#claude-web) * [Claude Code](mcp.md#claude-code) * [Cursor IDE](mcp.md#cursor-ide) * [Tools](tools.md) * [Add region and settlement names to attributes](add_regions.md) * [Adobe Illustrator (\*.ai) to geodata](ai2geo.md) * [Aggregate raster layer to H3 grid](aggregate_raster_layer_to_h3.md) * [Aggregate vector layer to H3 grid](aggregate_vector_layer_to_h3.md) * [Layer list from DWG file](autocad_file_schema.md) * [Report DWG / DXF file version](autocad_version.md) * [ASCII raster to GeoTIFF](ascii2geotiff.md) * [Buffer](buffer.md) * [Central lines of polygons](centerline.md) * [Points inside polygons](centroid2attr.md) * [Check geometries](check_geometries.md) * [Calculate areas of intersection](clip_polys_poly.md) * [Convert format of vector layer](convert.md) * [Reproject coordinates](coord_recalc.md) * [Coordinates to polygon](coords2poly.md) * [Count TMS tiles for polygon](count_tiles.md) * [Count number of layer intersections](crossing_borders.md) * [Extract elevations from DEM](deminpoints.md) * [DOC(X) to PDF](doc2pdf.md) * [Prepare and download Sentinel-2 data](download_and_prepare_l8_s2.md) * [Download Landsat Analysis Ready Data (GLAD ARD)](download_glad.md) * [Embed SVG into QGS/QML](embedsvg.md) * [Empty geometries in Web GIS layer](empty_geoms.md) * [Erase overlapping areas from layer](eraser.md) * [Erosion Susceptibility Analysis](erosion_analysis.md) * [Photos with EXIF to NGW layer](exif2resource.md) * [Change attributes in layer group](field_value_changer.md) * [Fix geometries](fix_geometries.md) * [Strip ZM from vector layer](flatten.md) * [Flood Susceptibility Analysis](flood_analysis.md) * [GBIF species observations to geodata](gbif_download.md) * [Advanced vector generalization](generalization.md) * [Geocode table](geocodetable.md) * [Geodata to PMTiles](geodata2pmtiles.md) * [Change geometries in layer groups](geometry_changer.md) * [GeoPackage to MapInfo Enhanced TAB](gpkg2etab.md) * [GPS track animation for social media](gpxanimation.md) * [Geotag photos using GPX track](gpx2exif.md) * [Clip GPX file by bounding box](gpxclipbbox.md) * [Split GPX file by days](gpxdailysplit.md) * [Merge GPX files](gpxmerge.md) * [Split GPX into individual tracks](gpxtracksplit.md) * [Meter grid](grid.md) * [Hello, World!](hello.md) * [iNaturalist species observations to geodata](inaturalist_download.md) * [Image classification](image_classification.md) * [Image clustering](image_clustering.md) * [Copernicus Sentinel image search](imagesearch.md) * [DWG to DXF](import_dwg.md) * [DWG to DXF (libdxfrw)](import_dwg_libdxfrw.md) * [Improve DEM](improvedem.md) * [Intersection registry](intersect_layers.md) * [Join layer and table by field](join_by_field.md) * [KML to geodata](kml2geodata.md) * [Projection (Dae, Collada) to Shapefile](kmldae2footprints.md) * [Search and save Landsat-L2C2 scene previews](landsat_search.md) * [Landsat radiometric calibration](landsat_to_radiance.md) * [Landsat reflectance calculation](landsat_to_reflectance.md) * [Landslide Susceptibility Analysis](landslide_analysis.md) * [Vector layers in Web GIS from archive](layers2ngw.md) * [Form multi-channel raster from individual channels](layerstack.md) * [Lines to polygons](lines2poly.md) * [Temporal polygons from lines and points](lines2polygons.md) * [MapInfo ready for QGIS](mapinfo2qgis.md) * [Vertical map for Social Media](mappy.md) * [Max distance between polygon nodes](maxdist.md) * [MBTiles to NGRC](mbtiles2ngrc.md) * [Marine traffic report](mt2report.md) * [Normalized difference index](ndi.md) * [Attribute to description for Web GIS](ngw_attribute2description.md) * [Contribution activity report for resource](ngw_contribution_activity.md) * [Copy nextgis.com resource group with data](ngw_copy_group.md) * [Duplicate Web GIS layer](ngw_copy_layer.md) * [Feature history](ngw_feature_history.md) * [Resource group to Web Map](ngw_group2webmap.md) * [Intersection registry for Web GIS](ngw_intersect.md) * [Get the layer historical state](ngw_layer_historical_state.md) * [Manage Web GIS layer structure](ngw_layer_schema.md) * [Merge two Web GIS vector layers](ngw_merge_layers.md) * [Vector layers from Web GIS to GeoPackage](ngw_to_gpkg.md) * [Web Map to image](ngw_webmap2image.md) * [Combine two Web Maps into a new one](ngw_webmap_combiner.md) * [Geocode with Nominatim](nominatim_geocode.md) * [Merge vector layers](ogrmerge.md) * [Download OpenStreetMap](osm_download.md) * [Clip PBF file by bbox](osmclip_bbox.md) * [Convert Garden Gnome Package panoramas to JPEG](pano2vr.md) * [Add Google Photosphere XMP metadata to photos](panotag.md) * [Import PastVu photos to Web GIS](pastvu2webgis.md) * [Search & download Planetary Computer](planetary_search.md) * [Point cloud to tileset](pointcloud2tileset.md) * [Statistics of points and tracks in polygons from NGW](points_on_tracks_stats.md) * [Polygons topological simplifier](polysimplifier.md) * [Parse addresses](postal.md) * [Predict satellite overpass](predict_overpass.md) * [Prepare raster](prepare_raster.md) * [Check geometries (QGIS)](qgis_check_geometries.md) * [Fix geometries (QGIS)](qgis_fix_geometries.md) * [Multipart to singleparts](qgis_multiparttosingleparts.md) * [QGIS project to PDF](qgis2pdf.md) * [Set of squares with transects](quadro.md) * [Raster calculator (GRASS)](r_mapcalc.md) * [Raster calculator (GDAL)](raster_calculator.md) * [Raster to NGRC](raster2tiles.md) * [Erase features](removecontents.md) * [Sentinel-2 scenes to GPKG](s2_search.md) * [Sunlight hours prediction](solar_hours.md) * [Spatial Join (Join by location)](spatial_join.md) * [Compute spectral index](spectral_indices.md) * [Split into equal parts](split_to_equal.md) * [Split into rectangles and calculate their number](split_to_rect.md) * [Split at 180th meridian](split180.md) * [Split Complex Polygons](splitcomplex.md) * [Google Sheets to Web GIS](spreadsheet2layer.md) * [Table to vector file](table2geo.md) * [Create temporal cache](temporal_split.md) * [Comprehensive Terrain Analysis](terrain_analysis.md) * [TROPOMI to GeoTIFF](tropomi2geotiff.md) * [Update Web GIS layer from CSV](update_vector_layer.md) * [Prepare vector layer for DataLens](vector2datalens.md) * [Layer intersection](vectorclip.md) * [Web GIS structure to spreadsheet](web_gis_structure.md) * [Web Map to QGIS project](webmap2qgis.md) * [Wildfire Susceptibility Analysis (Topographic)](wildfire_analysis.md) * [Glossary](../../glossary.md#glossary) # index.html.md # NextGIS Toolbox on-premise * [Overview](intro.md) * [System requirements](sys_req.md) * [Authorization](auth.md) * [User interface](ui.md) * [Tools](tools.md) * [Administrator manual for NextGIS Toolbox on-premise](admin.md) * [Select connection addresses](admin.md#select-connection-addresses) * [NextGIS ID authorization](admin.md#nextgis-id-authorization) * [Install and configure Docker](admin.md#install-and-configure-docker) * [Install NextGIS Toolbox](admin.md#install-nextgis-toolbox) * [Recommendations for reverse proxy setup](admin.md#recommendations-for-reverse-proxy-setup) * [Operability check](admin.md#operability-check) # 3D_models.html.md # Uploading 3D Models **What is a 3D model**. 3D model - is a digital representation of a three-dimensional object. **What formats are supported**. You can upload 3D models in formats FBX and GLB. **How to upload the model (description of all tabs)**. To upload a 3D model, you need to create a “3D model” resource. It is located in the right pane of NextGIS Web in the list of available resources ([Fig. 713.](#ngw3d-select-3d-model)). ![image](docs_ngweb_3D/source/_static/ngw3D_select_3D_model_en.png) The process of creating a 3D model resource is performed step by step and is divided into 4 tabs in the interface. On the first one you need to set the name of the 3D model resource ([Fig. 714.](#ngw3d-name-3d-model-pic)). This field is required. ![image](docs_ngweb_3D/source/_static/ngw3D_name_3D_model_en.png) On the second tab it is possible to add a text description of the resource in any form ([Fig. 715.](#ngw3d-desc-3d-model-pic)). ![image](docs_ngweb_3D/source/_static/ngw3D_desc_3D_model_en.png) On the third tab the user can add metadata to the 3D model resource ([Fig. 717.](#ngw3d-file-3d-model)). ![image](docs_ngweb_3D/source/_static/ngw3D_metadata_3D_model_en.png) On the fourth tab you need to upload a 3D model file in FBX or GLB format from your computer ([Fig. 716.](#ngw3d-metadata-3d-model)). ![image](docs_ngweb_3D/source/_static/ngw3D_file_3D_model_en.png) After clicking the “Create” button the 3D Model resource will be created in the specified NextGIS Web directory ([Fig. 718.](#ngw3d-finished-3d-model)). ![image](docs_ngweb_3D/source/_static/ngw3D_finished_3D_model_en.png) # 3D_scene_visualization.html.md # Rendering 3D scenes NextGIS Web includes a special client application for rendering 3D scenes. You can open the web client using the icon ![open_3d_scene_icon](docs_ngweb_3D/source/_static/open_3d_scene_icon_EN.png) or click the *Display* button inside the resource ([Fig. 757.](#ngw3d-open-3d-scene-vizual)). ![image](docs_ngweb_3D/source/_static/ngw3D_open_3d_scene_vizual_en.png) Have a tour of a 3D scene in our video: Watch on [youtube](https://youtu.be/beCsdlvCszY?si=feOM8zDsk7Nkobde). ![image](docs_ngweb_3D/source/_static/ngw3D__3d_scene_vizual_en.png) The web client includes three main components: a 3D scene ([Fig. 757.](#ngw3d-open-3d-scene-vizual), item 1), panels ([Fig. 757.](#ngw3d-open-3d-scene-vizual), items 3, 4), and 3D scene tools ([Fig. 757.](#ngw3d-open-3d-scene-vizual), items 7, 8). The map scale can be changed using the scale control buttons ([Fig. 757.](#ngw3d-open-3d-scene-vizual), item 8). The left side of the workspace functionality panel arranged: * Layer tree * Search * NGW resource tree In the search bar ([Fig. 757.](#ngw3d-open-3d-scene-vizual), item 3), as you type, a search will be performed by two sources: * By attributive information of layers added to the map * According to the address base of OpenStreetMap Results appear as you type. Objects found by attribute values from added layers are shown first. Next are the addresses containing the search string. When you select a search result from the list, the map navigates to it. The settings bar is responsible for specifying the rendering quality of data on the scene. When you select a layer in the layer tree, you can call the layer menu ([Fig. 757.](#ngw3d-open-3d-scene-vizual), item 2), which contains the Zoom to function, which centers the layer on the 3D scene. To change basemap and connect a terrain resource, use the drop-down lists ([Fig. 757.](#ngw3d-open-3d-scene-vizual), items 5, 6). The 3D scene mode switch is used to change the way of displaying data - 3D on the Globe or 2D on a plane. # 3D_scenes.html.md # Creation of 3D scenes Three-dimensional objects in NextGIS Web can be placed on a 3D scene - an analogue of a web map for three-dimensional objects. To create it, go to the required NextGIS Web directory and select the creation of a *3D scene* resource ([Fig. 744.](#ngw3d-select-3d-scene)). ![image](docs_ngweb_3D/source/_static/ngw3D_select_3D_scene_en.png) The Resource tab indicates the name of the future 3D scene ([Fig. 745.](#ngw3d-name-3d-scene)). ![image](docs_ngweb_3D/source/_static/ngw3D_name_3D_scene_en.png) The ‘3D scene’ tab allows you to select the type of data display on the 3D scene - a globe or a plane ([Fig. 746.](#ngw3d-settings-3d-scene)). It is also possible to connect Yandex Panoramas and Google Street View data by specifying the appropriate API keys. Also you can specify a quality value that affects the performance of a 3D scene. ![image](docs_ngweb_3D/source/_static/ngw3D_settings_3D_scene_en.png) The ‘Extent’ window sets the area of coverage of the 3D scene in degrees ([Fig. 747.](#ngw3d-extent-3d-scene)). ![image](docs_ngweb_3D/source/_static/ngw3D_extent_3D_scene_en.png) There is also an option - to set the extent by the layer loaded in Web GIS ([Fig. 748.](#ngw3d-extent-by-layer-3d-scene)). Clicking on the folder icon with a plus opens a window where you can select the layer on which you want to specify the extent of the 3D scene. ![image](docs_ngweb_3D/source/_static/ngw3D_extent_by_layer_3D_scene_en.png) The ‘Items’ tab allows you to add and remove items of various NextGIS Web resources on/from a 3D scene - for example, 3D styles and 3D tilesets (Fig. 38), as well as form them into various groups. ![image](docs_ngweb_3D/source/_static/ngw3D_elements_3D_scene_en.png) The addition takes place after you click ‘Add Item’, resulting in an open choice NextGIS Web resource box ([Fig. 750.](#ngw3d-select-elements-3d-scene)). ![image](docs_ngweb_3D/source/_static/ngw3D_select_elements_3D_scene_en.png) The *Visible* option means that when a 3D scene is opened this element will be displayed by default. Various basemaps can be added to the 3D scene. The addition takes place using the ‘Add’ button ([Fig. 751.](#ngw3d-add-basemap-3d-scene)) and specifies basemap resource NextGIS Web ([Fig. 752.](#ngw3d-select-basemap-3d-scene)). ![image](docs_ngweb_3D/source/_static/ngw3D_add_basemap_3D_scene_en.png)![image](docs_ngweb_3D/source/_static/ngw3D_select_basemap_3D_scene_en.png) To upload a basemap onto a 3D scene, you must first create it in NextGIS Web. For this there is a resource Basemap ([Fig. 753.](#ngw3d-create-basemap-3d-scene)). ![image](docs_ngweb_3D/source/_static/ngw3D_create_basemap_3D_scene_en.png) You can specify the URL or find the one you need in the search In the Settings, if there is one in [QuickMapServices](https://qms.nextgis.com/) ([Fig. 754.](#ngw3d-settings-basemap-3d-scene)) directory. ![image](docs_ngweb_3D/source/_static/ngw3D_settings_basemap_3D_scene1_en.png) The Terrain resource of the previously created TMS layer is added to the 3D scene on the Terrain tab ([Fig. 755.](#ngw3d-terrain-3d-scen-pic)). Adding occurs through the standard addition of a resource in the corresponding window ([Fig. 756.](#ngw3d-select-terrain-3d-scene-pic)). ![image](docs_ngweb_3D/source/_static/ngw3D_terrain_3D_scen_en.png)![image](docs_ngweb_3D/source/_static/ngw3D_select_terrain_3D_scene_en.png) Permissions, description and metadata are optional. # 3D_style.html.md # 3D data Styles ## General 3D Data Styles are applied to vector layers that need to be created in advance by selecting the appropriate type of NextGIS Web resource ([Fig. 736.](#ngw3d-select-vect-layer)) and uploading objects into it in the [ESRI Shapefile](../../glossary.md#term-ESRI-Shapefile), [GeoJSON](../../glossary.md#term-GeoJSON), [GeoPackage](../../glossary.md#term-GeoPackage), [GeoJSON](../../glossary.md#term-GeoJSON), [GML](../../glossary.md#term-GML), [KML](../../glossary.md#term-KML), [CSV](../../glossary.md#term-CSV) or [XLSX](../../glossary.md#term-XLSX) format ([Fig. 737.](#ngw3d-upload-vect-data)). ![image](docs_ngweb_3D/source/_static/ngw3D_select_vect_layer_en.png)![image](docs_ngweb_3D/source/_static/ngw3D_upload_vect_data_en.png) Vector layer styling is carried out using the 3D style resource ([Fig. 738.](#ngw3d-select-3d-style)) which is a child of the vector layer resource. ![image](docs_ngweb_3D/source/_static/ngw3D_select_3D_style_en.png) At the first stage of creating a 3D style you must specify its name ([Fig. 739.](#ngw3d-name-3d-style)). ![image](docs_ngweb_3D/source/_static/ngw3D_name_3D_style_en.png) Permissions, description and metadata are optional settings. The main parameters are set on the *3D style* tab. There are three types of styling for 3D data: * 3D style * POI * Model ## 3D Style **3D style** - a display of the layer is similar to a 2D web map. The following options for styling geometric primitives are available: * Stroke color * Stroke width * Fill color * Height You can set constant values or select fields from the vector layer attributes table ([Fig. 740.](#ngw3d-settings-3d-style)). ![image](docs_ngweb_3D/source/_static/ngw3D_settings_3D_style_en.png) ## POI **POI** - a style selection from preset icons. Adjustable parameters ([Fig. 741.](#ngw3d-poi-3d-style)): * POI Colour * Priority * Inverse * Limit the number of points that will be rendered on the client with the prioritization ![image](docs_ngweb_3D/source/_static/ngw3D_poi_3D_style_en.png) ## 3D Model **3D Model** - styling a vector layer loaded 3D model. Configurable parameters: * 3D model ID - value / field of the layer attributes table, which contains the ID of the 3D model in NextGIS Web ([Fig. 742.](#ngw3d-id-3d-model)) * Scale - value/field of the layer attribute table, which contains the scale of the model display * Rotate, degrees - value/field of the attribute table of the layer, which contains the rotation angle of the model in degrees ([Fig. 743.](#ngw3d-grad-3d-model)) ![image](docs_ngweb_3D/source/_static/ngw3D_id_3D_model_en.png)![image](docs_ngweb_3D/source/_static/ngw3D_grad_3D_model_en.png) # 3D_tilesets.html.md # Uploading and storing 3D datasets **What is a three-dimensional dataset** (format specification given on the [link](https://github.com/CesiumGS/3d-tiles)) - a special set of three-dimensional tiles, which can handle Cesium, organized as a spatial data structure as a tree. **What formats are supported** - cesium 3D tileset. A tileset is described by at least one JSON file containing tileset metadata and a tree of tile objects, each of which can refer to updated content in one of the following formats: * [Batched 3D Model (b3dm)](https://github.com/CesiumGS/3d-tiles/blob/master/specification/TileFormats/Batched3DModel/README.md) * [Instanced 3D Model (i3dm) (b3dm)](https://github.com/CesiumGS/3d-tiles/blob/master/specification/TileFormats/Instanced3DModel/README.md) * [Point Cloud (pnts)](https://github.com/CesiumGS/3d-tiles/blob/master/specification/TileFormats/PointCloud/README.md) * [Composite (cmpt)](https://github.com/CesiumGS/3d-tiles/blob/master/specification/TileFormats/Composite/README.md) **How to upload a 3D dataset**. To upload a three-dimensional dataset you need to create a “3D tileset” resource ([Fig. 719.](#ngw3d-select-3d-tileset)). ![image](docs_ngweb_3D/source/_static/ngw3D_select_3D_tileset_en.png) The process of creating a 3D tileset resource is performed step by step and is divided into 5 tabs in the interface. The first one is to set the name of the 3D tileset resource ([Fig. 720.](#ngw3d-name-3d-tileset)). This field is required. ![image](docs_ngweb_3D/source/_static/ngw3D_name_3D_tileset_en.png) On the second tab it is possible to add a textual description of the resource in any form. On the third tab the user can add metadata to the 3D tileset resource ([Fig. 721.](#ngw3d-metadata-3d-tileset)). ![image](docs_ngweb_3D/source/_static/ngw3D_metadata_3D_tileset_en.png) The fourth tab 3D TILESET involves uploading a 3D dataset from the user’s computer in a zip archive. And also defines the offset value of the dataset along the Z axis and the correlation with the terrain data - if the option is selected, the zero level of the tileset will be set to the terrain height ([Fig. 722.](#ngw3d-upload-3d-tileset)). ![image](docs_ngweb_3D/source/_static/ngw3D_upload_3D_tileset_en.png) After clicking the “Create” button the 3D tileset resource will be created in the specified NextGIS Web directory ([Fig. 723.](#ngw3d-finished-1-3d-tileset)). ![image](docs_ngweb_3D/source/_static/ngw3D_finished_1_3D_tileset_en.png) # 3d_dem_qgis.html.md # How to load elevation data into QGIS 3D window * [Order elevation data](https://data.nextgis.com/en/) for your area of interest, e.g. in GeoPackage (QGSIS) and GeoTIFF format choosing the step of contour lines. * Go to the [orders](https://data.nextgis.com/en/orders/actual/) page and download the archive when it’s complete. * **Unpack** the archive. * Download and install [QGIS](https://qgis.org/en/site/forusers/download.html/). * Launch QGIS. * Drag and drop **hillshade.tif**, **dem.tif** and **contour_lines.gpkg** from the unpacked data folder to QGIS interface. ![image](docs_data/source/_static/elev_qgis_project_en.png) * On the top bar click View -> 3D Map Views -> New 3D Map View ![image](docs_data/source/_static/3d_dem_newmap_en.png) * In 3D Configuration: set the parameters for the Terrain - select a DEM (Raster Layer), specify the raster layer **dem**, select other parameters depending on your data ![image](docs_data/source/_static/3d_dem_settings_en.png) * Click OK. The 3D terrain data model will appear in the window ![image](docs_data/source/_static/3d_dem_result_en.png) # 404.html.md # Page not found Most likely, this page was moved. Go to the [main page](/index.html), or use [search](/search.html). [Go back](/index.html) # Auth.html.md # Authorization ## Via cloud NextGIS ID (my.nextgis.com) To unlock additional functionality of benefits NextGIS QGIS (switch to Pro-version NextGIS QGIS), you must be on a [Mini or Premium](https://nextgis.com/pricing-base/) plan and login. By default, locked tools are shown like this: ![blocked_tools](docs_ngqgis/source/_static/auth/blocked_tools.png). To activate the Pro-version of NextGIS QGIS you need to login with NextGIS Account Toolbar button ![not_auth](docs_ngqgis/source/_static/auth/not_auth.png) on the toolbar (see in `acc_toolbar_deactive`). ![image](docs_ngqgis/source/_static/auth/acc_toolbar_deactive.png) Authorization is done via a web browser which will redirect to [https://my.nextgis.com](https://my.nextgis.com). On this page you need to enter your NextGIS ID or register (see in `auth_page`). If you have forgotten your account information, you can [recover](https://docs.nextgis.com/docs_ngcom/source/faq_webgis.html#i-forgot-my-account-password-nextgis-id-what-to-do) your account using the same page. ![image](docs_ngqgis/source/_static/auth/auth_page.png) After entering the login and password, you will receive a message about successful authorization in NextGIS QGIS (see in `suscess_auth`), and access to the Pro-functions will be unlocked ![ublocked_tools](docs_ngqgis/source/_static/auth/ublocked_tools.png). NextGIS Account Toolbar button will change to ![auth](docs_ngqgis/source/_static/auth/auth.png) which indicates a successfully authorized user (see in `acc_toolbar_active`). ![image](docs_ngqgis/source/_static/auth/suscess_auth.png)![image](docs_ngqgis/source/_static/auth/acc_toolbar_active.png) ## Via on-premise (NGIDOP) If you want to login via the on-premise, you must specify the appropriate Endpoint in the authorization settings (Main menu -> Settings -> Options -> NextGIS) (`ngqis_ngidop_auth_en`) ![image](docs_ngqgis/source/_static/auth/ngqis_ngidop_auth_en.png) # CHANGES.html.md # Changes ## 5.5.0 - Interactive webmap editing and configuration in display mode. - New resource search page with advanced filtering capabilities. - AI-powered generation of feature filters from natural language queries. - Field configuration during vector layer creation. - Vector layers now support boolean fields. - Experimental support for JSON fields in vector layers. - Limited support for marking vector layer fields as mandatory. - Initial support for no-geometry layers. - Support for using public S3 buckets with external raster layers. - Enhanced raster layer preview with band configuration. - Improved CSV import for lookup tables with preview and column mapping. - Layer editing on webmaps enabled by default. - HTTP API for importing feature descriptions from ZIP archives. - Migrated from Webpack and Yarn to Rsbuild and pnpm. - GDAL 3.8, Python 3.12, and Node.js 22 are now the minimum required versions. ## 5.4.0 - Support for feature filtering on webmaps and in the rendering HTTP API. - S3-based storage for external raster layers with read/write support. - Field value suggestions in feature layer filters. - RAT attribute support for raster layer identification. - Feature versioning enabled by default for new vector layers. - Improved resource table and actions UI. - Support for labels in user-defined SLD styles. - Support for upscaling tileset layers. - Automatic GeoTIFF compression predictor selection. - JPEG compression enabled by default for RGB(A) raster layer pyramids. - GPX export support for feature layers. - Improved export performance for layers with many fields. - Support for the Referer header in WMS and TMS client connections. - Option to disable TLS certificate verification for WMS connections. - Support for remote SRS in WMS client layers. - Built-in SRS catalog based on the Proj database. - Support for custom OnlineResource values in WMS client layers. - TypeScript upgraded to 6.0. - Ant Design upgraded to 6.2. ## 5.3.0 - Advanced feature table filtering capabilities. - Viewing feature versioning history in the UI. - Reverting versioned feature layers to previous states. - Ability to create vector layers from existing layers and versions. - Improved extent selector widget in webmap settings. - Display total and filtered feature counts in feature tables. - Dimmed out-of-scale-range layers in the tree on webmaps. - Improvements to the printable webmap legend. - Display measurement spatial reference system on webmaps. - Transactional HTTP API for feature attachments and descriptions. - Fixed PostGIS layer editing on webmaps. - SQLAlchemy library upgraded to 2.0. ## 5.2.0 - Many new feature editing tools on webmaps. - Improved swipe tool: vertical and horizontal swipes in any direction. - Maximum webmap zoom level increased to 24. - Geometry tab on feature pages. - Zoom support for attachment preview. - Automatic HEIF-to-JPEG conversion for feature attachments. - Improved handling of image dimensions in descriptions. - Support for field deletion for versioned layers. - Better handling of inconsistent spatial reference systems in GeoTIFF files. - Configurable Nominatim endpoint for self-hosted installations. - WMTS protocol support in WMS server (KVP and REST). - Improved WMS client compatibility and performance. - Improved MVT generation performance. - GeoPackage 1.4 compatibility improvements. - Dropped support for GeoJSON range requests. - React library upgraded to 19. ## 5.1.0 - Identification of raster layers on webmaps. - Improved webmap links, preserving legend symbols in URLs. - Ability to configure panels and tools individually for each webmap. - Refined resource picker behavior for single and multi-selection. - Configurable lookup table item order, including manual ordering. - Experimental adaptive layouts for webmaps on mobile and tablet devices. - Support for dash patterns in user-defined styles. - Support for adding fields to layers with versioning enabled. - Creation of raster layers from ZIP archives and PAM support. - Support for GDAL PAM georeferenced (.aux.xml) JPEG and PNG rasters. - Configurable default basemaps for on-premises installations. - Improved handling of date and bigint fields in UI and HTTP API. - Improved handling of geom fields in feature layers. - Clean up unreferenced file objects during maintenance by default. - Python 3.10+ is now the minimum required version. - OpenLayers library upgraded to 10.4. ## 5.0.0 - Webmap migrated to React with many new features. - The identification panel enabled by default, replacing webmap popups. - Resource editing interface fully migrated to React. - New feature display page and modal dialog with vector tile geometries. - Enhanced resource deletion confirmation with details of resources to delete. - On-demand webmap legend symbol loading, optimizing opening time. - Configurable SSL mode for PostGIS connections. - Handling of invalid geometries for MVT vector tiles. - Better support for date and time fields in WFS clients. - Expanded JSON output format capabilities in WMS services. - Improved handling of fid fields in feature layers. - Extended resource search HTTP API. - Chrome 118+, Safari 17+, Edge 116+, or Firefox 115+ is required. - All legacy AMD modules migrated to TypeScript, and Dojo dependency removed. - Experimental support for Python 3.10. ## 4.9.0 - New resource creation dialog. - Identification panel replaces popup on the webmap. - Font management in the control panel. - Preview layers with leaving the current page. - Preview of the basemap on the resource editing page. - Support for empty geometries when importing vector layers. - Customizable web map title. - WFS client component turned on by default. - Data structure permission scope removed. - TUS uploader is available using CORS. - All of resource widgets migrated to Antd and React. - Fix uploading of zero-length files. ## 4.8.0 - Customizable print layout including legend. - Exclusive layer groups on webmaps. - User-defined favorite resource pages. - Measurement SRS configuration per-webmap. - Experimental support for feature versioning. - Better handling of incomplete geometry parts. - Show feature attachment descriptions in the viewer. - Extent information in PostGIS layer diagnostics. - Transparent annotation polygons for better visibility. - Switch to nearest neighbor resampling for raster pyramids. - Experimental support for NULL geometries. - Support for upper-case placeholders in TMS connections. - Metadata permission scope and webmap display permission removed. - Sentry client-side JavaScript integrations. - Cache seeding and invalidation removed, use NextGIS Geoservices instead. - Most of resource widgets migrated to Antd and React. ## 4.7.0 - Turn legend categories on/off for a better experience on webmaps. - Lots of customization options for embedded webmaps: map tools and panels. - Ability to exclude feature layer fields from text search. - Configurable permissions for groups, users, SRS and CORS management. - Enhanced feature attachment viewer now includes panoramic images support. - Ctrl+click opens feature attachment in a fixed tab. - Ability to copy printing parameters as a URL for sharing. - Support for custom SVG logos in addition to PNG. - Add export to CSV and import from CSV for lookup tables. - Support for multiple replicas and long-runnning requests. - Update minimum required NodeJS version to 20.0. ## 4.6.0 - Support for lookup tables for feature layer attributes. - Print to TIFF format in addition to PDF, JPEG and PNG. - Geometry-based filtering of feature tables on webmaps. - Autodetection of minimum and maximum scales for webmap and WMS layers. - Refresh feature tables after saving layer changes on webmaps. - Improved handling of `id` and `fid` attributes of vector layers. - Improved handling of date and time inputs. - Passing a zoom level to webmaps via `zoom` attribute. - Support for OpenID Connect UserInfo endpoint. ## 4.5.0 - New tileset resource for storing and serving prerendered tiles. - New OGC API Feature service with read and write support. - Up to 2x speed-up of loading vector layer data. - Differentiate webmap intial and contstraining extents. - Support for Google Analytics metrics. - Support for basic user-defined styles. - Save to PDF from the webmap printing panel. - Check effective permissions of other users for a resource. - Legends for webmaps is enabled by default. - Lots of improvements in feature editing widgets. - OutputFormat declaration in WFS for better compatibility. - Store audit journal in PostgreSQL database instead of ElasticSearch. - React library upgraded to 18. - Ant Design library upgraded to 5. ## 4.4.0 - Auto-generated and configurable legends for webmaps. - Reordering layers via drag-and-drop while viewing webmaps. - Changing layer opacity while viewing webmaps. - Creation of an empty vector layer without uploading a file. - Ability to replace existing vector layer features and fields from a file. - Brand-new feature table based on React. - Resource and feature description editors updated to CKEditor 5. - Improved handling of resource descriptions on webmaps. - Zoom to a filtered set of features on webmaps. - Geometry properties in the identification popup. - Show the cursor location and the current extent on webmaps. - Zoom to all layers on webmaps. - Support for linear and polygonal annotations. - Default display names for resources during creation. - Deletion of all features and changing geometry type for vector layers. - Limit by extent while exporting feature layers. - Ability to export a filtered set of features. - MapInfo formats support when creating a vector layer. - TMS client: parallel fetching of tiles and HTTP/2. - Reasonable resource tabs ordering and auto-activation. - Improved usability of the layers tree on webmaps. - Fast PNG compression for rendering. - Chrome 102+, Safari 15+, Edge 109+ or Firefox 102+ is required. - User permissions section is moved to a separate page. - OAuth-based automatic group assignment. ## 4.3.2 - Fix feature attachment download issues. ## 4.3.1 - Fix resource group selection issue while cloning webmaps. ## 4.3.0 - Support for webmap cloning via UI. - Search by coordinates on web maps. - CSV and XLSX support when creating a vector layer. - Export and import feature layer attachments. - Vector layer export to KML and KMZ formats. - Fields selection while exporting feature layer. - Assign default groups while creating users via UI. - Experimental support for authorization links. - Use resource SRS by default while exporting raster and vector layers. - Support for booleans and nulls in resource metadata. - Support for fixed length `character` columns in PostGIS layers. - Support for materialized views and 25D geometries in PostGIS layers. - Ability to turn off user password and keep only OAuth authentication. - Check for disk free space in the healthcheck. - Ability to search through resources recursively in REST API. - OpenLayers library upgraded to 6.15.1. ## 4.2.0 - “Locate me” tool on web maps. - Identifiable setting for web map layers. - Batch deletion and moving of resources. - Ability to download raster layers as an internal representation. - PostGIS connection and layer diagnostic tool. - Support for quad-key basemaps on web maps. - OAuth improvements: NextGIS ID integration, simultaneous authorization code and password grant types. - Improved management of spatial reference systems and catalog integration. - Better support for 25D geometries on web maps and PostGIS layers. - Improved handling of URLs in descriptions and feature layer fields. - Cloud-optimized GeoTIFF (COG) enabled by default. - In-place conversion between COG and non-COG rasters. - Hide empty groups and groups with no accessible layers on web maps. - M dimension stripping while creating vector layers in LOSSY mode. - Selecting features on web maps via `hl_*` URL parameters. - Ability to inject some HTML into the base template for metrics and counters. - Fast JSON serialization and deserialization based on orjson library. - Completed control panel migration to Antd and React. ## 4.1.0 - Cloud-optimized GeoTIFF (COG) support for raster layers. - Browser compatibility test and Internet Explorer deprecation. - Experimental support for long-runnning requests for raster and vector layers creation using `lunkwill` extension. - Private annotations on web maps, visible only for authors. - Wrapping around the dateline for tile-based layers on web maps. - A lot of improvements for the control panel: filters, batch operations, etc. - Improved handling of vector layer sources with `id` and `geom` fields. - Reprojection into different coordinate systems in WMS and WFS services. - Export feature layer using field display names (aliases) instead of keynames. - Support for CORS domain wildcards (like `https://*.csb.app`). - WFS client and server simple filters support. - Improved handling of coordinates outside boundaries of coordinate systems. - Support for 25D geometries in PostGIS layers. - Ability to filter NULL values in feature REST API. - Unknown fields in REST API filters return an error. - Improved handling of external services errors and timeouts. - Upgraded dependencies: Pyramid 2.0, SQLAlchemy 1.4, and OpenLayers 6.10 ## 4.0.0 - Source layer selection while creating vector layers from multi-layer sources, such as ZIP-archives or Mapinfo TABs. - On-the-fly reprojection for WMS and WFS services. - Ability to restrict address search by a country if using Nominatim. - Hide inaccessible layers while displaying web maps. - Highlight feature when selecting from search results. - Display emails as active `mailto:` links in the webmap popup. - Ability to delete users and groups from the control panel. - Ability to change resource owner in UI and REST API. - Automatic generation of keynames for WMS and WFS services. - Improved support for Unicode field names for WFS services. - Granular control setting for resource export availability. - ISO-8601 date and time formatting in feature layer REST API via `dt_format=iso` option. - Drop Python 2.7 support, NextGIS Web now requires Python 3.8+. - PostgreSQL 10+, PostGIS 2.5+ and GDAL 3.0+ are required now. - Synchronization of translations with POEditor. - Yandex Maps-based address search on the webmap. ## 3.9.0 - Simple tool for previewing resources on the map. - Resource quick search tool in the page header. - Disable/enable address search via settings in the control panel. - Ability to constraint address search area by web map initial extent. - Zoom to a better extent from address search and bookmark panel. - Language autodetection, per-user language setting, and support for the external translation files. - Automatic downsampling of a social preview image to 1600x630 pixels. - Better support for KML: LIBKML GDAL driver is used when available. - Filtering features by ID in feature REST API. - Layers with an “id” field can be loaded if the field has an integer type. - Information about available distribution versions in the control panel. - Experimental storage accounting and estimation subsystem. ## 3.8.0 - Ability to constraint a web map to the default extent. - More length and area units in web map settings. - Automatic correction of errors during the creation of a vector layer. - Support for creation of vector layers from GML and KML files. - User login is case insensitive when logging in. - Configuration option for disabling social networks sharing buttons. - Performance improvements in geometry handling and rendering, especially when converting between WKT and WKB formats. - Performance improvements in tile cache component. - Improved word wrapping in web map identification popup. - Minimum and maximum scale restrictions in WMS server. - Experimental integration of modern JavaScript and Webpack. - Quota for the maximum number of enabled users. - OpenLayers library upgraded to 6.5.0. - OAuth server logout support via logout redirect endpoint. ## 3.7.0 - Add database migrations framework and automatic migrations applying. - External access links for styles, web maps (TMS), and feature layers (MVT). - Experimental WFS client and raster mosaic, which is disabled by default. - Add support of 1.1.0 version in WFS server implementation. - Improved handling of NODATA values in raster layer and raster style. - Compression level of PNG images is set to 3, which is much faster. - Performance improvements and better concurrency for tile cache. - New “CSV for Microsoft Excel” export format for better Excel compatibility. - Fix infinite wait of database lock, including during vector layer deletion. - Improved handling of invalid JSON bodies in RESP API, now the correct error message is returned. - Vector layer export to MapInfo MIF/MID format. - Vector layer export to Panorama SXF format. ## 3.6.0 - Major improvements and bug fixes in WFS protocol implementation. - Permission model changes: now any action on resource requires `read` permission from scope `resource` on the resource and its parent. - PostGIS layer extent calculation and improved extent calculation in vector layer. - Vector layer export to GeoPackage format. - Faster processing of empty tiles and images. - Tile cache and webmap annotations are enabled by default. - Command to delete orphaned vector layer tables. - HTTP API with resource permissions explanation. - Support for `like`, `geom` and `extensions` in feature layer REST API. - Support for GeoJSON files in ZIP-archive and faster ZIP-archive unpacking. - Clickable resource links in webmap, WMS and WFS services. - Ability to disable SSL certificate check for TMS connection. - Lookup table component is part of `nextgisweb` core package `nextgisweb`. - Fix TMS layer tile composition in case of extent outside the bounds. - Fix GDAL > 3 compability issues, including axis orientation. - SVG marker library resource available to renderers. ## 3.5.0 - Raster layer export to GeoTIFF, ERDAS IMAGINE and Panorama RMF formats. - Customizable link preview for resources. - Improved resource picker: inappropriate resources are disabled now. - New implementation of WFS server which fixes many bugs. - Quad-key support in TMS connection and layer. - Support for `geom_format` and `srs` in feature layer REST API (POST / PUT requests). - Session-based OAuth authentication with token refresh support. - Delete users and groups via REST API. - Track timestamps of user’s last activity. - Customization of web map identify popup via control panel. - Speedup cleanup of file storage maintenance and cleanup. - Fix bulk feature deletion API when passing an empty list. - Fix bug in CORS implementation for requests returning errors. - Fix coordinates display format in web map identification popup. - Fix tile distortion issue for raster styles ## 3.4.2 - Fix WMS layer creation. ## 3.4.1 - Fix layout scroll bug in vector layer fields editing. ## 3.4.0 - New [tus-based](https://tus.io) file uploader. Check for size limits before starting an upload. - Server-side TMS-client. New resource types: TMS connection and TMS layer. - Create, delete and reorder fields for existing vector layer. - Improved [Sentry](https://sentry.io) integration. - WMS service layer ordering. - Stay on the same page after login. - Error messages improvements on trying to: render non-existing layer, access non-existing attachment or write a geometry to a layer with a different geometry type. # DEM.html.md # Uploading elevation data **What is a terrain (DEM - Digital elevation model)** - is a digital representation of the earth’s surface as a continuous phenomenon describing it with some precision, in the form of a raster or regular grid of cells of a given size. For the Cesium client the relief is a TMS service in the EPSG: 4326 projection which renders tiles in a special quantized-mesh format. As a source of heights the terrain provider uses either a raster layer with a loaded single-band image or a TMS service that returns heights in a specially encoded RGB raster. Of the TMS services, Mapzen and Mapbox are supported. **Getting mesh from TMS connection**. To connect the **Terrain-RGB terrain** you need to create a **TMS connection** ([Fig. 724.](#ngw3d-select-tms-connection)). ![image](docs_ngweb_3D/source/_static/ngw3D_select_TMS_connection_en.png) The first step is to name the TMS connection ([Fig. 725.](#ngw3d-name-tms-connection)). ![image](docs_ngweb_3D/source/_static/ngw3D_name_TMS_connection_en.png) Description and metadata tabs are optional. When creating a connection be sure to configure the parameters of the TMS connection tab ([Fig. 726.](#ngw3d-settings-tms-connection)). To connect to the Mapbox terrain you need to specify a custom connection method, URL template, parameter and the API key itself, auth username and password. All settings are described [here](https://docs.mapbox.com/help/troubleshooting/access-elevation-data/#mapbox-terrain-rgb), an api-key of access token is generated when logging on [https://account.mapbox.com/](https://account.mapbox.com/). You can also Skip SSL/TLS certificate verification and specify tiling scheme. After you specify all the parameters created TMS connection ([Fig. 727.](#ngw3d-finished-tms-connection)). ![image](docs_ngweb_3D/source/_static/ngw3D_settings_TMS_connection_en.png)![image](docs_ngweb_3D/source/_static/ngw3D_finished_TMS_connection_en.png) Next you need to create a TMS layer for the Mapbox terrain based on the ready-made TMS connection ([Fig. 728.](#ngw3d-select-tms-layer)). ![image](docs_ngweb_3D/source/_static/ngw3D_select_TMS_layer_en.png) By analogy with other types of resources the name, description and metadata are also set. ([Fig. 729.](#ngw3d-name-tms-layer)). ![image](docs_ngweb_3D/source/_static/ngw3D_name_TMS_layer_en.png) The TMS layer tab contains settings for connection through the TMS connection resource created earlier which must be specified in the appropriate field ([Fig. 730.](#ngw3d-connection-tms-layer)). If necessary you should specify additional parameters depending on the specifics of the loaded terrain. For Mapbox terrain you must specify the maximum zoom level - 15 ([Fig. 731.](#ngw3d-zoom-tms-layer)). ![image](docs_ngweb_3D/source/_static/ngw3D_connection_TMS_layer_en.png)![image](docs_ngweb_3D/source/_static/ngw3D_zoom_TMS_layer_en.png) After saving the TMS layer it will appear in the corresponding NextGIS Web directory ([Fig. 732.](#ngw3d-finished-tms-layer)), and its child resource, **Terrain**, will become available ([Fig. 733.](#ngw3d-select-terrain-provider)). For it, you must specify the name and encoding ([Fig. 734.](#ngw3d-encoding-terrain-provider)). ![image](docs_ngweb_3D/source/_static/ngw3D_finished_TMS_layer_en.png)![image](docs_ngweb_3D/source/_static/ngw3D_select_terrain_provider_en.png)![image](docs_ngweb_3D/source/_static/ngw3D_encoding_terrain_provider_en.png) After creating a resource it will appear in the corresponding NextGIS Web directory ([Fig. 735.](#ngw3d-finished-terrain-provider)). ![image](docs_ngweb_3D/source/_static/ngw3D_finished_terrain_provider_en.png) # add_regions.html.md # Add region and settlement names to attributes Appends attributes with administrative division and settlement names to any vector layer features. Uses data.nextgis.com extract as input source of region and settlement names. Inputs: * Vector file - Geopackage, GeoJSON file or zipped ESRI Shapefile; * Zip file with data extract from data.nextgis.com; * Output name (optional). Outputs: * GeoPackage file containing data with added attributes; * CSV file with the same data. Launch the tool: [https://toolbox.nextgis.com/t/add_regions](https://toolbox.nextgis.com/t/add_regions) ![image](docs_toolbox/source/_static/add_regions_result_en.png) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # admin.html.md # Installation (Administrator manual) ## Introduction This manual describes the process of deploying NextGIS GeoServices software on-premise. Mainly it uses Docker platform and docker-compose tool. All steps are performed on Linux-based OS. ## Select endpoints NextGIS GeoServices uses one HTTP (or HTTPS) endpoint. Users interact with the software via Web interface and API. The default value is [http://server.example.com:8088](http://server.example.com:8088) where server.example.com is the DNS name of the server where the software is deployed. If strictly necessary, the server IP address can be used instead of server.example.com. If your IT infrastructure allows for it, it is recommended to set up a reverse proxy for TLS encryption and using HTTPS. It is especially important if the software is to be accessed not just from the local network, but also from the Internet. In that case the endpoints depend on the settings of the reverse proxy. Contact your IT department to choose endpoints you wish to use and note them down, you’ll need them later. The reverse proxy is set up by the client’s IT department, it is not a responsibility of NextGIS company. The required parameters are cited [below using Nginx as example](https://docs.nextgis.com/docs_geoserv_prem/source/admin.html#nggs-prem-admin-proxy). ## Install and configure Docker #### IMPORTANT All steps in this section must be performed by the `root` user. If you use `sudo` to avoid mixing up the commands, we recommend first running `sudo -i` to get a fully functional root user session. If the server does not yet have Docker Engine and Docker Compose installed, first you need to install them or update them to the latest versions: * [Docker Engine](https://docs.docker.com/engine/install/) * [Docker Compose](https://docs.docker.com/compose/install/linux/) To get the images log in to NextGIS Container Registry with the username (example) and password (sesame) provided by NextGIS: ```default $ docker login cr.nextgis.com -u example -p sesame Login Succeeded ``` If the software is deployed to a server without Internet access, generate a single-file image archive using the tool [NextGIS Container Registry export](https://toolbox.nextgis.com/t/ngcr_export). You’ll need to transfer it to the server and load the images using ‘docker load’ command. ## Install NextGIS GeoServices #### IMPORTANT All steps in this section must be performed by the `root` user. If you use `sudo` to avoid mixing up the commands, we recommend first running `sudo -i` to get a fully functional root user session. On the server where you plan to deploy GeoServices, create the `/srv/geoservices` directory, then go to it, download the configuration template ([docker-compose-2.26.0.tar.bz2](https://nextgis.com/onpremise/geoservices/docker-compose-2.26.0.tar.bz2), where 2.26.0 is the current version) and unpack it. If the server does not have Internet access, download the file on another PC and transfer it to the server. ```default $ mkdir /srv/geoservices $ cd /srv/geoservices $ wget https://nextgis.com/onpremise/geoservices/docker-compose-2.26.0.tar.bz2 $ tar jxf docker-compose-2.26.0.tar.bz2 Edit the .env file in a text editor and enter the values for these environmental variables: POSTGRES_PASSWORD, DB_PASSWORD, BM_DB_PASSWORD (must have the same values), ADMIN_PASSWORD and SESSION_KEY. In the end you should get something like this: IMAGE_VERSION=2.26.0 IMAGE_BASE=cr.nextgis.com/geoservices COMPOSE_BIND=0.0.0.0 NO_PROXY=app,postgres,redis,s3,node-renderer POSTGRES_USER=geoservices SESSION_KEY=secret1 POSTGRES_PASSWORD=secret2 DB_PASSWORD=secret2 BM_DB_PASSWORD=secret2 ADMIN_PASSWORD=secret3 ``` To connect NextGIS GeoServices to your NextGIS Web instance also add these environmental variables: * NGW_URL - your company WEB GIS url, i.e. [https://demo.nextgis.com](https://demo.nextgis.com). * NGW_LOGIN - user name with sufficient permissions, if empty - guest connection will be used. * NGW_APIKEY - user password. Add these variables to docker-compose using template above. After this launch the Docker Compose stack. We recommend launching postgres service first, then after about 30 seconds launch the rest: ```default $ docker compose up -d postgres && sleep 30 [+] Running 3/3 ✔ Network geoservices_default Created 0.0s ✔ Volume "geoservices_postgres" Created 0.1s ✔ Container geoservices-postgres-1 Started 4.2s $ docker compose up -d [+] Running 8/8 ✔ Volume "geoservices_s3" Created 0.0s ✔ Volume "geoservices_secret" Created 0.1s ✔ Volume "geoservices_data" Created 0.0s ✔ Volume "geoservices_redis" Created 0.1s ✔ Container geoservices-postgres-1 Running 0.0s ✔ Container geoservices-redis-1 Started 7.3s ✔ Container geoservices-s3-1 Started 7.5s ✔ Container geoservices-node-renderer-1 Started 0.2s ✔ Container geoservices-app-1 Started 5.9s ``` This completes the installation. If you use HTTPS, next [configure the reverse proxy server](https://docs.nextgis.com/docs_geoserv_prem/source/admin.html#nggs-prem-admin-proxy). Otherwise proceed to [operability check](https://docs.nextgis.com/docs_geoserv_prem/source/admin.html#nggs-prem-admin-check). ## Recommendations for reverse proxy setup #### IMPORTANT All steps in this section must be performed by the `root` user. If you use `sudo` to avoid mixing up the commands, we recommend first running `sudo -i` to get a fully functional root user session. To use HTTPS encryption we recommend setting up a reverse proxy server based on Nginx. For reference here’s a fragment of the configuration file for geoservices.example.com: ```default server { server_name geoservices.example.com; # Server directives: listen, ssl_* etc location / { client_max_body_size 2G; proxy_http_version 1.1; proxy_pass http://127.0.0.1:8088; proxy_set_header Host $http_host; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $proxy_connection; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-For $remote_addr; } } ``` The client_max_body_size directive defines the max size of the upload file (2 GiB in our example). ## Operability check In a Web browser open the Web interface of NextGIS GeoServices using the URL you’ve chosen. A sign-in form should appear. Enter the username ‘admin’ and the password that you set in the ADMIN_PASSWORD variable. Go to the About page, it must look like this: ![image](docs_geoserv_prem/source/_static/geosop_set_about_en.png) # admin.html.md # Administrator manual for NextGIS Toolbox on-premise ## Select connection addresses Toolbox On-Premise uses two endpoints: HTTP (or HTTPS): * Users interact with the software via Web interface and API. The default value is `http://server.example.com:58347` where server.example.com is the DNS name of the server where the software is deployed. If strictly necessary, the server IP address can be used instead of server.example.com. * The Buildbot interface is an auxiliary address, not used during normal operation, but might be required to allow the support team to resolve various issues. The default value is `http://hostname.example.com:61978`. If your IT infrastructure allows for it, it is recommended to set up a reverse proxy for TLS encryption and using HTTPS. It is especially important if the software is to be accessed not just from the local network, but also from the Internet. In that case the addresses of the entry points depend on the settings of the reverse proxy. The recommended parameters are: * Toolbox Web UI and API - [https://toolbox.example.com](https://toolbox.example.com) * Buildbot interface - [https://avral.example.com](https://avral.example.com) Contact your IT department to choose addresses you wish to use and note them down, you’ll need them later. The reverse proxy is set up by the client’s IT department, it is not a responsibility of NextGIS company. The required parameters are cited below using Nginx as example. ```default TOOLBOX_URL BUILDBOT_URL ``` ## NextGIS ID authorization Toolbox On-Premise uses NextGIS ID On-Premise as an authorization server. It is supplied as part of NextGIS Web On-Premise. First find our the address of NextGIS ID On-Premise connection. Make sure you can log in as administrator. The address may be something like [https://ngid.example.com](https://ngid.example.com) or [http://server.example.com:8081](http://server.example.com:8081). Note the connection address, you’ll need it later: ```default NEXTGISID_URL ``` Add the TOOLBOX_URL variable to the the x-shared section of the docker-compose.yaml file to get the following: ```default x-shared: &shared NEXTGISID_URL: "https://ngid.example.com" NEXTGISWEB_URL: "https://ngw.example.com" TOOLBOX_URL: "https://toolbox.example.com" NEXTGISID_INSTANCE_NGID: "a73ed33d-7e04-4405-a1fc-90188093268e" NEXTGISID_ADMINISTRATOR_NGID: "cc533d32-6123-4d5f-8ffe-80e0135a54b6" ``` On the server where NextGIS ID On-Premise (NextGIS Web On-Premise) is installed go to \`\` /srv/ngwdocker\`\` and edit the file docker-compose.yaml (for example in a text editor). Then restart the stack. Note down the value of the NEXTGISID_ADMINISTRATOR_NGID variable from the x-shared section. ```default $ cd /srv/ngwdocker $ nano docker-compose.yaml $ docker compose up -d ``` ```default NEXTGISID_ADMINISTRATOR_NGID ``` ## Install and configure Docker If the server does not yet have Docker Engine and Docker Compose installed, first you need to install them or update them to the latest versions: * [Docker Engine](https://docs.docker.com/engine/install/) * [Docker Compose](https://docs.docker.com/compose/install/linux/) To get the images log in to NextGIS Container Registry with the username (example) and password (sesame) provided by NextGIS: ```default $ docker login cr.nextgis.com -u example -p sesame Login Succeeded ``` If the software is deployed to a server without Internet access, generate a single-file image archive using the tool [NextGIS Container Registry export](https://toolbox.nextgis.com/t/ngcr_export). You’ll need to transfer it to the server and load the images using ‘docker load’ command. Toolbox On-Premise needs Docker Swarm. Initialize it after installation by running the following: ```default $ docker swarm init ``` ## Install NextGIS Toolbox On the server where you plan to deploy Toolbox On-Premise, create the `/srv/toolbox` directory, then go to it, download the configuration template (`docker-compose-25.12.0.tar.bz2`, where 25.12.0 is the current version) and unpack it. If the server does not have Internet access, download the file on another PC and transfer it to the server. ```default $ mkdir /srv/toolbox $ cd /srv/toolbox $ wget https://nextgis.com/onpremise/toolbox/docker-compose-25.12.0.tar.bz2 $ tar jxf docker-compose-25.12.0.tar.bz2 ``` Generate a password for Buildbot and note it down, you’ll need it later: ```default $ tr -dc A-Za-z0-9 < /dev/urandom | head -c 12; echo ezn81wfERYOW ``` ```default TOOLBOX_BUILDBOT_SECRET ``` Edit the .env file in a text editor, filling in the values of the variables you’d noted down. In the BUILDBOT_REGISTRY_AUTH variable, enter the user name and password (separated by a colon) for the NextGIS Container Registry connection. In the end you should get something like this: ```default IMAGE_VERSION=25.12.0 IMAGE_BASE=cr.nextgis.com/toolbox COMPOSE_BIND=0.0.0.0 TOOLBOX_URL=https://toolbox.example.com BUILDBOT_URL=https://avral.example.com NEXTGISID_URL=https://ngid.example.com NEXTGISID_ADMINISTRATOR_NGID=7f16c028-df44-457b-be6d-cd9075fad034 TOOLBOX_BUILDBOT_SECRET=ezn81wfERYOW BUILDBOT_REGISTRY_AUTH=example:sesame ``` After that you can launch the Docker Compose stack. We recommend launching postgres service first, then after about 30 seconds launch the rest: ```default $ docker compose up -d postgres && sleep 30 [+] Running 1/1 ✔ postgres Pulled 1.0s [+] Running 3/3 ✔ Network toolbox_default Created 0.1s ✔ Volume "toolbox_data_postgres" Created 0.0s ✔ Container toolbox-postgres-1 Started 0.3s $ docker compose up -d [+] Running 3/3 ✔ background Pulled 1.6s ✔ app Pulled 1.6s ✔ docker Pulled 1.6s ✔ buildbot Pulled 1.6s [+] Running 5/5 ✔ Volume "toolbox_data_storage" Created 0.0s ✔ Container toolbox-postgres-1 Running 0.0s ✔ Container toolbox-background-1 Started 0.3s ✔ Container toolbox-app-1 Started 0.3s ✔ Container toolbox-docker-1 Started 0.3s ✔ Container toolbox-buildbot-1 Started 0.3s ``` This completes the installation. If you use HTTPS, next configure the reverse proxy server. Otherwise proceed to operability check. ## Recommendations for reverse proxy setup To use HTTPS encryption we recommend setting up a reverse proxy server based on Nginx. For reference here’s a fragment of the configuration file for toolbox.example.com: ```default server { server_name toolbox.example.com; # Server directives: listen, ssl_* etc location / { client_max_body_size 2G; proxy_http_version 1.1; proxy_pass http://127.0.0.1:58347; proxy_set_header Host $http_host; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $proxy_connection; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-For $remote_addr; } } ``` The client_max_body_size directive defines the maximum size of the uploaded file (2 GiB in the example), it is needed only for the web interface (not needed for Buildbot). ## Operability check In a browser open the Toolbox Web interface using the URL you chose (TOOLBOX_URL). You should see the main page with the list of tools and “Sign in” button in the top right corner. Press **Sign in**, you’ll be redirected to NextGIS ID On-Premise. You may need to enter the password for administrator. After that you should be redirected back to the Toolbox interface. In the top right corner the current user’s username should be displayed. Select the **Hello, World** tool and try to run it. The first run of a tool may take longer because that’s when the Docker tool image is downloaded from the NextGIS Container Registry. Try to run **Convert vector layer** using the test data. It allows to test uploading the input and downloading the output file. # admin_interface.html.md # Main interface Available controls are different [for guests](https://docs.nextgis.com/docs_ngweb/source/admin_interface.html#guest) and users who are [logged in](https://docs.nextgis.com/docs_ngweb/source/admin_interface.html#authorization). ## Authorization Open the Web GIS and press “Sign in” in the top right corner. ![image](docs_ngweb/source/_static/ngweb_before_signin_en.png) In the opened dialog press the blue button that reads **Sign in with NextGIS ID**. ![image](docs_ngweb/source/_static/ngweb_signin_nextgisid_en.png) You will be redirected to my.nextgis.com authorization page. Enter your username or email you used for registration, then on the next page enter your password. ![image](docs_ngweb/source/_static/ngid_signup_signin_en.png) After the authorization is completed successfully you will be redirected back to the Web GIS. ## Home page After login the user is taken to the home page shown on [Fig. 283.](#admin-index-pic) ![image](docs_ngweb/source/_static/ngweb_main_page_administrative_interface_en.png) Home page includes main menu pane, (see item 1 in [Fig. 283.](#admin-index-pic)) which has the following links (see [Fig. 284.](#ngweb-main-page-main-menu-pic)): * Resources * Control Panel * Help * Account ![image](docs_ngweb/source/_static/ngweb_main_page_main_menu_eng_2.png) Description pane (see item 4 in [Fig. 283.](#admin-index-pic)) displays type of resource and owner as well as description (if available). Child resources pane (see item 5 in [Fig. 283.](#admin-index-pic)) contains a list of all resources placed in a main group. The table contains name and type of the resource and action buttons (edit, delete, for some types of resources - preview, open the attribute table). “Create resoruce” button opens a pop-up window where you can choose the type of resource you want to create. In current version it is possible to add the following types of data to the Main resource group: * Basemap * Collector project * Lookup table * OGC API - Features service * PostGIS connection * PostGIS layer * Raster layer * Resource group * TMS connection * TMS layer * Trackers group * Vector layer * Web Map * WFS service * WMS connection * WMS layer * WMS service Depending on your NGW version you may also add: * SVG marker library * 3D model * 3D scene * 3D tileset Actions pane (see item 7 in [Fig. 283.](#admin-index-pic)) contains tools for adding data and executing operations with the current resource. For the Main resource group the only available operation is Update (i.e. edit). On the main page there is also a block of extra links: * [Demo projects](https://docs.nextgis.com/docs_ngcom/source/demoprojects.html); * User permissions - show access rights for the logged in user. [Learn more about user permissions](https://docs.nextgis.com/docs_ngcom/source/permissions.html); * JSON view. ## Language change Any authorized user can switch the interface language. To do this, in the upper right corner on the user icon, go to the “Settings” section. ![image](docs_ngweb/source/_static/admin_settings_lang_en.png) The following languages are available for selection ([Fig. 285.](#admin-settings-lang-pic)) * Default browser * Russian * English * Bulgarian * Chinese * Czech * French * German * Italian * Polish * Spanish * Portuguese ![image](docs_ngweb/source/_static/admin_select_lang_en_2.png) ## Resource search For easy search for resources and navigation, there is a search bar in the top bar ([Fig. 287.](#admin-search-bar-pic)). The search is carried out in the entire existing database, regardless of which directory the user is currently in. ![image](docs_ngweb/source/_static/admin_search_bar_en.png) See how the search works in our video: Watch on [youtube](https://youtu.be/q6h-zL4yg0c?si=FKHlTbneOmen5O5k). Advanced search with more parameters is activated by the ![button_tune](docs_ngweb/source/_static/button_tune.png) icon next to the search bar. In advanced search mode you can search resources by: * Resource type - select one or multiple; * Owner - select one or multiple; * Root resource; * Name. Pick the parameters and click **Search**. ![image](docs_ngweb/source/_static/advanced_search_en.png) Search results show the full path to the resource. You can also search by [metadata](https://docs.nextgis.com/docs_ngweb/source/edit_resource.html#ngw-metadata-tab) and technical key of the resource. To activate these search parameters, click ![button_tune](docs_ngweb/source/_static/button_tune.png) next to the **Search** button. To search by metadata, click ![button_tune](docs_ngweb/source/_static/button_tune.png) and enter a key-value pair. You can add multiple metadata pairs. ![image](docs_ngweb/source/_static/search_metadata_en.png) See how the advanced search works in our video: Watch on [youtube](https://youtu.be/RGFhdQHjXjE?si=1quN_6Q2VOet8XK7). ## Control panel NextGIS Web Control panel is available through the main menu. Press the ![three lines](docs_ngweb/source/_static/button_main_menu.png) button in the top right corner (see item 1 in [Fig. 283.](#admin-index-pic)) and select “Control panel”. Control panel has several sections, see [Fig. 290.](#admin-control-panel). ![image](docs_ngweb/source/_static/admin_control_panel_eng_3.png) Control panel allows to execute the following actions: * [Manage NextGIS Web groups and users](https://docs.nextgis.com/docs_ngweb/source/users.html) * [Display information about the system and storage](https://docs.nextgis.com/docs_ngweb/source/infowebgis.html) * Access cadaster services * [Add participants of Collector projects](https://docs.nextgis.com/docs_ngweb/source/collector.html) * [Set the name of your Web GIS](https://docs.nextgis.com/docs_ngweb/source/look.html#web-gis-name) * [Configure CORS](https://docs.nextgis.com/docs_ngweb/source/cors.html) * [Manage custom fonts](https://docs.nextgis.com/docs_ngweb/source/look.html#font-management) * [Set CSS styles](https://docs.nextgis.com/docs_ngweb/source/look.html#customize-the-design-with-css) * [Specify NGW start page (home path)](https://docs.nextgis.com/docs_ngweb/source/look.html#how-to-change-the-homepage-address) * [Set custom Logo (in the upper left corner)](https://docs.nextgis.com/docs_ngweb/source/look.html#upload-a-logo) * [Set up Analytics](https://docs.nextgis.com/docs_ngweb/source/analytics.html) * [Specify which users see the data export button](https://docs.nextgis.com/docs_ngweb/source/webmap_set.html#resource-export) * [Customize display of Tracks](https://docs.nextgis.com/docs_ngweb/source/trackers.html) * Set up [Feature versioning by default](https://docs.nextgis.com/docs_ngweb/source/version.html#vers-ngw-default) * [Customize Web Maps](https://docs.nextgis.com/docs_ngweb/source/webmap_set.html) * [Add spacial reference systems](https://docs.nextgis.com/docs_ngweb/source/ngw_srs.html) * [Customize UI elements with White Label module (on-premise only)](https://docs.nextgis.com/docs_ngweb/source/label.html) For more information about creation of user groups and users and granting permissions see ``` `this section ## Resource view After login to administrative interface the user is taken to home page. ![image](docs_ngweb/source/_static/resource_group_en_2.png) The resource list allows users to perform some actions by clicking icons next to the resource name: * ![pencil](docs_ngweb/source/_static/button_edit.png) open the resource edit page; * ![trash can](docs_ngweb/source/_static/button_delete.png) delete resource; * ![key](docs_ngweb/source/_static/button_key.png) view user permissions for the resource; * ![curly brackets](docs_ngweb/source/_static/button_json.png) open JSON view of the resource. Other actions can be available depending on the resource type, including: * ![eye](docs_ngweb/source/_static/button_preview.png) preview; * ![magnifying glass on map](docs_ngweb/source/_static/button_open_web_map.png) open (for Web Maps); * ![tree frames](docs_ngweb/source/_static/button_open_gallery.png) view resource gallery; * ![table](docs_ngweb/source/_static/button_open_feature_table.png) open feature table (for vector layers); * ![paper clip](docs_ngweb/source/_static/button_attachments.png) manage attachments (for vector layers); * ![down arrow](docs_ngweb/source/_static/button_export.png) save features of the vector layer as a file, etc. Press three dots in the right corner of the table title to open the resource list menu. ![image](docs_ngweb/source/_static/options_resource_list_en.png) This menu allows to: * Select multiple resource to be [moved](https://docs.nextgis.com/docs_ngweb/source/edit_resource.html#using-multiple-selection) or [deleted](https://docs.nextgis.com/docs_ngweb/source/edit_resource.html#deleting-several-resources-at-once); * View additional columns in the resource list table: creation date and resource volume. Additional columns allow to sort the resource list by date or size: ![image](docs_ngweb/source/_static/sorted_by_size_en.png) To open the resource page click on the corresponding row of the table. The resource page contains properties, attributes, a link for external access and a list of child resources if there are any (see [Fig. 294.](#resource-details-pic)). ![image](docs_ngweb/source/_static/resource_details_en_2.png) Here you can also enter the resource [edit mode](https://docs.nextgis.com/docs_ngweb/source/edit_resource.html). ## Feature table Some resources contain a set of features that can be viewed as a table. Press the “Table” icon opposite the resource name or, if you are on the layer’s resource page, select “Table” in the features pane. ![image](docs_ngweb/source/_static/feature_table_choice_from_group_en.png)![image](docs_ngweb/source/_static/feature_table_choice_eng_2.png)![image](docs_ngweb/source/_static/map_and_tree_layers_eng_3.png) Authorized users can [edit features](https://docs.nextgis.com/docs_ngweb/source/feature_table.html) from the feature table. ## Data export Web GIS allows to export data from Vector layers and PostGIS layer in the following formats: * [GeoPackage](../../glossary.md#term-GeoPackage) * [CSV](../../glossary.md#term-CSV) and CSV for Microsoft Excel * [ESRI Shapefile](../../glossary.md#term-ESRI-Shapefile) * [AutoCAD DXF](../../glossary.md#term-AutoCAD-DXF) * [Mapinfo TAB](../../glossary.md#term-MapInfo-TAB) * [MapInfo MIF/MID](../../glossary.md#term-MapInfo-MIF-MID) * [GeoJSON](../../glossary.md#term-GeoJSON) * [KML](../../glossary.md#term-KML) * [KMZ](../../glossary.md#term-KMZ) * [GPX](../../glossary.md#term-GPX) Depending on the format, additional file components are exported making further use of the exported data more convenient. For example CSVT (field structure description) and PRJ (coordinate system description) are added to CSV and CPG (codepage) to ESRI Shapefile. #### NOTE Geometry and attributes are supported for export. Features’ descriptions, metadata and images can’t be exported in the described way but can be requested using [NextGIS API](../../docs_ngcom/source/ngapi.md#ngcom-ngapi). To export data, click ![down arrow](docs_ngweb/source/_static/button_export.png) **Save as** in the resource menu or, if you are on the layer’s resource page, select “Save as” in the Features pane on the right. ![image](docs_ngweb/source/_static/ngw_data_export_from_list_en.png)![image](docs_ngweb/source/_static/ngweb_data_export_eng_3.png) On the next page you can configure the export file. By default data is exported to a GeoPackage file using UTF-8 encoding with all fields included. [Learn more](https://docs.nextgis.com/docs_ngweb/source/admin_interface.html#export-settings) about export settings. ![image](docs_ngweb/source/_static/ngw_data_export_set_en.png) Click **Save** to save the file to your device. ### Export settings The parameters of the export are: * **Data format** - GeoPackage as the default, select one of supported formats from the dropdown menu; * **Spacial reference system** - in addition to standard coordinate systems Longitude-Latitude (EPSG: 4326) and Mercator (EPSG: 3857) you can select custom coordinate systems created earlier (how to add custom SRS see [this page](https://docs.nextgis.com/docs_ngweb/source/ngw_srs.html)). Note that KML, KMZ and GPX formats can only be exported in EPSG: 4326; * **Encoding** - UTF-8, Windows-1251, or Windows-1252; * **FID field** is used for setting a field name to be added to a exported data where the object identifiers will be placed (the default is “ngw_id”).; * You can choose to **Use field display names instead of keynames** Keynames are technical and use only plain Latin symbols. Display names can be in any language, usually they are seen as column headers or field labels in a form (for more details see [this section](https://docs.nextgis.com/docs_ngweb/source/layers_settings.html#ngw-attributes-edit)).; * **Fields** - By default, all are selected. To remove a field, click on the cross by its name or untick it in the drop-down menu. To add a field again, tick it in the drop-down menu; ![image](docs_ngweb/source/_static/export_fields_en_2.png) Watch on [youtube](https://youtu.be/Hukt3lD-JyQ?si=c8Cbut245FWU7LMQ). * Limit by extent - If you need to export only the features within a particular area. The extent is set in degrees; * Filter text - only export features containing a certain key word. Search is performed in all fields that don’t have [text search](https://docs.nextgis.com/docs_ngweb/source/edit_resource.html#edit-vector-layer-attributes-table) disabled, just like in the feature table; * Filter - here you can set up more complicated conditions ([more on filters](https://docs.nextgis.com/docs_ngweb/source/feature_table.html#search-and-filter)); * If you need to have the file archived, select *ZIP archive*. Output in ESRI Shapefile or MapInfo TAB results in a Zip archive with necessary files. For single-file formats (like GeoJSON or CSV) creation of Zip archive is optional. All export options are available through HTTP API. For example, this query will get you data in CSV format, EPSG:4326, UTF-8 encoding, zipped: [https://demo.nextgis.com/api/resource/4077/export?format=csv&srs=4326&zipped=true&fid=ngw_id&encoding=UTF-8](https://demo.nextgis.com/api/resource/4077/export?format=csv&srs=4326&zipped=true&fid=ngw_id&encoding=UTF-8) You can also export data from Vector layers using [feature table on the Web Map](https://docs.nextgis.com/docs_ngweb/source/feature_table.html) or [with desktop app NextGIS QGIS](https://docs.nextgis.com/docs_ngconnect/source/export.html). ## Interface for guests User who is not logged in can view resources and resource groups allowed by [permissions set for Guests](https://docs.nextgis.com/docs_ngcom/source/permissions.html). On the right there is **Sign in** button. Click on it to [log into the system](https://docs.nextgis.com/docs_ngweb/source/admin_interface.html#authorization). To open the main menu, click ![three lines](docs_ngweb/source/_static/button_main_menu.png) in the top right corner. Tree options are available for guests: * Resource - redirects to the main resource group; * Help - link to the [web site page](https://nextgis.com/help/) containing information about technical support, documentation etc.; * Contact Web GIS administrator - redirects to the account page (you have to log in with your [NextGIS ID](https://docs.nextgis.com/docs_ngcom/source/create.html) or create an account). Here you can fill the message form: ![image](docs_ngweb/source/_static/webmap_owner_contact_en.png) The Web GIS administrator will receive your message and email address so that they can reply by email. # admin_tasks.html.md #### IMPORTANT Section moved! * [Language change](https://docs.nextgis.com/docs_ngweb/source/admin_interface.html#ngw-change-lang) * [Resource search](https://docs.nextgis.com/docs_ngweb/source/admin_interface.html#ngw-search-bar) * [Favorites](https://docs.nextgis.com/docs_ngweb/source/favorites.html) * [User activity log](https://docs.nextgis.com/docs_ngweb/source/infowebgis.html#ngw-audit) * [Create new user group]("https://docs.nextgis.com/docs_ngweb/source/users.html#ngw-create-group) * [Global permissions](https://docs.nextgis.com/docs_ngweb/source/users.html#global-permissions) * [Create new user](https://docs.nextgis.com/docs_ngweb/source/users.html#ngw-create-user) * [Disable or delete users](https://docs.nextgis.com/docs_ngweb/source/users.html#ngw-disable-delete-user) * [Update user password](https://docs.nextgis.com/docs_ngweb/source/users.html#ngw-change-password) * [Storage](https://docs.nextgis.com/docs_ngweb/source/infowebgis.html#ngw-storage) * [Backups](https://docs.nextgis.com/docs_ngweb/source/infowebgis.html#ngw-backups) * [System information](https://docs.nextgis.com/docs_ngweb/source/infowebgis.html#ngw-system-info) * [Hide resource export](https://docs.nextgis.com/docs_ngweb/source/look.html#ngw-res-export) * [Web Map Settings](https://docs.nextgis.com/docs_ngweb/source/webmap_set.html) * [Font management](https://docs.nextgis.com/docs_ngweb/source/look.html#ngw-fonts) * [Customize the design with CSS](https://docs.nextgis.com/docs_ngweb/source/look.html#ngw-css) * [Custom CSS examples](https://docs.nextgis.com/docs_ngweb/source/look.html#custom-css-examples) * [Customize UI Elements (White label)](https://docs.nextgis.com/docs_ngweb/source/label.html) # adv_tools.html.md # Advanced tools ## How to share backup In NextGIS Collector app allows you can share the collected data as a zip file. Press three dots in the top right corner and select “Backup data” in the drop-down menu. > ![image](docs_collector/source/_static/backup_menu_en.png) In the opened dialog you can select which layers to include in the backup. > ![image](docs_collector/source/_static/backup_layer_select_en.png) Next step is to select the app to send the backup or save it to a cloud or to your device. > ![image](docs_collector/source/_static/backup_open_with_en.png) After that the device will redirect you to the chosen app to compete the action. ## Logging NextGIS Collector app allows you to record your activities and technical data in a log. Tap three dots in the top right corner and select “Settings” in the drop-down menu. > ![image](docs_collector/source/_static/log_menu_en.png) In Settings tick “Extended logs”. > ![image](docs_collector/source/_static/log_enabled_en.png) You can also share your log. Open the menu from the top panel and tap “Share log”. > ![image](docs_collector/source/_static/log_share_en.png) Next step is to select the app to send the log or save it to a cloud or to your device. ### How to get useful logs 1. Turn on logging. 2. Repeat your actions until the issue arises again. 3. Send the logs to support. 4. Turn off logging. ## Simulation of location data Third party software can be used as a source of location data for your device Turn on Developer mode on your smart phone, select mock location app in developer settings and start simulation. For more details see [NextGIS Mobile documentation](https://docs.nextgis.com/docs_ngmobile/source/mock_location.html). # aggregate_raster_layer_to_h3.html.md # Aggregate raster layer to H3 grid Creates an H3 grid covering the raster layer extent and aggregates raster values into its cells. Inputs: * Input raster layer. GDAL-compatible raster dataset; * Minimal H3 Zoom (H3 zoom levels are valid in range 0-15); * Maximal H3 Zoom (H3 zoom levels are valid in range 0-15); * Band number - raster band to aggregate values from (leave empty to use band 1); * Pixel spatial handling mode: - PIXEL_CENTER (PIXEL_CENTER) - include pixels whose centers fall inside the H3 cell; - INTERSECTS (INTERSECTS) - include every pixel touched by the H3 cell; * Aggregation method. How to statistically aggregate values: - Create grid only (EMPTY) - Count (COUNT) - Sum (SUM) - Mean (MEAN) - Median (MEDIAN) - Min (MIN) - Max (MAX) - Mode (MODE) * Output field name; * Split zoom levels. If checked, each H3 zoom level cells will be saved in separate layer. Outputs: * None Launch the tool: [https://toolbox.nextgis.com/t/aggregate_raster_layer_to_h3](https://toolbox.nextgis.com/t/aggregate_raster_layer_to_h3) Example: ![image](docs_toolbox/source/_static/aggregate_raster_layer_to_h3_input_en.png)![image](docs_toolbox/source/_static/aggregate_raster_layer_to_h3_result_en.png) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # aggregate_vector_layer_to_h3.html.md # Aggregate vector layer to H3 grid Creates an H3 grid covering the vector layer extent and aggregates vector features and attribute values into its cells. Inputs: * Input vector layer. GDAL-compatible vector dataset; * Minimal H3 Zoom (H3 zoom levels are valid in range 0-15); * Maximal H3 Zoom (H3 zoom levels are valid in range 0-15); * Aggregation attribute - numeric attribute used for aggregation. Not required for grid creation, feature count or geometry sum; * Feature spatial handling mode, select one from the list: - Fully inside (FULLY_INSIDE) - include only features completely inside an H3 cell. - Intersects (INTERSECTS) - include every feature intersecting an H3 cell. - Split by H3 grid (SPLIT) - split line or polygon features by the H3 grid and distribute attribute values proportionally to fragment length or area where applicable; * Aggregation method. How to aggregate vector features or attribute values: - Create grid only (EMPTY) - Count features (COUNT) - Sum length or area (GEOMETRY_SUM) - Sum (SUM) - Mean (MEAN) - Median (MEDIAN) - Min (MIN) - Max (MAX) * Output field name - name of the output aggregation field. If empty, `aggregated_value` is used; * Split zoom levels - if checked, cells of each H3 zoom level will be saved to a separate layer. Outputs: * GeoPackage containing H3 grid. Launch the tool: [https://toolbox.nextgis.com/t/aggregate_vector_layer_to_h3](https://toolbox.nextgis.com/t/aggregate_vector_layer_to_h3) Example: ![image](docs_toolbox/source/_static/aggregate_vector_layer_to_h3_input_en.png)![image](docs_toolbox/source/_static/aggregate_vector_layer_to_h3_result_en.png) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # ai2geo.html.md # Adobe Illustrator (\*.ai) to geodata Launch the tool: [https://toolbox.nextgis.com/t/ai2geo](https://toolbox.nextgis.com/t/ai2geo) The tool extracts vector layers from an Adobe Illustrator (\*.ai) file. An additional raster file could be used for georeference. Inputs: * Adobe Illustrator file (with the .ai extension) which contains vector features. * Raster file for georeferencing - GeoTIFF file (with the .geotiff or .tif extension) or ZIP-archive with PNG + PGW (world-file). Same files should be used as a base layer in AI file. This is an optional field, if you leave it blank, vector layers will be in a relative coordinate system. Output: * ZIP-archive with a set of ESRI Shapefile files. Example: ![image](docs_toolbox/source/_static/ai2geo_before.png)![image](docs_toolbox/source/_static/ai2geo_after.png) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # analytics.html.md # Metrics and analytics #### NOTE This functionality is only available for [Premium](https://nextgis.com/pricing-base/) subscription plan. In this section of the Control panel you can add tracking code to your Web GIS. Measurement code will be added to each page to help track user activity. ![image](docs_ngweb/source/_static/analytics_empty_en.png) To add new measurement code, press **Add**, select a service you’d like to enable and enter your measurement ID in the opened tab. ![image](docs_ngweb/source/_static/analytics_add_google_en.png) # android_demos.html.md # SDK demo projects ## Simple map with points In this project created mobile application with one fullscreen map. Map consists of two layers: * OpenStreetMap base map * Vector layer with few points The application screenshot is below. ![image](ngmobile_dev/source/_static/simple_android_app.png) The demo project [github page](https://github.com/nextgis/android.mobile.demo). # annotation.html.md # Web Map annotations ## Annotation. What is it? Annotations are text messages attached to the points, which you can create and display on any [Web Map](https://docs.nextgis.com/docs_ngweb/source/webmaps_admin.html). You can create your own set of annotations for each Web Map. Annotation consists of a point and a message attached to this point. ![image](docs_ngweb/source/_static/ann_annotation_structure_new_eng.png) The main aim of annotations is to specify user’s data by placing temporary messages on a Web Map. ![image](docs_ngweb/source/_static/ann_messages_example_eng_2.png) At the same time, you can use annotations as a simple tool to create point data with text attributes attached to the Web Map. ![image](docs_ngweb/source/_static/ann_data_example_eng_2.png) #### NOTE In contrast to a full vector layer, annotation tool does not allow to export data, search for it etc. Therefore, we recommend using [vector layers](https://docs.nextgis.com/docs_ngweb/source/layers.html#empty-vector-layer) to create the bulk of the data. ## How to enable Web Map annotations? You can enable creation of annotations and set the display options in the Settings tab of the “Create resource” or “Update resource” windows for the Web Map (see [Update resource](edit_resource.md#ngw-update-resource)). By default the annotation tool is inactive. ![image](docs_ngweb/source/_static/ann_settings_en.png) The options are: - *Hide by default* - annotations are hidden; - *Show without messages* - the annotation symbols are visible on the Web Map when it opens; - *Show with messages* - both symbols and text are shown on the Web Map. ## Web Map: Annotations panel If the *“Enable annotations”* option is active, the “Annotations” panel appears on the Web Map: ![image](docs_ngweb/source/_static/ann_panel_eng_3.png) “Annotations” panel consists of several options: **Show annotations** - allows to show or hide symbols and messages of annotations. **Edit annotations** - activate or inactivate annotation edit mode. **Private annotations** - select what types of annotations are displayed. The types are color-coded: - **Public annotations** - marked green. Visible for everyone, even unlogged users. - **My private annotations** - marked purple. Visible for the creater and authorized users, including the administrator - **Other private annotations** - marked red. Private annotations added by other users of the WebGIS ![image](docs_ngweb/source/_static/ann_types_eng_2.png) ## Web Map: annotation editting You can create and edit annotations, if the option *Edit annotations* on the *“Annotations” panel* is active. When it is active, the mouse pointer has a blue point next to it and a pencil pictogram appears above existing annotations: ![image](docs_ngweb/source/_static/ann_edit_option_eng_3.png) To **create** an annotation you need to click the left mouse button on the Web Map. For a point symbol, only click once. To finish creating a line or a polygon, double click on the last point (polygon will be automatically completed). Then a dialog window of annotation creation will be opened: ![image](docs_ngweb/source/_static/ann_create_en.png) Dialog of annotation creation consists of: - **Editor of annotation message** - [WYSIWYG](https://en.wikipedia.org/wiki/WYSIWYG) editor of the annotation text message. - **Stroke: width / color** - width and color of the annotation point stroke. - **Fill color** - color of the annotation point. - **Circle size, px** - size (diameter) of the annotation point in pixels. After clicking **Save**, a drop-down menu appears. In it you need to select the type for your annotation - public or private. After you do so, the newly created annotation will appear on the Web Map. To **edit** annotations you need to activate annotation edit mode, point to an annotation and click the pictogram on it with the left mouse button. The dialog window for annotation editting looks like a dialog window of annotation creation, but has a **“Delete”** button, which allows to delete the chosen annotation. In order to change the font size of the message or its part, you need to select the text first. You can edit both your own private annotations and those created by other users if you have the necessary permissions. The type of the annotation is marked at the top of the edit window. For private annotations of other users you will see the creator’s name in brackets. ## Web Map: user’s permissions associated with annotations To further manage the work with annotations you can use access permissions (you can read more about [setting permissions](https://docs.nextgis.com/docs_ngcom/source/permissions.html#types-of-rules-what-can-be-allowed-or-denied)). By default only the Administrator can view the Annotations panel and manage annotations. There are three permissions associated with annotations that you can use to allow other users to work with annotations. You can set one of them (view), two (view+draw) or all three (view+draw+manage), only in these combinations. So, for example, if “Draw” permission is set without “view” permission, it will not work. 1. **Web Map: View annotations** - “Annotations” panel is active. Public annotations are visible. 2. **Web Map: Draw annotations** - “Edit annotations” option on the “Annotations” panel is active. User can create public and private annotations. 3. **Web Map: Manage annotations** - User can view and edit private annotations created by other users. # api.html.md # NextGIS QMS Service API ## API Root ### GET /api/v1/ **Example request**: ```http GET /api/v1/ HTTP/1.1 Host: qms.nextgis.com Accept: */* ``` **Example response**: ```json HTTP 200 OK Allow: GET, HEAD, OPTIONS Content-Type: application/json Vary: Accept { "geoservices_url": "https://qms.nextgis.com/api/v1/geoservices/", "geoservices_type_filter_url": "https://qms.nextgis.com/api/v1/geoservices/?type={tms|wms|wfs|geojson}", "geoservices_epsg_filter_url": "https://qms.nextgis.com/api/v1/geoservices/?epsg={any_epsg_code}", "geoservices_status_filter_url": "https://qms.nextgis.com/api/v1/geoservices/?cumulative_status={works|problematic|failed}", "geoservices_search_url": "https://qms.nextgis.com/api/v1/geoservices/?search={q}", "geoservices_intersects_extent_url": "https://qms.nextgis.com/api/v1/geoservices/?intersects_extent={WKT|EWKT geometry}", "geoservices_intersects_boundary_url": "https://qms.nextgis.com/api/v1/geoservices/?intersects_boundary={WKT|EWKT geometry}", "geoservices_ordering_url": "https://qms.nextgis.com/api/v1/geoservices/?ordering={name|-name|id|-id|created_at|-created_at|updated_at|-updated_at", "geoservices_pagination_url": "https://qms.nextgis.com/api/v1/geoservices/?limit={int}&offset={int}", "geoservice_detail_url": "https://qms.nextgis.com/api/v1/geoservices/{id}/", "geoservice_status_url": "https://qms.nextgis.com/api/v1/geoservice_status/", "geoservice_status_detail_url": "https://qms.nextgis.com/api/v1/geoservice_status/{id}/", "geoservice_status_service_filter_url": "https://qms.nextgis.com/api/v1/geoservice_status/?geoservice={id}", "geoservice_status_cumulative_status_filter_url": "https://qms.nextgis.com/api/v1/geoservice_status/?cumulative_status={works|problematic|failed}", "geoservice_status_check_at_ordering_url": "https://qms.nextgis.com/api/v1/geoservice_status/?ordering={check_at|-check_at}", "icons_url": "https://qms.nextgis.com/api/v1/icons/", "icons_search_url": "https://qms.nextgis.com/api/v1/icons/?search={q}", "icons_pagination_url": "https://qms.nextgis.com/api/v1/icons/?limit={int}&offset={int}", "icon_detail_url": "https://qms.nextgis.com/api/v1/icons/{id}/", "icon_content_url": "https://qms.nextgis.com/api/v1/icons/{id}/content", "icon_resized_content_url": "https://qms.nextgis.com/api/v1/icons/{id}/content?width={16<=x<=64}&height={16<=y<=64}", "default_icon_url": "https://qms.nextgis.com/api/v1/icons/default" } ``` ## Geo Service List ### GET /api/v1/geoservices/ **Example request**: ```http GET /api/v1/geoservices/ HTTP/1.1 Host: qms.nextgis.com Accept: */* ``` **Example response**: ```json HTTP 200 OK Allow: GET, HEAD, OPTIONS Content-Type: application/json Vary: Accept [ { "id": 98, "guid": "fd15d9a6-1ff9-4af6-a60f-6e88e8a309e3", "name": "OSM Mapnik", "desc": "Моя любимая подложка!", "type": "tms", "epsg": 3857, "icon": null, "submitter": "349a7b2a-3795-43f7-96f9-da0615ff23c3", "created_at": "2017-01-10T12:11:11.131241Z", "updated_at": "2018-03-10T14:57:08.274807Z", "cumulative_status": "works", "extent": "SRID=4326;POLYGON ((-123.2465499999999992 48.4077100000000016, -122.7308799999999991 48.4077100000000016, -122.7308799999999991 48.7430999999999983, -123.2465499999999992 48.7430999999999983, -123.2465499999999992 48.4077100000000016))" }, { "id": 88, "guid": "6db548c3-9d5c-4ad8-abeb-13cd9466849c", "name": "Landsat (Gis-Lab.info)", "desc": null, "type": "tms", "epsg": 3857, "icon": null, "submitter": "349a7b2a-3795-43f7-96f9-da0615ff23c3", "created_at": "2017-04-15T13:31:31.727508Z", "updated_at": "2017-04-15T13:31:31.727508Z", "cumulative_status": "works", "extent": "SRID=4326;POLYGON ((-123.2465499999999992 48.4077100000000016, -122.7308799999999991 48.4077100000000016, -122.7308799999999991 48.7430999999999983, -123.2465499999999992 48.7430999999999983, -123.2465499999999992 48.4077100000000016))" }, { "id": 89, "guid": "b3b58d17-df8a-44b0-9804-0a2093fed157", "name": "OSM Veloroad", "desc": null, "type": "tms", "epsg": 3857, "icon": null, "submitter": "349a7b2a-3795-43f7-96f9-da0615ff23c3", "created_at": "2017-01-10T11:28:36.546992Z", "updated_at": "2017-01-10T11:28:36.546992Z", "cumulative_status": "failed", "extent": null }, { "id": 174, "guid": "48f1a563-cd12-4852-b1bf-1008e23002d0", "name": "Dark Matter", "desc": null, "type": "tms", "epsg": 3857, "icon": null, "submitter": null, "created_at": "2016-11-14T18:08:04.486371Z", "updated_at": "2016-11-14T18:08:04.486371Z", "cumulative_status": "problematic", "extent": null } ] ``` ## Geo Service filtered list ### GET /api/v1/geoservices/?type={tms|wms|wfs|geojson}&epsg={any_epsg_code}&limit={int}&offset={int} **Example request**: ```http GET /api/v1/geoservices/?type=tms&epsg=3857&limit=15&offset=0 HTTP/1.1 Host: qms.nextgis.com Accept: */* ``` **Example response**: ```json HTTP 200 OK Allow: GET, HEAD, OPTIONS Content-Type: application/json Vary: Accept { "count": 617, "next": "https://qms.nextgis.com/api/v1/geoservices/?epsg=3857&limit=15&offset=15&type=tms", "previous": null, "results": [ { "id": 979, "guid": "086150f6-ea8e-4326-a69b-8b7a19dc3f0e", "name": "2013 aerial imagery for San Juan County WA", "desc": "This service is imported from OSMLab. OSMLab id: sjcgis.org-Aerials_2013_WM. Country: United States", "type": "tms", "epsg": 3857, "icon": null, "submitter": "349a7b2a-3795-43f7-96f9-da0615ff23c3", "created_at": "2017-01-10T12:11:11.131241Z", "updated_at": "2018-03-10T14:57:08.274807Z", "cumulative_status": "works", "extent": "SRID=4326;POLYGON ((-123.2465499999999992 48.4077100000000016, -122.7308799999999991 48.4077100000000016, -122.7308799999999991 48.7430999999999983, -123.2465499999999992 48.7430999999999983, -123.2465499999999992 48.4077100000000016))" }, { "id": 1157, "guid": "4fb9effb-a33e-4e14-9e9b-2dd138f327d4", "name": "2016 aerial imagery for San Juan County WA", "desc": "This service is imported from OSMLab. OSMLab id: sjcgis.org-Aerials_2016_WM. Country: United States", "type": "tms", "epsg": 3857, "icon": null, "submitter": "349a7b2a-3795-43f7-96f9-da0615ff23c3", "created_at": "2017-04-15T13:31:31.727508Z", "updated_at": "2017-04-15T13:31:31.727508Z", "cumulative_status": "works", "extent": "SRID=4326;POLYGON ((-123.2465499999999992 48.4077100000000016, -122.7308799999999991 48.4077100000000016, -122.7308799999999991 48.7430999999999983, -123.2465499999999992 48.7430999999999983, -123.2465499999999992 48.4077100000000016))" }, { "id": 576, "guid": "05c3609c-1aec-4133-9097-8b09ef4691a6", "name": "4UMaps", "desc": "Tiles copyrights: 4UMaps, http://www.4umaps.eu", "type": "tms", "epsg": 3857, "icon": null, "submitter": null, "created_at": "2016-11-14T18:08:04.486371Z", "updated_at": "2016-11-14T18:08:04.486371Z", "cumulative_status": "problematic", "extent": null }, { "id": 1395, "guid": "add42680-4456-446c-abbb-4b7cc30ded10", "name": "5 stories buildings in Moscow", "desc": "5 stories buildings in Moscow. Experiment with TMS link from nextgis.com", "type": "tms", "epsg": 3857, "icon": null, "submitter": "349a7b2a-3795-43f7-96f9-da0615ff23c3", "created_at": "2017-09-06T05:58:08.381078Z", "updated_at": "2017-09-06T05:58:08.382104Z", "cumulative_status": "works", "extent": null }, { "id": 810, "guid": "012d7f79-8d97-4a2a-b4b2-819d69ef1ada", "name": "7th Series (OS7)", "desc": "This service is imported from OSMLab. OSMLab id: OS7. Country: United Kingdom", "type": "tms", "epsg": 3857, "icon": null, "submitter": "349a7b2a-3795-43f7-96f9-da0615ff23c3", "created_at": "2017-01-10T07:18:09.939512Z", "updated_at": "2017-01-10T07:18:09.939512Z", "cumulative_status": "problematic", "extent": "SRID=4326;POLYGON ((-5.9260700000000002 54.8163300000000007, -2.7949700000000002 54.8163300000000007, -2.7949700000000002 56.8617500000000007, -5.9260700000000002 56.8617500000000007, -5.9260700000000002 54.8163300000000007))" }, { "id": 917, "guid": "a691b422-cdfe-41b8-aac6-13e60392bd9c", "name": "AGIV Flanders most recent aerial imagery", "desc": "This service is imported from OSMLab. OSMLab id: AGIV. Country: Belgium", "type": "tms", "epsg": 3857, "icon": null, "submitter": "349a7b2a-3795-43f7-96f9-da0615ff23c3", "created_at": "2017-01-10T10:28:08.238619Z", "updated_at": "2018-05-19T14:14:21.963058Z", "cumulative_status": "works", "extent": "SRID=4326;POLYGON ((2.5331800000000002 50.6820000000000022, 5.9203999999999999 50.6820000000000022, 5.9203999999999999 51.5109899999999996, 2.5331800000000002 51.5109899999999996, 2.5331800000000002 50.6820000000000022))" }, { "id": 649, "guid": "7eea7b32-920c-4b13-a38d-77ad25c728db", "name": "AGRI black-and-white 2.5m", "desc": "This service is imported from OSMLab. OSMLab id: AGRI-black_and_white-2.5m", "type": "tms", "epsg": 3857, "icon": null, "submitter": "7e7630e3-76c6-4e57-9116-dcfd4b72a05e", "created_at": "2016-12-06T15:21:07.105613Z", "updated_at": "2016-12-06T15:21:07.105613Z", "cumulative_status": "works", "extent": "SRID=4326;POLYGON ((112.2877799999999979 -44.0601300000000009, 156.6276100000000042 -44.0601300000000009, 156.6276100000000042 -9.9924099999999996, 112.2877799999999979 -9.9924099999999996, 112.2877799999999979 -44.0601300000000009))" }, { "id": 575, "guid": "ba32909f-0b51-42f9-83e8-7bd078f77633", "name": "Alberding (sorbian)", "desc": "", "type": "tms", "epsg": 3857, "icon": null, "submitter": null, "created_at": "2016-11-14T18:08:04.486371Z", "updated_at": "2016-11-14T18:08:04.486371Z", "cumulative_status": "failed", "extent": null }, { "id": 634, "guid": "467325dd-bb3b-4a01-b9bf-d9dab0560d85", "name": "Apple iPhoto", "desc": "", "type": "tms", "epsg": 3857, "icon": null, "submitter": "349a7b2a-3795-43f7-96f9-da0615ff23c3", "created_at": "2016-11-25T12:17:37.393522Z", "updated_at": "2016-11-25T12:17:37.393522Z", "cumulative_status": "problematic", "extent": null }, { "id": 2336, "guid": "bbf3aa67-eace-4735-837e-799a95e3f0b8", "name": "Architecture guide by trolleway", "desc": "", "type": "tms", "epsg": 3857, "icon": null, "submitter": "7e7630e3-76c6-4e57-9116-dcfd4b72a05e", "created_at": "2018-08-15T10:34:02.188501Z", "updated_at": "2018-08-15T10:39:14.466196Z", "cumulative_status": "works", "extent": "SRID=4326;POLYGON ((19.6008225487717525 54.5197084565585897, 60.7214426877434406 54.5197084565585897, 60.7214426877434406 60.7951778499222044, 19.6008225487717525 60.7951778499222044, 19.6008225487717525 54.5197084565585897))" }, { "id": 1233, "guid": "23769bbc-8003-4d4e-8471-f5a435e48af9", "name": "Art Noveau architecture Riga", "desc": "Scan from \"Art Noveau architecture Riga\" book, 2008", "type": "tms", "epsg": 3857, "icon": null, "submitter": "7e7630e3-76c6-4e57-9116-dcfd4b72a05e", "created_at": "2017-05-22T18:41:45.703437Z", "updated_at": "2017-05-22T18:41:45.703437Z", "cumulative_status": "works", "extent": null }, { "id": 2292, "guid": "43513f89-1ccb-40a6-8e32-f2824c6f3113", "name": "ASTER Global Digital Elevation Model (GDEM) Color Shaded Relief", "desc": "", "type": "tms", "epsg": 3857, "icon": 71, "submitter": "4b55ea1e-7df2-4a7c-ba16-78df93931966", "created_at": "2018-07-11T18:02:28.316635Z", "updated_at": "2018-07-11T18:02:28.667033Z", "cumulative_status": "problematic", "extent": null }, { "id": 638, "guid": "d4623dfc-ab59-46c4-8647-2f1e1ef0443b", "name": "Australia - New South Wales - Topographic", "desc": "Cached Map Service of NSW showing roads, points of interest, localities, landform, drainage, cultural data, parks & forests, property boundaries and street address numbers. Metadata_link http://sdi.nsw.gov.au/catalog/search/resource/details.page?uuid=%7B7DF76070-8307-49A2-A381-3D9686EAFDDC%7D", "type": "tms", "epsg": 3857, "icon": null, "submitter": "d06765ea-95dd-497d-8963-42ff5affa4fe", "created_at": "2016-11-25T20:00:37.885603Z", "updated_at": "2016-11-25T20:00:37.885603Z", "cumulative_status": "works", "extent": "SRID=4326;POLYGON ((140.9948644000000115 -37.8474136999999970, 159.4938303000000133 -37.8474136999999970, 159.4938303000000133 -27.6936059999999991, 140.9948644000000115 -27.6936059999999991, 140.9948644000000115 -37.8474136999999970))" }, { "id": 637, "guid": "10df7a62-a447-4eb5-bbf4-040360d09b04", "name": "Australia - Tasmania LIST Orthophoto", "desc": "Tasmania State Orthophoto compilation. Coverage compiled from latest aerial photos sourced from DPIPWE, Southern Councils, and individual projects. The resolution of the raster capture varies, with many urban areas at a higher resolution.For Services Terms and Conditions, please see the LIST Web Services Terms and Conditions (http://listdata.thelist.tas.gov.au/public/LISTWebServicesTermsConditions.pdf)", "type": "tms", "epsg": 3857, "icon": null, "submitter": "d06765ea-95dd-497d-8963-42ff5affa4fe", "created_at": "2016-11-25T19:54:24.700639Z", "updated_at": "2016-11-25T19:54:24.700639Z", "cumulative_status": "works", "extent": null }, { "id": 636, "guid": "24f06d38-64ad-4467-b80d-82ad5cfc1cd1", "name": "Australia - Tasmania LIST Topographic", "desc": "Tasmania Topographic base map. Different map scales used to represent the map. Created from vector data.For Services Terms and Conditions, please see the LIST Web Services Terms and Conditions (http://listdata.thelist.tas.gov.au/public/LISTWebServicesTermsConditions.pdf)", "type": "tms", "epsg": 3857, "icon": null, "submitter": "d06765ea-95dd-497d-8963-42ff5affa4fe", "created_at": "2016-11-25T19:47:57.742223Z", "updated_at": "2016-11-25T19:47:57.742223Z", "cumulative_status": "works", "extent": null } ] } ``` ## Geo Service Details ### GET /api/v1/geoservices/{int:id}/ **Example request**: ```http GET /api/v1/geoservices/465/ HTTP/1.1 Host: qms.nextgis.com Accept: */* ``` **Example response**: ```json HTTP 200 OK Allow: GET, HEAD, OPTIONS Content-Type: application/json Vary: Accept { "id": 465, "cumulative_status": "works", "url": "http://maps.kosmosnimki.ru/TileService.ashx?Request=gettile&LayerName=04C9E7CE82C34172910ACDBF8F1DF49A&apikey=U96GP973UH&crs=epsg:3857&z={z}&x={x}&y={y}", "alt_urls": [], "origin_url": "http://maps.kosmosnimki.ru/TileService.ashx?Request=gettile&LayerName=04C9E7CE82C34172910ACDBF8F1DF49A&apikey=U96GP973UH&crs=epsg:3857&z={z}&x={x}&y={y}", "guid": "cd71471d-4899-4e95-b2e5-5c7e8dd55fce", "name": "Kosmosnimki.ru Satellite", "desc": "", "type": "tms", "epsg": 3857, "license_name": "", "license_url": "", "copyright_text": "", "copyright_url": "", "terms_of_use_url": "", "created_at": "2016-11-14T18:08:04.486371Z", "updated_at": "2016-11-14T18:08:04.486371Z", "source": null, "source_url": null, "extent": null, "boundary": null, "boundary_area": null, "z_min": null, "z_max": 19, "y_origin_top": true, "icon": 77, "submitter": null, "last_status": 442280 } ``` ## Geo Service Icon ### GET /api/v1/icons/{int:id}/content **Example request**: ```http GET /api/v1/icons/77/content HTTP/1.1 Host: qms.nextgis.com Accept: */* ``` In response service returns icon image. # apitype.html.md # Describing API NextGIS Web incorporates type-annotated views and routes to: - Ensure input data is valid - Convert data into Python objects - Create OpenAPI 3.1.0 schema This approach heavily relies on Annotated type hints and the [MsgSpec library](https://jcristharif.com/msgspec/). Currently, it supports a specific set of types, with plans to potentially add more in the future, without attempting to accommodate every possible use case. Similar to the Pyramid framework, the handling of views is determined by their signatures. The established conventions for these view signatures are: - An argument named `request` is required at the first or second position - If the `request` argument is the second, the first is a request context - A request context argument can use any name, like `resource` or `obj` - An argument named `body` or `json_body` represents decoded request body - Keyword-only arguments (after `*`) represent query parameters - The remaining arguments are treated as path parameters ## Path parameters Supported types: string (`str`) and integers (`int`) only. Behind the scenes, values are decoded using MsgSpec, thus `msgspec.Meta` constraints work. ```python from typing import Annotated from msgspec import Meta def path_param(request, param: Annotated[int, Meta(gt=0)]): ... def setup_pyramid(comp, config): config.add_route( "path_param", "/path/{param}", types=dict(param=int), get=path_param, ) ``` In the example above, both `/path/1` and `/path/0` will match the route, but for `/path/0` the `422 Unprocessable Entity` error will be returned as it doesn’t fit `param > 0` condition. ## Query parameters Supported types: - Primitives: : - Basic types: `str`, `int`, `bool`, `float` - `enum.Enum` with string values only - `typing.Literal` with string and integer values - `datetime.datetime` and `datetime.date` types - Sequences of primitive types: : - `list` and `typing.List` for variable-length uniform lists - `tuple` and `typing.Tuple` for fixed-length non-uniform and uniform tuples - Objects: : - `msgspec.Struct` - `dict` and `typing.Dict` ```python from msgspec import Struct class SomeStruct(Struct, kw_only=True): foo: str bar: str = "qux" def query_param( request, *, txt: str, num: int = 0, flag: bool = False, list_str: list[str], list_int: list[int] = [1, 2, 3], tuple_mixed: tuple[str, int], tuple_uniform: tuple[float, ...], struct: SomeStruct, dict_str_int: dict[str, int], dict_list: dict[str, list[int]], ): ... ``` Arguments of primitive types can accept a default value. For booleans `true` and `false` values should be used, but `yes` and `no` are also accepted. In case of multiple values of the same parameter (`...&num=1&num=2&...`), the last value is decoded (`num == 2`). List values are decoded using the `form` style array encoding with as comma-separated values. Urlencoded commas are decoded as a part of values, plain commas as list separators. An empty string value (`...&arr_str=&...`) is decoded as an empty list. Structs are decoded using the `form` style object encoding which means that every struct field becomes an URL parameter (`...&foo=some&bar=other&...`). This fact can help to reuse a Struct for a group of parameters without repeating. Default values aren’t allowed for structs, fields with no default value are required parameters. Dictionaries are decoded using the `deepObject` style encoding as their possible keys are unknown (`...&obj_dict[a]=1&obj_dict[b]=2&...`). Default values aren’t allowed for dictionaries. ## Request body For request bodies `msgspec.Struct` types should be used in most cases. Refer to MsgSpec documentation for details, here is the minimal example: ```python from msgspec import Struct class SomeStruct(Struct, kw_only=True): foo: str bar: str = "qux" def body(request, body: SomeStruct): ... ``` ## Response View results are encoded using MsgSpec JSON encoder depending on return annotation in the following cases: - Declared as `msgspec.Struct` - Wrapped into the `AsJSON` helper These options support OpenAPI schema generation and static type checking, here is the examples: ```python from msgspec import Struct from nextgisweb.lib.apitype import AsJSON from nextgisweb.pyramid import viewargs class SomeStruct(Struct, kw_only=True): foo: str bar: str = "qux" def struct(request) -> SomeStruct: return SomeStruct(foo="zoo") def helper(request) -> AsJSON[int]: return 1 ``` The `StatusCode` annotation can be used to declare non-200 status codes. It’s important to note that this annotation only modifies the OpenAPI schema. To set the actual response status code, you should use `request.response.status_code`: ```python from typing import Annotated from msgspec import Struct from nextgisweb.lib.apitype import StatusCode class SomeStruct(Struct, kw_only=True): foo: str def create(request) -> Annotated[SomeStruct, StatusCode(201)]: request.response.status_code = 201 return SomeStruct(foo="zoo") ``` If there is no idea which JSON value to return as nothing, like `DELETE` methods, `EmptyObject` can be used. It accepts `None` and converts it to `{}`. An empty object is better than the `null` value due to future extensibility. ```python from nextgisweb.lib.apitype import EmptyObject def void(request) -> EmptyObject: pass ``` # appendix.html.md # License GPL v.3 GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. <[http://fsf.org/](http://fsf.org/)> Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. ## Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program–to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers’ and authors’ protection, the GPL clearly explains that there is no warranty for this free software. For both users’ and authors’ sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users’ freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. ## TERMS AND CONDITIONS ## 0. Definitions. “This License” refers to version 3 of the GNU General Public License. “Copyright” also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. “The Program” refers to any copyrightable work licensed under this License. Each licensee is addressed as “you”. “Licensees” and “recipients” may be individuals or organizations. To “modify” a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a “modified version” of the earlier work or a work “based on” the earlier work. A “covered work” means either the unmodified Program or a work based on the Program. To “propagate” a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To “convey” a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays “Appropriate Legal Notices” to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. ## 1. Source Code. The “source code” for a work means the preferred form of the work for making modifications to it. “Object code” means any non-source form of a work. A “Standard Interface” means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The “System Libraries” of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A “Major Component”, in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The “Corresponding Source” for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work’s System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. ## 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. ## 3. Protecting Users’ Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work’s users, your or third parties’ legal rights to forbid circumvention of technological measures. ## 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program’s source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. ## 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: 1. The work must carry prominent notices stating that you modified it, and giving a relevant date. 2. The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to “keep intact all notices”. 3. You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. 4. If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an “aggregate” if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation’s users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. ## 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: 1. Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. 2. Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. 3. Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. 4. Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. 5. Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A “User Product” is either (1) a “consumer product”, which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, “normally used” refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. “Installation Information” for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. ## 7. Additional Terms. “Additional permissions” are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: 1. Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or 2. Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or 3. Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or 4. Limiting the use for publicity purposes of names of licensors or authors of the material; or 5. Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or 6. Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered “further restrictions” within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. ## 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. ## 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. ## 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An “entity transaction” is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party’s predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. ## 11. Patents. A “contributor” is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor’s “contributor version”. A contributor’s “essential patent claims” are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, “control” includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor’s essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a “patent license” is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To “grant” such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. “Knowingly relying” means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient’s use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is “discriminatory” if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. ## 12. No Surrender of Others’ Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. ## 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. ## 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License “or any later version” applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy’s public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. ## 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. ## 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. ## 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS # appendix.html.md # GNU General Public License, version 2 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. ## Preamble > The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software–to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation’s software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author’s protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors’ reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone’s free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. ## TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION > 1. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The “Program”, below, refers to any such program or work, and a “work based on the Program” means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term “modification”.) Each licensee is addressed as “you”. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program’s source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 1. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: > 1. You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. > 2. You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. > 3. If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 1. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: > 1. Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, > 2. Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, > 3. Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 1. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 2. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 3. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients’ exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 4. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 1. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 2. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and “any later version”, you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 1. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. ## NO WARRANTY 1. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 2. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. # appendix.html.md # GNU General Public License, version 2 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. ## Preamble > The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software–to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation’s software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author’s protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors’ reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone’s free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. ## TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION > 1. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The “Program”, below, refers to any such program or work, and a “work based on the Program” means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term “modification”.) Each licensee is addressed as “you”. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program’s source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 1. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: > 1. You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. > 2. You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. > 3. If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 1. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: > 1. Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, > 2. Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, > 3. Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 1. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 2. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 3. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients’ exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 4. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 1. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 2. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and “any later version”, you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 1. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. ## NO WARRANTY 1. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 2. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. # arcgis.html.md # How to open a map or a project in ArcGIS Pro * [Order data](https://data.nextgis.com/en/catalog/subdivisions/?country=AU) for your area of interest in Shape (ArcGIS) or Geodatabase (ArcGIS) format. * Download and install ArcGIS Pro, open it and create a folder for your data. ![image](docs_data/source/_static/arcgis_create_folder_en.png) * Go to the [orders](https://data.nextgis.com/en/orders/actual/) page and download the archive when it’s complete. * **Unpack** the archive. Project includes all layers with preset styles. * In the “Catalog” panel click “Project” → «Folders» → «MyProject». Open the folder containing the data and find MXD file. ![image](docs_data/source/_static/arcgis_browse_folder_en.png) * Right-click the MXD file and select «Import And Open». ![image](docs_data/source/_static/arcgis_import_en.png) Shortly the project will be imported to ArcGIS Pro and ready for work. ![image](docs_data/source/_static/arcgis_result_en.png) # arcgispro.html.md # How to open your basemap project in ArcGIS Pro * [Order data](https://data.nextgis.com/en/) for your area of interest in ESRI Geodatabase (ArcGIS Pro) format. * Go to the [orders](https://data.nextgis.com/en/orders/actual/) page and download the archive when it’s complete. * **Unpack** the archive. * Launch ArcGIS Pro. On the start page, click **Open another project** and select an APRX file. ![image](docs_data/source/_static/open_arcgispro_menu_en.png) * Your project is opened in the program. ![image](docs_data/source/_static/opened_arcgispro_en.jpg) Another way to open a project is to double-click the \*.aprx file or select **Open** in the context menu. ![image](docs_data/source/_static/open_arcgispro_context_en.jpg) # ascii2geotiff.html.md # ASCII raster to GeoTIFF Converts ASCII raster to GeoTIFF. Input: * ASCII file containing raster description. Output: * Raster in GeoTIFF format. Launch the tool: [https://toolbox.nextgis.com/t/ascii2geotiff](https://toolbox.nextgis.com/t/ascii2geotiff) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # auth.html.md # Authorization ## Via cloud server (my.nextgis.com) For subscribed users, authorization in the NextGIS Collector application is carried out via [https://my.nextgis.com/](https://my.nextgis.com/) server by default. The email and password from the cloud NextGIS ID are used as a login and password for app. ![image](docs_collector/source/_static/ngc_login_en.png) ## Via on-premise (NGIDOP) For authorization in NextGIS Collector via on-premise server, you must specify the appropriate Endpoint in the authorization settings (see [Fig. 1073.](#ngidop-collector)). If you’re already logged in with my.nextgis.com - log out first. ![image](docs_collector/source/_static/ngm_ngidop_en_3.png) ## Change user To view the information of the user currently signed in the app, go to the Settings page. ![image](docs_collector/source/_static/ngc_ngid_view_en.png) To change the user, press “Sign out from NextGIS” and log in as described above. # auth.html.md # Authorization To start working with the app user needs to log in. Enter username and password in the corresponding fields. Admin credentials for initial log-in are generated when the app is deployed. ![image](docs_geoserv_prem/source/_static/geosop_auth_en.png) Administrator can create local users within GeoServices (in Settings). ![image](docs_geoserv_prem/source/_static/geosop_users_en.png) # auth.html.md # Authorization To log in to [NextGIS GeoServices](https://geoservices.nextgis.com/) use your [NextGIS ID](https://my.nextgis.com) ([Fig. 1138.](#nggeos-auth)) account. If you don’t have one, register on [my.nextgis.com](https://my.nextgis.com/signup/). ![image](docs_geoservices/source/_static/nggeos_auth_en.png) # auth.html.md # Authorization ## Via my.nextgis.com If you are a “regular” user, here’s what you do to sign in: 1. Create an account at [https://my.nextgis.com](https://my.nextgis.com), confirm it. 2. In the app enter your e-mail or username and password set during registration. ![image](docs_ngmobile/source/_static/ngm_login_en.png) ## Via on-premise (NGIDOP) If your company has NextGIS Web and NextGIS ID deployed on-premise, you need to change authorization server in the settings. For authorization in NextGIS Mobile via on-premise, enter the appropriate NextGIS ID address in the authorization settings (Menu -> Settings -> Account -> Sign in -> Change authorization server) ([Fig. 942.](#ngm-ngidop-en)). Select “NextGIS ID from custom server” and enter the address. If you’re already logged in with my.nextgis.com - log out first, select the correct server, then log in again. ![image](docs_ngmobile/source/_static/ngm_ngidop_en_3.png) # auth.html.md # Authorization Send the following POST request to get authorization cookie. ### POST /api/component/auth/login Authorization request to NextGIS Web * **Request Headers:** * [Accept](https://www.rfc-editor.org/rfc/rfc7231#section-5.3.2) – must be `*/*` * **Request JSON Object:** * **login** (*string*) – login * **password** (*string*) – password * **Response JSON Object:** * **id** (*int*) – user identifier * **keyname** (*string*) – user login * **display_name** (*string*) – user full name * **Status Codes:** * [200 OK](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/200) – no error **Example request**: ```http POST /api/component/auth/login Host: ngw_url Accept: */* { "login": "test_user", "password":"secret" } ``` **Example response**: ```json { "id": 10, "keyname": "test_user", "display_name": "Test user" } ``` If authorization succeeds, NextGIS Web will return HTTP code 200 and Set-Cookie. Requests with this cookie into the header will be considered authorized. Authorized data (HTTP AUTH) can be sent with each request. #### NOTE When the user agent wants to send the server authentication credentials it may use the Authorization header. The Authorization header is constructed as follows: > 1. Username and password are combined into a string “username:password” > 2. The resulting string is then encoded using the RFC2045-MIME variant of Base64, except not limited to 76 char/line > 3. The authorization method and a space i.e. “Basic “ is then put before the encoded string. For example, if the user agent uses ‘Aladdin’ as the username and ‘open sesame’ as the password then the header is formed as follows: `Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==` If you have configured an OAuth server, you can use OAuth user credentials in the same way as the local user or send Bearer token. # Managing users To create new user execute following request: ### POST /api/component/auth/user/ Request to create new user. * **Request Headers:** * [Accept](https://www.rfc-editor.org/rfc/rfc7231#section-5.3.2) – must be `*/*` * [Authorization](https://www.rfc-editor.org/rfc/rfc7235#section-4.2) – optional Basic auth string to authenticate * **Request JSON Object:** * **display_name** (*string*) – user full name * **keyname** (*string*) – user login * **description** (*string*) – user description * **password** (*string*) – user password * **Response JSON Object:** * **id** (*int*) – new user identifier * **Status Codes:** * [200 OK](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/200) – no error **Example request**: ```http POST /api/component/auth/user/ HTTP/1.1 Host: ngw_url Accept: */* { "display_name": "Test user", "keyname": "test_user", "password":"secret", "disabled": false, "member_of": [ 5 ] } ``` **Example response**: ```json { "id": 10 } ``` Get information about existing user with `id` returned in previous request: ### GET /api/component/auth/user/(*int:* id) **Example request**: ```http GET /api/component/auth/user/10 HTTP/1.1 Host: ngw_url Accept: */* ``` **Example response**: ```json { "id": 10, "system": false, "display_name": "Test user", "description": null, "keyname": "test_usera", "superuser": false, "disabled": false, "last_activity": null, "oauth_subject": null, "oauth_tstamp": null, "member_of": [ 5 ] } ``` Update user details: ```http PUT /api/component/auth/user/10 { "display_name": "Dear test user", "disabled": true } ``` Get information about all local users in WebGIS (some output was clipped): ```http GET /api/component/auth/user/ [ // ... { "id": 4, "system": false, "display_name": "Administrator", "description": null, "keyname": "administrator", "superuser": false, "disabled": false, "last_activity": "2020-08-07T01:27:52.870601", "oauth_subject": null, "oauth_tstamp": null, "member_of": [ 5 ] }, { "id": 6, "system": true, "display_name": "Owner", "description": null, "keyname": "owner", "superuser": false, "disabled": false, "last_activity": null, "oauth_subject": null, "oauth_tstamp": null, "member_of": [] }, // ... { "id": 10, "system": false, "display_name": "Dear test user", "description": null, "keyname": "test_usera", "superuser": false, "disabled": true, "last_activity": null, "oauth_subject": null, "oauth_tstamp": null, "member_of": [ 5 ] } ] ``` Delete previously created user: ```http DELETE /api/component/auth/user/10 ``` To get current user details execute following request: ### GET /api/component/auth/current_user Request to get current user details * **Request Headers:** * [Accept](https://www.rfc-editor.org/rfc/rfc7231#section-5.3.2) – must be `*/*` * [Authorization](https://www.rfc-editor.org/rfc/rfc7235#section-4.2) – optional Basic auth string to authenticate * **Response JSON Object:** * **keyname** (*string*) – user login * **display_name** (*string*) – user name * **id** (*int*) – user identifier * **Status Codes:** * [200 OK](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/200) – no error **Example response**: ```json { "keyname": "administrator", "display_name": "Admin", "id": 4 } ``` # Managing groups To create new group execute following request: ### POST /api/component/auth/group Request to create new group ```http POST /api/component/auth/group/ { "display_name": "Test group", "keyname": "test_group", "members": [ 10 ] } ``` Get information about existing group: ```http GET /api/component/auth/group/20 { "id": 20, "system": false, "display_name": "Test group", "description": null, "keyname": "test_group", "register": false, "members": [ 10 ] } ``` Update group details and remove all members from it: ```http PUT /api/component/auth/group/20 { "display_name": "Empty group", "members": [] } ``` Delete group: ```http DELETE /api/component/auth/group/20 ``` # Automatically creating users To self creating user (anonymous user) execute following request: ### POST /api/component/auth/register Request to create new user * **Request Headers:** * [Accept](https://www.rfc-editor.org/rfc/rfc7231#section-5.3.2) – must be `*/*` * [Authorization](https://www.rfc-editor.org/rfc/rfc7235#section-4.2) – optional Basic auth string to authenticate * **Request JSON Object:** * **display_name** (*string*) – user full name * **keyname** (*string*) – user login * **description** (*string*) – user description * **password** (*string*) – user password * **Status Codes:** * [200 OK](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/200) – no error Administrator can configure anonymous user registration to the specific group (via setting checkbox on group in administrative user interface). This feature requires the special section in NGW config file: ```config [auth] register = true ``` # Get resource permissions ## Simple output To get resource permissions execute following request. Returned json may vary depends on resource type. **The following request returns resource permissions**: ### GET /api/resource/(*int:* id)/permission Permissions request * **Request Headers:** * [Accept](https://www.rfc-editor.org/rfc/rfc7231#section-5.3.2) – must be `*/*` * [Authorization](https://www.rfc-editor.org/rfc/rfc7235#section-4.2) – optional Basic auth string to authenticate * **Parameters:** * **id** – resource identifier * **Status Codes:** * [200 OK](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/200) – no error **Example request**: ```http GET /api/resource/56/permission HTTP/1.1 Host: ngw_url Accept: */* ``` **Example response**: ```json { "resource": { "read": true, "create": true, "update": true, "delete": true, "manage_children": true, "change_permissions": true }, "datastruct": { "read": true, "write": true }, "data": { "read": true, "write": true }, "metadata": { "read": true, "write": true } } ``` ## Detailed output To get explain how permissions were set execute following request. Returned json may vary depends on resource type. **The following request returns resource permissions explain**: ### GET /api/resource/(*int:* id)/permission/explain Permissions explain request * **Request Headers:** * [Accept](https://www.rfc-editor.org/rfc/rfc7231#section-5.3.2) – must be `*/*` * [Authorization](https://www.rfc-editor.org/rfc/rfc7235#section-4.2) – optional Basic auth string to authenticate * **Parameters:** * **id** – resource identifier * **Status Codes:** * [200 OK](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/200) – no error **Example request**: ```http GET /api/resource/56/permission/explain HTTP/1.1 Host: ngw_url Accept: */* ``` **Example response**: ```json { "resource": { "read": { "result": true, "explain": [ { "result": true, "resource": { "id": 0 }, "type": "acl_rule", "acl_rule": { "action": "allow", "principal": { "id": 2, "cls": "user", "keyname": "everyone" }, "scope": "resource", "permission": "read", "identity": "", "propagate": true } }, { "result": true, "resource": { "id": 3880 }, "type": "acl_rule", "acl_rule": { "action": "allow", "principal": { "id": 2, "cls": "user", "keyname": "everyone" }, "scope": "resource", "permission": "read", "identity": "", "propagate": true } }, { "result": true, "resource": { "id": 4232 }, "type": "requirement", "requirement": { "scope": "resource", "permission": "read", "attr": "parent", "attr_empty": true }, "satisfied": true, "explain": { "resource": { "read": { "result": true, "explain": [ { "result": true, "resource": { "id": 0 }, "type": "acl_rule", "acl_rule": { "action": "allow", "principal": { "id": 2, "cls": "user", "keyname": "everyone" }, "scope": "resource", "permission": "read", "identity": "", "propagate": true } }, { "result": true, "resource": { "id": 3880 }, "type": "acl_rule", "acl_rule": { "action": "allow", "principal": { "id": 2, "cls": "user", "keyname": "everyone" }, "scope": "resource", "permission": "read", "identity": "", "propagate": true } }, { "result": true, "resource": { "id": 3880 }, "type": "requirement", "requirement": { "scope": "resource", "permission": "read", "attr": "parent", "attr_empty": true }, "satisfied": true, "explain": { "resource": { "read": { "result": true, "explain": [ { "result": true, "resource": { "id": 0 }, "type": "acl_rule", "acl_rule": { "action": "allow", "principal": { "id": 2, "cls": "user", "keyname": "everyone" }, "scope": "resource", "permission": "read", "identity": "", "propagate": true } }, { "result": true, "resource": { "id": 3880 }, "type": "acl_rule", "acl_rule": { "action": "allow", "principal": { "id": 2, "cls": "user", "keyname": "everyone" }, "scope": "resource", "permission": "read", "identity": "", "propagate": true } }, { "result": true, "resource": { "id": 0 }, "type": "requirement", "requirement": { "scope": "resource", "permission": "read", "attr": "parent", "attr_empty": true }, "satisfied": true, "explain": { "resource": { "read": { "result": true, "explain": [ { "result": true, "resource": { "id": 0 }, "type": "acl_rule", "acl_rule": { "action": "allow", "principal": { "id": 2, "cls": "user", "keyname": "everyone" }, "scope": "resource", "permission": "read", "identity": "", "propagate": true } }, { "result": true, "resource": null, "type": "requirement", "requirement": { "scope": "resource", "permission": "read", "attr": "parent", "attr_empty": true }, "satisfied": false, "explain": null } ] } } } } ] } } } } ] } } } } ] }, "create": { "result": false, "explain": [ { "result": false, "resource": { "id": 4234 }, "type": "default" } ] }, "update": { "result": false, "explain": [ { "result": false, "resource": { "id": 4234 }, "type": "default" } ] }, "delete": { "result": false, "explain": [ { "result": false, "resource": { "id": 4234 }, "type": "default" } ] }, "manage_children": { "result": false, "explain": [ { "result": false, "resource": { "id": 4234 }, "type": "default" } ] }, "change_permissions": { "result": false, "explain": [ { "result": false, "resource": { "id": 4234 }, "type": "default" } ] } }, "datastruct": { "read": { "result": true, "explain": [ { "result": true, "resource": { "id": 0 }, "type": "acl_rule", "acl_rule": { "action": "allow", "principal": { "id": 2, "cls": "user", "keyname": "everyone" }, "scope": "datastruct", "permission": "read", "identity": "", "propagate": true } } ] }, "write": { "result": false, "explain": [ { "result": false, "resource": { "id": 4234 }, "type": "default" } ] } }, "data": { "read": { "result": true, "explain": [ { "result": true, "resource": { "id": 0 }, "type": "acl_rule", "acl_rule": { "action": "allow", "principal": { "id": 2, "cls": "user", "keyname": "everyone" }, "scope": "data", "permission": "read", "identity": "", "propagate": true } }, { "result": true, "resource": { "id": 4233 }, "type": "requirement", "requirement": { "scope": "connection", "permission": "connect", "attr": "connection", "attr_empty": false }, "satisfied": true, "explain": { "connection": { "connect": { "result": true, "explain": [ { "result": true, "resource": { "id": 0 }, "type": "acl_rule", "acl_rule": { "action": "allow", "principal": { "id": 2, "cls": "user", "keyname": "everyone" }, "scope": "connection", "permission": "connect", "identity": "", "propagate": true } } ] } } } } ] }, "write": { "result": false, "explain": [ { "result": false, "resource": { "id": 4234 }, "type": "default" } ] } }, "metadata": { "read": { "result": true, "explain": [ { "result": true, "resource": { "id": 0 }, "type": "acl_rule", "acl_rule": { "action": "allow", "principal": { "id": 2, "cls": "user", "keyname": "everyone" }, "scope": "metadata", "permission": "read", "identity": "", "propagate": true } } ] }, "write": { "result": false, "explain": [ { "result": false, "resource": { "id": 4234 }, "type": "default" } ] } } } ``` # auth.html.md # Authorization To start working with the app user needs to log in. Enter username and password in the corresponding fields. Admin credentials for initial log-in are generated when the app is deployed. ![image](docs_toolbox_prem/source/_static/tb_op_auth_en.png) Toolbox on-premise (Toolbox for short) are integrated with [NextGIS ID on-premise](https://docs.nextgis.com/docs_ngid/source/index.html) authentication service deployed by default with the software. Users added to the [Team](https://docs.nextgis.com/docs_ngid/source/ngidop.html#ngidop-teams) also get access to Toolbox. # autocad.html.md # How to import data into AutoCAD 1. [Order data](https://data.nextgis.com/en/) for your area of interest, e.g. in GeoJSON format. 2. Go to the [orders](https://data.nextgis.com/en/orders/actual/) page and download the archive when it’s complete. 3. **Unpack** the archive. 4. Convert target layer or layers into [DXF](../../glossary.md#term-DXF) format. You can use QGIS to save th file as DXF. From the top menu open Layer –> Save as, then select AutoCAD DXF. ![image](docs_data/source/_static/convert_to_dxf_en.png) 1. Launch AutoCAD, press “Open files” and choose layer in DXF format. ![image](docs_data/source/_static/autocad1.png) 2. Layer is imported into AutoCAD working environment. ![image](docs_data/source/_static/autocad2.png) # autocad_file_schema.html.md # Layer list from DWG file This tool generates a CSV containing the list of layers from a DWG file with information on geometry and feature count. Inputs: * Source file in AutoCAD DWG formats Outputs: * CSV with layer list Launch the tool: [https://toolbox.nextgis.com/t/autocad_file_schema](https://toolbox.nextgis.com/t/autocad_file_schema) Example: ![image](docs_toolbox/source/_static/import_dwg_oda_input_en.png)![image](docs_toolbox/source/_static/autocad_file_schema_result_en.png) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # autocad_version.html.md # Report DWG / DXF file version Outputs a version of a DWG / DXF file. Inputs: * Source file. Source file in AutoCAD DWG or DXF format Outputs: * Information about software version in text format. Launch the tool: [https://toolbox.nextgis.com/t/autocad_version](https://toolbox.nextgis.com/t/autocad_version) Example output: ```default Magic: DWG AutoDesk AutoCAD 2007/2008/2009 MIME: image/vnd.dwg DWG code: AC1021 DWG version: DWG 2007/2008/2009 ``` **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # backup_restore.html.md # Backup and restore NextGIS Web uses two data storages for different types of data: - PostgreSQL database used as general purpose relational database. - Filesystem storage used for storing BLOBs like raster, attachments, etc. Also NextGIS Web provides tools for backup and restore this data to / from single-file archive. You can use any destination directory but these tools provide some defaults wich may be usefull. So before we begin, let’s create default backup directory in `/srv/ngw`: ```none $ mkdir backup ``` And set up backup directory in `config/config.ini`: ```ini [core] # Other config options go here backup.path = /srv/ngw/backup ``` ## Backup To create a backup you need to run command `nextgisweb backup` and it will create backup and print it’s filename: ```none $ nextgisweb backup /srv/ngw/backup/20200721-234619.ngwbackup ``` By default NextGIS Web uses [strftime](https://docs.python.org/3/library/datetime.html#strftime-strptime-behavior) formatted for filename which is `%Y%m%d-%H%M%S.ngwbackup`. In the example below 2020 is a year, 07 is a month, 21 is a day and so on. Note that timestamps are always stored in UTC. ## Restore Now try to restore NextGIS Web from previously created backup. You don’t need to stop NextGIS Web service during backup but you need to stop it during restore. If you used systemd in the previous section just run as root following command: ```none # systemctl stop ngw.service ``` Then run `nextgisweb restore` command with filename argument: ```none $ nextgisweb restore backup/20200721-234619.ngwbackup ``` If you are restoring backup which made from some previous version, it may require to apply migrations. The process of applying migrations is described in [“Backup and restore”](upgrade.md#applying-migrations) section. Follow instruction from there, and then start NextGIS Web service again: ```none # systemctl start ngw.service ``` # basemap_tiles.html.md # Basemap services #### IMPORTANT To use the described functionality you need to be on [Premium plan](https://nextgis.com/nextgis-com/plans). [NextGIS GeoServices](https://geoservices.nextgis.com/) allows adding vector and raster maps with GL styles: 1. Klokantech 3D 2. Klokantech Basic 3. Bright (nextgis) 4. OSM Bright (osm-bright) ![image](docs_geoservices/source/_static/nggeos_basemap_tiles.png) #### NOTE To use the data you’ll need a personal [API key](https://docs.nextgis.com/docs_geoservices/source/reissue_api_key.html) (by default the API key can be found in your profile in the query string, blurry in the image). [Example](https://demo.nextgis.com/resource/5226) of adding a service as a [Basemap](https://docs.nextgis.com/docs_ngweb/source/webmaps_admin.html#ngw-map-basemaps) in NextGIS Web. # blender.html.md # How to upload data to Blender GIS #### NOTE It is assumed that the Blender GIS add-on is already installed and ready for working with spatial data. * [Order data](https://data.nextgis.com/en/) for your area of interest in Shape format. * Go to the [orders](https://data.nextgis.com/en/orders/actual/) page and download the archive when it’s complete. * **Unpack** the archive. * Launch Blender, at the top left select “GIS” > “Import” > “SHP”. * In the pop-up window find the target layer and press “Import” button. * Another pop-up window emerges in the bottom right. Here you can adjust visualization parameters. To display individual objects, and not the outline of the layer as a whole, check the “Separate objects” checkbox. Check the “Object name from field” checkbox and specify the field to identify each object in the layer with. Click “OK”. ![image](docs_data/source/_static/blender1.png) * Your map is uploaded. Attributive information of selected object is shown in the right panel. ![image](docs_data/source/_static/blender2.png) # broken_encoding.html.md # If text in attribute table is garbled ![image](docs_data/source/_static/broken_encoding1.png) * It is recommended to ensure that your GIS doesn’t ignore layer encoding information. For [NextGIS QGIS](https://nextgis.com/nextgis-qgis/) it can be checked via “Settings” > “Options” > “Data Sources”. If the box with “Ignore shapefile encoding declaration” is checked, uncheck it. ![image](docs_data/source/_static/broken_encoding2.png) * It can be also helpful to check, if encoding of problematic layer correspond to the initial encoding. Possible initial encodings are listed [here](https://data.nextgis.com/en/about/#formats) and depend on format of your ordered data. Encoding of the layer is shown in its “Properties” menu. ![image](docs_data/source/_static/broken_encoding3.png) # buffer.html.md # Buffer Computes buffer areas for all features in an input layer using a fixed or attribute-based distance. Inputs: * Source file. Single file or ZIP with any OGR-compatible vector dataset. * Buffer distance source. Where to take the buffer distance from: - Value; - Attribute; * Buffer distance - buffer distance when Value is selected; * Attribute name - numeric attribute containing buffer distances if Attribute is selected; * Calculation CRS - coordinate reference system used for buffering: - Source layer internal CRS (Internal); - Optimal UTM Zone (UTM); * Segments - number of segments used to approximate a quarter circle in rounded buffers; * Merge overlaps - dissolve overlapping buffers. Disconnected dissolved parts are written as separate features; * Output format - format of the output buffer dataset: - GeoPackage (GPKG); - GeoJSON (GeoJSON); * Output CRS - coordinate reference system of the output file: - Source layer internal CRS (Internal); - WGS84 (EPSG:4326) (WGS84); - Pseudo Mercator (EPSG:3857) (Pseudo Mercator); - Optimal UTM Zone (UTM). Outputs: * GeoPackage file. Launch the tool: [https://toolbox.nextgis.com/t/buffer](https://toolbox.nextgis.com/t/buffer) Example: ![image](docs_toolbox/source/_static/buffer_input_en.png)![image](docs_toolbox/source/_static/buffer_result_en.png) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # cadastre2img.html.md # Generate an image of a cadastral parcel by number A tool for generating an image of a cadastral parcel using its number from nspd.gov.ru. Inputs: * Cadastral number in `06:07:0400001:414` or `06:07:0400001` format. * Object type. Available values are: 1 - parcels, 2 - units, 4 - area, 5 - buildings, 10 - restricted zones. * Image width - width of the output image in pixels (default: 827). * Image height - height of the output image in pixels (default: 583). * Fill color. Accepts HTML color names or HEX format (e.g., `orange`, `#FFA500`). Default: red. * Fill opacity for the object. Between 0 (transparent) and 1 (opaque), with decimal point, the default value is 0.6. * Stroke color - color for the object outline. If not specified, the fill color is used. Accepts HTML color names or HEX format (e.g., `orange`, `#FFA500`). * Stroke opacity. Between 0 (transparent) and 1 (opaque), with decimal point, the default value is 1. * Stroke width in pixels, the default value is 1. * QMS ID - ID of a basemap service in NextGIS QMS catalogue (QuickMapServices - [https://qms.nextgis.com](https://qms.nextgis.com)) to use for the map background. If not specified, defaults to OpenStreetMap. Example: `1300` – Satellite imagery, `519` – Topographic map. Maximum zoom level used when fitting the layer (default: 18). Valid range: 0 (world view) to 22 (building-level detail). \* Padding around the fitted layer in pixels (default: 5), Output: * PNG image. Launch the tool: [https://toolbox.nextgis.com/t/cadastre2img](https://toolbox.nextgis.com/t/cadastre2img) ![image](docs_toolbox/source/_static/cadastre2img_result.png) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # cadnums_to_geodata.html.md # Batch search by cadastral numbers The tool creates a set of layers with the boundaries of cadastral objects, receiving as input a text file with a list of their numbers. Input: * Text file (\*.txt) containing numbers of items. One cadastral number per string. Max 100 numbers. Output: * Archive with geodata of cadastral objects Launch the tool: [https://toolbox.nextgis.com/t/cadnums_to_geodata](https://toolbox.nextgis.com/t/cadnums_to_geodata) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # calc_area.html.md # When area or distance differs from the expected value To receive the values for distances or areas closest to on-site measurements, it is recommended to perform elipsoid-based calculation. It helps to avoid distortion which appears while using any projected data. QGIS settings offer an easy way to perform correct calculations regardless of the initial coordinate system of the dataset. * In Menu Toolbar select “Project” > “Project Properties…”. * In the pop-up window switch to the “General” tab and in the “Measurements” section set an ellipsoid for calculations, e.g. WGS 84, and target units for distance and area measurements. Click on “Apply” button and close the window. ![image](docs_data/source/_static/calc_area_measurements_en.png) Now distances and areas will be calculated correctly via any of the possible methods: * With the tool “Measure Line”/“Measure area” from the Attribute Toolbar: ![image](docs_data/source/_static/calc_area_measure_tool_en.png) * With the tool “Identify Features” from the same Attribute Toolbar: ![image](docs_data/source/_static/calc_area_identify_tool_en.png) * With the Field Calculator in the Attribute Table of the layer: ![image](docs_data/source/_static/calc_area_field_calc_en.png)![image](docs_data/source/_static/calc_area_field_calc_result_en.png) # centerline.html.md # Central lines of polygons This instrument creates centerlines for polygons. It is helpful for transforming roads or rivers digitized as polygons into lines. ![image](docs_toolbox/source/_static/centerline_result_en.png) Inputs: * Polygon vector layer in a GDAL-supported format, e.g. GeoPackage, GeoJSON, MapInfo TAB, ESRI Shapefile (the latter two should be in ZIP archive). Outputs: * Line vector layer in GeoPackage. Launch the tool: [https://toolbox.nextgis.com/t/centerline](https://toolbox.nextgis.com/t/centerline) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # centroid2attr.html.md # Points inside polygons Calculate coorinates of a point guaranteed to be inside a polygon and add the calculated coordinates to point_X, point_Y attributes. PointOnSurface method. Inputs: * Polygon vector layer in one of the formats, supported by GDAL, e.g. Shapefile in ZIP-archive, GeoJSON, GeoPackage. Outputs: * ZIP with polygonal shapefile with two fields added: point_X, point_Y ![image](docs_toolbox/source/_static/point_on_surface.png)![image](docs_toolbox/source/_static/centroid2attr_en.png) Launch the tool: [https://toolbox.nextgis.com/t/centroid2attr](https://toolbox.nextgis.com/t/centroid2attr) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # change.html.md # Editing ## Change resource Execute following PUT request to change resource. ### PUT /api/resource/(*int:* id) Change resource request * **Request Headers:** * [Accept](https://www.rfc-editor.org/rfc/rfc7231#section-5.3.2) – must be `*/*` * [Authorization](https://www.rfc-editor.org/rfc/rfc7235#section-4.2) – optional Basic auth string to authenticate * **Parameters:** * **id** – resource identifier * **Request JSON Object:** * **resource** (*jsonobj*) – resource JSON object * **display_name** (*string*) – resource new name * **keyname** (*string*) – resource new key * **id** (*int*) – resource new parent identifier (resource will move to new parent) * **description** (*string*) – resource new description * **permissions** (*jsonarr*) – resource permissions array * **Status Codes:** * [200 OK](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/200) – no error **Example request**: ```http PUT /api/resource/8 HTTP/1.1 Host: ngw_url Accept: */* {"resource": { "display_name":"test3", "keyname":"qw4", "parent":{"id":7}, "permissions":[], "description":"rrr5" } } ``` #### NOTE Payload of this request may be equal to create new resource request payload, but some fields can be omitted. Request must be authorized. **Move resource in terminal**: ```bash url='https://sandbox.nextgis.com' login='administrator' password='demodemo' curl -d '{"resource":{"parent":{"id":373}}}' -u $login:$password -X PUT $url/api/resource/381 ``` **Change display name of resource** ## Change webmap When changing layers in webmap, you should set in PUT query both ‘children’ and ‘item_type’ objects. **Example request**: ```python layer1 = { "layer_adapter": "tile", "layer_enabled": None, "style_parent_id": 454, "draw_order_position": None, "layer_max_scale_denom": None, "payload": None, "item_type": "layer", "layer_min_scale_denom": None, "display_name": "gidro_ln", "layer_style_id": 478, "layer_transparency": None } layer2 = { "layer_adapter": "tile", "layer_enabled": True, "style_parent_id": 453, "draw_order_position": None, "layer_max_scale_denom": None, "payload": None, "item_type": "layer", "layer_min_scale_denom": None, "display_name": "qml/rast2_ln", "layer_style_id": 489, "layer_transparency": None } layers = (layer1,layer2) payload = {'webmap':{'root_item':{'item_type':'root', 'children': layers } }} url=self.ngw_url+'/api/resource/'+str(webmap_id) response = requests.put(url, json = payload, auth=self.ngw_creds) ``` ## Change metadata This query create metadata fields, or updating it if they exists. **Example request**: ```http PUT /api/resource/8 HTTP/1.1 Host: ngw_url Accept: */* { "resmeta":{ "items":{ "UPDATED_AT":"2018-11-07 14:00", "CHECKED_AT":"2018-11-07 12:00" } } } Same steps with curl: ``` ```bash curl --user "user:password" -H 'Accept: */*' -X PUT -d '{"resmeta": {"items":{"UPDATED_AT":"2018-11-07 14:00", "CHECKED_AT":"2018-11-07 12:00"}}}' http:///api/resource/(int:id) ``` ## Change file bucket resource To change file bucket execute following PUT request: ### PUT /api/resource/(*int:* id) Change file bucket request. * **Request Headers:** * [Accept](https://www.rfc-editor.org/rfc/rfc7231#section-5.3.2) – must be `*/*` * [Authorization](https://www.rfc-editor.org/rfc/rfc7235#section-4.2) – optional Basic auth string to authenticate * **Parameters:** * **id** – resource identifier * **Request JSON Object:** * **resource** (*jsonobj*) – resource JSON object * **cls** (*string*) – type (must be `file_bucket`, for a list of supported types see [Resource classes](resource.md#ngwdev-resource-classes)) * **parent** (*jsonobj*) – parent resource json object * **id** (*int*) – parent resource identifier * **display_name** (*string*) – name * **keyname** (*string*) – key (optional) * **description** (*string*) – description text, HTML supported (optional) * **file_bucket** (*jsonobj*) – file bucket JSON object * **files** (*jsonarr*) – array of files should present in bucket: present (which need to delete don’t include in array), also new files (upload response JSON object, files == upload_meta) * **Status Codes:** * [200 OK](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/200) – no error **Example request**: ```http PUT /api/resource/22 HTTP/1.1 Host: ngw_url Accept: */* { "file_bucket": { "files": [ { "mime_type": "application/x-dbf", "name": "grunt_area_2_multipolygon.dbf", "size": 36607 }, { "mime_type": "application/x-esri-shape", "name": "grunt_area_2_multipolygon.shp", "size": 65132 }, { "mime_type": "application/x-esri-shape", "name": "grunt_area_2_multipolygon.shx", "size": 1324 }, { "id": "fb439bfa-1a63-cccc-957d-ae57bb5eb67b", "mime_type": "application/octet-stream", "name": "grunt area description.txt", "size": 50 } ] }, "resource": { "cls": "file_bucket", "description": "some new text", "display_name": "new grunt_area", "keyname": null, "parent": { "id": 0 } } } ``` In this example, file *grunt area description.txt* will added, files *grunt_area_2_multipolygon.cpg*, *grunt_area_2_multipolygon.prj* - deleted, and bucket name and description will changed. ## Change lookup table resource To change flookup table execute following PUT request: ### PUT /api/resource/(*int:* id) Change lookup table request. * **Request Headers:** * [Accept](https://www.rfc-editor.org/rfc/rfc7231#section-5.3.2) – must be `*/*` * [Authorization](https://www.rfc-editor.org/rfc/rfc7235#section-4.2) – optional Basic auth string to authenticate * **Parameters:** * **id** – resource identifier * **Request JSON Object:** * **resource** (*jsonobj*) – resource JSON object * **cls** (*string*) – type (must be `lookup_table`, for a list of supported types see [Resource classes](resource.md#ngwdev-resource-classes)) * **id** (*int*) – parent resource identifier * **display_name** (*string*) – name * **keyname** (*string*) – key (optional) * **description** (*string*) – description text, HTML supported (optional) * **resmeta** (*jsonobj*) – metadata JSON object. Key - value JSON object struct. * **lookup_table** (*jsonobj*) – lookup table values JSON object. Key - value JSON object struct. * **Status Codes:** * [200 OK](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/200) – no error **Example request**: ```http PUT /api/resource/22 HTTP/1.1 Host: ngw_url Accept: */* { "lookup_table": { "items": { "car": "Машина", "plane": "Самолет" } } } ``` Same steps with curl: ```bash $ curl --user "user:password" -H 'Accept: */*' -X PUT -d '{"lookup_table": {"items":{"car":"Машина", "plane":"Самолет"}}}' http:///api/resource/ ``` ## Change feature To change feature in vector layer execute following request: ### PUT /api/resource/(*int:* layer_id)/feature/(*int:* feature_id)?srs=(*int:* srs) Change feature request * **Parameters:** * **layer_id** – layer resource identifier * **feature_id** – feature identifier * **Query Parameters:** * **srs** – EPSG code for input SRS (will be automatically reprojected to destination SRS) * **Request Headers:** * [Accept](https://www.rfc-editor.org/rfc/rfc7231#section-5.3.2) – must be `*/*` * [Authorization](https://www.rfc-editor.org/rfc/rfc7235#section-4.2) – optional Basic auth string to authenticate * **Request JSON Object:** * **geom** (*string*) – geometry in WKT format (geometry type and spatial reference must be corespondent to layer geometry type and spatial reference) * **id** (*int*) – feature identifier * **Request JSON Array of Objects:** * **fields** – attributes array in form of JSON field name - value object * **Status Codes:** * [200 OK](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/200) – no error **Example request**: ```http PUT /api/resource/3/feature/1 HTTP/1.1 Host: ngw_url Accept: */* { "extensions": { "attachment": null, "description": null }, "fields": { "Age": 1, "DateTr": { "day": 7, "month": 2, "year": 2015 }, "Davnost": 4, "Foto": 26, "Nomerp": 1, "Nomers": 1, "Samka": 0, "Sex": 3, "Sizeb": 0.0, "Sizef": 0.0, "Sizes": 9.19999980926514, "Snowdepth": 31, "Wher": "\u043b\u044b\u0436\u043d\u044f", "id01": 0 }, "geom": "MULTIPOINT (15112317.9207317382097244 6059092.3103669174015522)", "id": 1 } ``` In request payload add only changed fields. Other fields will stay unchanged. Also geometry field may be skipped. To change features in batch mode use patch request. ### PATCH /api/resource/(*int:* layer_id)/feature Change features request * **Parameters:** * **layer_id** – layer resource identifier * **Request Headers:** * [Accept](https://www.rfc-editor.org/rfc/rfc7231#section-5.3.2) – must be `*/*` * [Authorization](https://www.rfc-editor.org/rfc/rfc7235#section-4.2) – optional Basic auth string to authenticate * **Request JSON Array of Objects:** * **geom** (*string*) – geometry in WKT format (geometry type and spatial reference must be corespondent to layer geometry type and spatial reference) * **fields** (*jsonarr*) – attributes array in form of JSON field name - value object * **id** (*int*) – feature identifier * **Status Codes:** * [200 OK](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/200) – no error Request accepts array of JSON objects. If feature identifier is not present in PATCH body a feature will be created, else - changed. **Example request**: ```http PATCH /api/resource/3/feature/ HTTP/1.1 Host: ngw_url Accept: */* [ {"geom": "POINT(30.20 10.15)", "fields": {"externalObjectId": "i1"}}, {"id": 24, "geom": "POINT(30.20 10.15)", "fields": {"externalObjectId": "i2"}}, {"geom": "POINT(30.20 10.15)", "fields": {"externalObjectId": "i3"}} ] ``` **Example response body**: ```json [ {"id": 25}, {"id": 24}, {"id": 26} ] ``` ## Change attachment Only following information can be changed: \* file name \* description To change attachment execute following request: ### PUT /api/resource/(*int:* layer_id)/feature/(*int:* feature_id)/attachment/(*int:* attachment_id) Change feature request * **Parameters:** * **layer_id** – layer resource identifier * **feature_id** – feature identifier * **attachment_id** – attachment identifier * **Request Headers:** * [Accept](https://www.rfc-editor.org/rfc/rfc7231#section-5.3.2) – must be `*/*` * [Authorization](https://www.rfc-editor.org/rfc/rfc7235#section-4.2) – optional Basic auth string to authenticate * **Request JSON Object:** * **name** – new name * **description** – new description * **Response JSON Object:** * **id** – attachment identifier * **Status Codes:** * [200 OK](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/200) – no error **Example request**: ```http PUT /api/resource/3/feature/1/attachment/4 HTTP/1.1 Host: ngw_url Accept: */* {"name": "49.qml", "description": "qqq"} ``` ```bash curl --user "user:password" 'https://sandbox.nextgis.com/api/resource/9/feature/1/attachment/4' -X PUT -H 'content-type: application/json' -H 'accept: */*' --data-binary '{"name": "49.qml", "description": "qqq"}' ``` ## Delete feature To delete feature from vector layer execute following request: ### DELETE /api/resource/(*int:* layer_id)/feature/(*int:* feature_id) Delete feature request * **Request Headers:** * [Accept](https://www.rfc-editor.org/rfc/rfc7231#section-5.3.2) – must be `*/*` * [Authorization](https://www.rfc-editor.org/rfc/rfc7235#section-4.2) – optional Basic auth string to authenticate * **Parameters:** * **layer_id** – resource identifier * **feature_id** – feature identifier * **Status Codes:** * [200 OK](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/200) – no error **Example request**: ```http DELETE /api/resource/3/feature/1 HTTP/1.1 Host: ngw_url Accept: */* ``` ## Delete features To delete list of features execute following request: ### DELETE /api/resource/(*int:* layer_id)/feature/ Delete features request * **Request Headers:** * [Accept](https://www.rfc-editor.org/rfc/rfc7231#section-5.3.2) – must be `*/*` * [Authorization](https://www.rfc-editor.org/rfc/rfc7235#section-4.2) – optional Basic auth string to authenticate * **Parameters:** * **layer_id** – resource identifier * **Request JSON Array of Objects:** * **id** (*int*) – feature identifier * **Status Codes:** * [200 OK](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/200) – no error **Example request**: ```http DELETE /api/resource/3/feature/ HTTP/1.1 Host: ngw_url Accept: */* [{"id": 25},{"id": 24},{"id": 26}] ``` ## Delete all features To delete all feature in vector layer execute following request: ### DELETE /api/resource/(*int:* layer_id)/feature/ Delete features request * **Request Headers:** * [Accept](https://www.rfc-editor.org/rfc/rfc7231#section-5.3.2) – must be `*/*` * [Authorization](https://www.rfc-editor.org/rfc/rfc7235#section-4.2) – optional Basic auth string to authenticate * **Parameters:** * **layer_id** – resource identifier * **Status Codes:** * [200 OK](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/200) – no error **Example request**: ```http DELETE /api/resource/3/feature/ HTTP/1.1 Host: ngw_url Accept: */* ``` ## Delete attachment To delete attachment from a feature execute following request: ### DELETE /api/resource/(*int:* layer_id)/feature/(*int:* feature_id)/attachment/(*int:* attachment_id) Delete feature request * **Request Headers:** * [Accept](https://www.rfc-editor.org/rfc/rfc7231#section-5.3.2) – must be `*/*` * [Authorization](https://www.rfc-editor.org/rfc/rfc7235#section-4.2) – optional Basic auth string to authenticate * **Parameters:** * **layer_id** – resource identifier * **feature_id** – feature identifier * **attachment_id** – attachment identifier * **Status Codes:** * [200 OK](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/200) – no error **Example request**: ```http DELETE /api/resource/3/feature/1/attachment/1 HTTP/1.1 Host: ngw_url Accept: */* ``` ```bash curl --user "user:password" -H 'Accept: */*' -X DELETE 'https://sandbox.nextgis.com/api/resource/9/feature/1/attachment/1' ``` ## Delete all attachments To delete all attachments of a feature execute following request: ### PUT /api/resource/(*int:* layer_id)/feature/(*int:* feature_id) Change feature request * **Parameters:** * **layer_id** – layer resource identifier * **feature_id** – feature identifier * **Request Headers:** * [Accept](https://www.rfc-editor.org/rfc/rfc7231#section-5.3.2) – must be `*/*` * [Authorization](https://www.rfc-editor.org/rfc/rfc7235#section-4.2) – optional Basic auth string to authenticate * **Request JSON Array of Objects:** * **extensions** – empty attachment array * **Response JSON Object:** * **id** – feature identifier * **Status Codes:** * [200 OK](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/200) – no error **Example request**: ```http PUT /api/resource/3/feature/1 HTTP/1.1 Host: ngw_url Accept: */* { "extensions": { "attachment":[] } } ``` ```bash curl 'https://sandbox.nextgis.com/api/resource/9/feature/1' --user "user:password" -H 'Accept: */*' -X PUT -H 'content-type: application/json' --data-binary '{"extensions":{"attachment":[]}}' ``` # changelog.html.md # Changelog **2.0.3 released on 05 Aug 2026** - Device ID can now be copied by tapping it - Fixed the prompt to save changes appearing when no changes were made - Fixed issues with the “initial extent” functionality - Fixed an issue where a layer added to a project with a style was not displayed - Fixed navigation to the current location when tapping “move point to the center of the screen” **2.0.2 released on 30 Jun 2026** * Added support for the “Spacer” element in forms * Use dt_format=iso for PUT and POST requests * Fixed a crash when a field name contains a dot * Fixed an incorrect User-Agent in photo requests * Fixed the layer tree button disappearing from the map * Fixed a crash caused by empty groups in a project * Fixed attachment filenames not being passed to Web GIS * Fixed typos in the interface # changelog.html.md # Changelog **2.26 released on 18.08.2026** - Add languages: French, Spanish. - MapLibre for Node.js upgraded to 6.4.1. - Add OpenType fonts support. - Improved initial map extent on service preview. - Minor interface improvements. **2.25 released on 29.06.2026** - Support tileset create from MBTiles. - Service preview without browser cache. - Release info on “About” page. **2.24 released on 26.05.2026** - NextGIS Web service default extent set from constraining web map extent instead of initial. - External service tile size setting has been removed. Only 256x256 px tiles are supported. - Minor stability and error handling improvements. **2.23 released on 27.04.2026** - New service type - Tileset. - Create API key when registering OAuth user. - Select API key for URL templates. - Fixed default maximum zoom in API key create dialog. - Fix error when logging in using OAuth. - Fix user profile edit error. **2.22 released on 31.03.2026** - WebP format support for external services. - Fix seeding of external services with CRS EPSG:3857. - Fix tiles deletion from Redis during seeding. - Simplify service pages paths. - Clear service permissions for deleted users and groups. - Improved internal database integrity. **2.21 released on 17.12.2025** - Fix missing space symbol in font glyphs. - Replace unsupported text font with Open Sans. - Support HTTP(S) proxy. - Healthcheck NGW connection. **2.20 released on 1.11.2025** - Add storage estimation feature. - Make name_{lang} MVT attribute contain a certain language. - Show zoom on preview page. - Add status and OSM PBF hints. - Remove legacy renderer. - Fixed getting OAuth groups from token. - Dropped LDAP login support. **2.19.0 released on 21.07.2025** - Show seeding services at overview page. - Delete tile cache on service delete. - Fix tile rendering of basemap and NGW services on certain scales. - Fix raster cache invalidation. - Fix label layers of default styles. - Fix creation of NGW services from web map with empty extent. - Fix delete basemap data button. **2.18.0 released on 14.05.2025** - Add picker with 3 default styles for basemap service. - Fix authorization and permissions check. - Reduce MVT languages to “name”, “name:en” and “name:ru”. - Improve MVT generation performance. - Allow CORS for maplibre.org by default. - Improve seeding stability. - Fix metatile locking, better cache errors handling. - Experimental NGW layers support for basemap service. **2.17.0 released on 10.03.2025** - Add “landcover” basemap layer. - Add OpenSans font. - PBF glyphs of all system fonts are available via API. - Basemap auto update disabled by default. - Fix edge basemap tiles rendering. - Fix NGW service scales vision. - Fix API-key creating with expiration date. - A lot of fixes for seeding. - Own Redis container based on Ubuntu 24.04. - Experimental Maplibre GL renderer support. # changelog.html.md # Changelog **3.2.1 released on 05 Aug 2026** * Require confirmation before deleting a newly created or modified object * Fixed an unnecessary dialog when opening NGRC * Fixed an unnecessary prompt to save changes when there are no changes **3.2.0 released on 30 Jul 2026** * Support for the MBTiles format for local raster layers * Customizable label colors for polygons and lines * Go to coordinates tool * Replace the object deletion popup with a confirmation dialog * Link to the Web GIS administrator contact form when the user has insufficient permissions * Use the NGRC file name as the layer name * Fixed a synchronization error when submitting data with an empty date * Fixed an issue where the date could not be entered through the form * Fixed the track visibility toggle state not being displayed correctly * Fixed an error when attempting to download a non-image attachment from NGW * Fixed unnecessary text centering in the feature table * Fixed track visibility toggle not working * Fixed track display color changes not being applied * Fixed NGW layer properties enabling auto-sync unexpectedly * Renamed “Your UID” to “Device ID” to match the Web GIS * Fixed incorrect rendering of the ruler enable checkbox **3.1.2 released on 14 Jul 2026** * Removed all extent requests while adding a raster layer * Fixed incorrect indication of synchronization flag under Web GIS settings **3.1.1 released on 08 Jul 2026** * Added a clear error message instead of “Account is null” when attempting to add a layer * Added a notification when a form field cannot be used for input * Added support for selecting a label attribute for feature identification * The ruler tool is now enabled by default * Fixed unintended geometry changes when the user did not edit the geometry * Fixed point features being moved to the current location during creation * Fixed multiple requests being sent for the same layer * Fixed the incorrect “Contains ads” label in Google Play * Added Sentry profiling configuration # check_geometries.html.md # Check geometries Checking the vector file for geometry validity. The output is a CSV file with a list of errors and coordinates and a GeoJSON file with geometries of the location of errors. Inputs: * ZIP archive with vector files. Single-file formats should be in the root of the archive. For multi-file formats such as ESRI Shapefile, each layer should be put in a separate ZIP inside the main input archive. Input archive may contain mixed files. ![image](docs_toolbox/source/_static/check_geometries_structure_en.png) Outputs: * CSV file containing the list of errors; * GeoJSON file with points marking the placement of the errors. Launch the tool: [https://toolbox.nextgis.com/t/check_geometries](https://toolbox.nextgis.com/t/check_geometries) ![image](docs_toolbox/source/_static/check_geometries_result.png) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # clickfu.html.md # Click-Fu Send click coordinates to various geoservices to open their maps in a browser at the chosen location. Supports Google Maps, OSM, Flickr Maps, GeoHack Map Sources. After the installation you can find the plugin in the Web menu. 1. In the plugin menu select the service where you want to open your area of interest. ![image](docs_ngqgis/source/_static/clickfu_menu_en.png) 1. Click on a point on the map in QGIS. Your browser will open the selected service displaying the coordinates of the point. See how the plugin works in our video: Watch on [youtube](https://youtu.be/H_mDkoCsQ-Y?si=TispKDxEygvfTfZb). # clip_polys_poly.html.md # Calculate areas of intersection Calculates area of polygons inside and outside given boundary. Records results in hectares (ha) to the attributes of a vector layer in Web GIS on NextGIS platform. NextGIS Web (NGW) is a geodata managing system. You can use it for free after [signing up](https://docs.nextgis.com/docs_ngcom/source/create.html). With NextGIS Web you can store geodata, create interactive online maps, give access to them to your teammates and clients, edit features directly on the map and in the feature tables, as well as process them with specialized Toolbox tools. [More on what NGW can do](https://docs.nextgis.com/docs_ngweb/source/general.html). Inputs: * Web GIS URL - URL of a NextGIS Web instance. Example: [https://sandbox.nextgis.com](https://sandbox.nextgis.com); * Login - NextGIS ID or username of a user who has write access to the resource group; * Password; * Boundary layer ID - ID of the boundary polygon layer in Web GIS; * Polygons layer ID - ID of a layer with polygon features in Web GIS; * Area field - attribute in the features layer where the area of the features will be stored; * Area field (within boundary) - attribute in the features layer where the area of features falling within the boundary will be stored. Outputs: * Modified layer in Web GIS. Launch the tool: [https://toolbox.nextgis.com/t/clip_polys_poly](https://toolbox.nextgis.com/t/clip_polys_poly) **Try the tool in action by downloading our example:** [Input data set](https://nextgis.com/data/toolbox/clip_polys_poly/clip_polys_poly_inputs.zip) to test the tool. The archive contains step-by-step instructions. # code_formatting.html.md # Code formatting Code formatting takes lots of time and may trigger endless discussions. That’s why we use code formatting automation in NextGIS Web. Here is the summary of its settings: Python: - Indentation: 4 spaces - Quotes: double - Line length: 100 - Linter: Ruff - Formatter: Ruff - Import sorting: Ruff JavaScript and TypeScript: - Indentation: 4 spaces - Quotes: double - Line length: 80 - Linter: ESLint - Formatter: Prettier - Import sorting: ESLint plugin CSS and LESS: - Indentation: 4 spaces - Line length: 80 - Formatter: Prettier - Keys sorting: Prettier plugin Markdown: - Indentation: 4 spaces - Line length: 80 - Formatter: Prettier We use this settings for NextGIS Web core itself and for extensions. Configuration details are in the corresponding files like `pyproject.toml` or `.prettierrc.cjs`. # collector.html.md # How to begin data collection in your Web GIS #### NOTE In the cloud, you can use the described functionality on all pricing plans. However, Free and Mini plans have onle one Collector user available. You can add new users on the [Premium plan](https://nextgis.com/pricing-base/). For on-premise solutions, data collection functionality is available for NextGIS Web [Extended](https://nextgis.com/pricing/#ngwextended) and [Enterprise](https://nextgis.com/pricing/#ngwenterprise). ## Introduction Collecting spatial data is used to get geographic and attributive information about objects located in some area. Geographic information is a set of coordinates. Attributive information is a description of the object’s features. #### NOTE As an **example** we can describe a task of monitoring the condition of road infrastructure objects. A road maintenance service should perform monitoring of the roadbed condition. Objects of spatial data collecting in this case are roadbed damages. Geographical information in this example is coordinates of the damages. Attributive information includes damage type, its size, a description of its location within roadbed, photos of the damage. The NextGIS Collector was developed to simplify the procedure of such data collection and to give an instrument to do it. However before a technical description of this system possibilities let’s look at the main participants of data collection in order to better understand how this system works. There are two roles in a process of spatial data collection: * An organizer of data collection. * A participant of data collection. ![image](docs_ngcom/source/_static/ngc-data-collection-team-clt_eng.png) An *organizer of data collection* is a subject who organizes the process of data collection, gathers a team of participants, controls the process and verifies the data. An organizer could be a group of people as well as an individual. In the above-mentioned example a road maintenance service was the organizer. Below there are some more examples of data collection organizers and their tasks. ![image](docs_ngcom/source/_static/ngc-team-lead_eng.png) A *participant of data collection* is a person who collects data in the field. His task is to describe properties of a real object in the field. Before active spreading of mobile devices people collected data using a paper notebook. Nowadays mobile devices help to simplify this process and decrease the number of mistakes, so we assume that every participant of data collection has a mobile device. ## Principles of work with NextGIS Collector NextGIS Collector is a technology created to simplify spatial data collection in the field. NextGIS Collector allows the owner of a Web GIS created on nextgis.com to organize a team and to begin data collection using mobile devices. NextGIS Collector is a technological stack allowing users to create a dataflow between an organizer and participants of data collection for effective process supervision and easier data collection (the process is described in the previous section). ![image](docs_ngcom/source/_static/ngc-data-collection-team-ngc_eng.png) There are several stages of data collection process in NextGIS Collector: 1. The organizer of data collection registers in [nextgis.com](http://nextgis.com/) and creates a Web GIS. 2. The organizer [creates data collection forms](https://docs.nextgis.com/docs_ngweb/source/collector.html#collector-create-form) in the Web GIS. 3. A team of data collection participants registers in [nextgis.com](http://nextgis.com/). 4. The organizer of data collection adds a team of data collection participants to his Web GIS and creates a project of data collection. 5. Data collection participants install the [NextGIS Collector](https://play.google.com/store/apps/details?id=com.nextgis.collector) app and join the project. 6. Data collection participants begin data collection. Data is sent to Web GIS automatically. These stages of work with NextGIS Collector could be described schematically as follows: To sum up, to begin data collection: - The data collection organizer should have a Web GIS. - Every data collection team participant should have a mobile device with Android OS. - Every data collection team participant should register in [nextgis.com](http://nextgis.com/) and know his registration email and password. ## Organizer of data collection: adding team participants in Web GIS The first stage of work with the system is adding data collection participants in the Web GIS of the data collection organizer. Data collection team participants should have a mobile device with Android OS. They need to install the [NextGIS Collector](https://play.google.com/store/apps/details?id=com.nextgis.collector) mobile app on each of mobile devices - it will allow them to update data and synchronize updates with the Web GIS of the data collection organizer. Besides, each data collection team participant should be registered in [nextgis.com](http://nextgis.com/). Team participant can do it himself and pass his login to the data collection organizer. A login in [nextgis.com](http://nextgis.com/) is the email used for a registration. When all data collection team participants are registered in [nextgis.com](http://nextgis.com/), the data collection organizer will have a list of their emails. To add team participants to the Web GIS you need to do the following: 1. Open Web GIS as administrator. 2. The home page of your Web GIS resources will be opened. Open the “Main menu” panel: ![image](docs_ngcom/source/_static/ngc-stages-001_eng_2.png) 1. In the main menu select «Control panel»: ![image](docs_ngcom/source/_static/ngc-stages-002_eng.png) 1. In «Settings» of the control panel select «Collector projects»: ![image](docs_ngcom/source/_static/ngc-stages-003_eng_2.png) 1. A page for managing data collection participants will be opened: ![image](docs_ngcom/source/_static/ngc-stages-004_eng_2.png) 1. To add a team participant to the Web GIS press “Create” button. It will redirect you to the “Create new collector” page. Make sure to type in full email adress that serves as NextGIS ID login. #### NOTE We recommend filling up the field “Description” with the name and the surname of the team participant in order to have data about all NextGIS Collector users in one place. You can always find the participant you need with a search tool in a table of Collector users, which is quite suitable when there are a lot of participants. ![image](docs_ngcom/source/_static/ngc-stages-005_eng_2.png) 1. As a result of this stage all data collection team participants will be registered in your Web GIS. ![image](docs_ngcom/source/_static/ngc-stages-006_eng_2.png) Users with a registration in your Web GIS can access data collection projects from your Web GIS and begin data collection after they installed the [NextGIS Collector](https://play.google.com/store/apps/details?id=com.nextgis.collector) mobile app and successfully sign in there. However you can control the access of different users to each individual project. It is described in details below. ## Organizer of data collection: creating data collection project Data collection project is a resource in your Web GIS, it is a set of layers for editing. In a Web GIS “data collection project” is called “Collector Project”. Data collection project allows a data collection team participant to edit its layers. Web GIS owner can restrain access to the project for separate participants. You can create a Collector project via NextGIS Formbuilder (the simplest way, described [here](https://docs.nextgis.com/docs_formbuilder/source/workflow.html#nextgis-web)) or in your WebGIS. If you want to use your WebGIS to create a Collector project, first you need to [create necessary data layers](https://docs.nextgis.com/docs_ngweb/source/layers.html#ngw-create-empty-vector-layer) or [upload them from a file](https://docs.nextgis.com/docs_ngweb/source/layers.html#ngw-process-create-vector-layer). Let’s suppose that layers with data are already uploaded to your Web GIS, and you want to create a project and allow data collection team participants to collect or edit data in your Web GIS. To do it: 1. Open the Web GIS. 2. Create a basemap if the collector will need to see a map on the mobile app. 3. In «Create resource» select «Collector project»: ![image](docs_ngcom/source/_static/select_create_collector_project_en.png) 1. Name your project. This name will be displayed in the [NextGIS Collector](https://play.google.com/store/apps/details?id=com.nextgis.collector) mobile app : ![image](docs_ngcom/source/_static/ngc-stages-008_name_en.png) 1. In the “Project” tab configure: * The **starting screen** that collector see in the [NextGIS Collector](https://play.google.com/store/apps/details?id=com.nextgis.collector) mobile app when they join the project. It can be a list of forms or a map; * **Initial extent** defines what area is displayed on the screen when the project is open. By default it’s the entire world. You can enter project boundaries in degrees or select a layer to set it. If the project extent is set, collectors will get a warning when they try to add a point outside this extent (which can happen if there are geolocation issues). * **Mobile project setup configuration**, for advanced users, allows to automate working with a big number of device. ![image](docs_ngcom/source/_static/ngc_proj_tab_en_2.png) 1. The next stage is adding necessary items to the project on the “Items” tab. An item of Collector project could be an editable data layer, display-only data layer, basemap or a form for data collection. #### NOTE You could add PostGIS layers in Collector project, but the NextGIS Collector mobile app does not support work with them for now Adding of items is like adding layers when creating a Web Map. Press the **+ Layer** button to add a layer or a data collection form. Select the vector layer in the resource list, not the form. Press **+ Group** to create a group of items. Drag-and-drop of items is available within the item tree. To delete an item, press **X** at the end of the row. Click on the item to see its attributes. ![image](docs_ngcom/source/_static/ngc_items_tab_en.png) Each item of Collector project has the following attributes: - «Display name» - a layer name which is displayed in the NextGIS Collector mobile app. - «Editable» - allow or deny editing of the layer in the NextGIS Collector mobile app. - «Visible» - controls layer’s visibility in the NextGIS Collector mobile app. - «Syncable» - allow or deny synchronization of the layer with your Web GIS. - «Zoom level visibility» - defines for which zoom levels the layeer is visible. It has two parameters: Min zoom and Max zoom. - «Lifetime for tiles (in min)» - time of tiles cashing (for tile layers). To go back to the list of items, press **Hide details**. 1. Add basemap if necessary. 2. Then on the “Collectors” tab tick the users participating in the project to give them permissions: ![image](docs_ngcom/source/_static/ngc_list_collectors_en.png) 1. Press “Create”. As a result a Collector project (data collection project) will be created. You can have unlimited number of projects in your Web GIS. In each of them you can restrain or allow access for a particular set of participants from the data collection team. ## Team participants: mobile app installation and start of data collection Data collection team participant should download and install the NextGIS Collector mobile app on his mobile device. You could download it from Google Play Store using the following link - [NextGIS Collector](https://play.google.com/store/apps/details?id=com.nextgis.collector) or find it by the name in Google Play Store. ![image](docs_ngcom/source/_static/ngc-user-01_eng.png) After the instalation is completed, start the app, skip information screens and give necessary permissions: ![image](docs_ngcom/source/_static/ngc-user-02.png)![image](docs_ngcom/source/_static/ngc-user-03.png)![image](docs_ngcom/source/_static/ngc-user-04.png)![image](docs_ngcom/source/_static/ngc_login_en.png) By default the server used is my.nextgis.com, you can also choose to [use on-premise server](../../docs_collector/source/auth.md#ngcollector-auth). If you’re using NextGIS ID, make sure to enter the full email address. After successful signing in you will see a list of projects. ![image](docs_ngcom/source/_static/ngc_project_list_en.png) To join a project tap on it and confirm the action in the pop-up. There are two possible starting screens for a project: a map or a list of layers. To switch to the map view press the ![button_map](docs_ngcom/source/_static/button_map.png) icon in the bottom right corner. If you are in the map mode, press the three lines in the top left corner to view the layer tree. ![image](docs_ngcom/source/_static/ngc_layer_list_en.png)![image](docs_ngcom/source/_static/ngc_map_layers_en.png) After completing these steps a data collection team participant can begin editing layers. The process of editing and the editing tools are similar to those in NextGIS Mobile. [More on adding and editing features and track recording](https://docs.nextgis.com/docs_collector/source/map_tools.html). #### IMPORTANT We recommend collecting data with activated GPS. ## Administrator’s check-list This a short version of a Web GIS administrator check-list. Follow the steps to get your data collection up and running. 1. Formulate a list of feature attributes that you’re going to collect and describe in the field. 2. Install NextGIS Software on your desktop. 3. Create a Web GIS at nextgis.com. 4. Add yourself as a user. ☰ - Control panel - Collector projects. Enter your e-mail, registered at nextgis.com 5. Create an account to send data from NextGIS Collector app and give it the necessary permissions. For example: Full name: Collector. Login: Collector. Password. Description: NextGIS Collector Account. Groups: Administrator. 6. Create a form, set field aliases for readability. Set default values for lists. 7. Create Collector project and a Web Map for data visualisation. 8. Check the form on your device. 9. Continue adding other users. For simplicity, ask users to register using gmail account. Gmail client is already on every android, and already signed in. Add names for the data collectors. # collector.html.md # Collector projects To set up data collection: 1. Add users that are going to collect data to the [list of data collectors](https://docs.nextgis.com/docs_ngweb/source/collector.html#ngw-collector-add-members); 2. Create [vector layer and data collection form](https://docs.nextgis.com/docs_ngweb/source/collector.html#collector-create-form); 3. Create and configure [data collection project](https://docs.nextgis.com/docs_ngweb/source/collector.html#project-wizard). ## List of collectors In the Collector Projects section of the Control Panel, you can manage the list of [data collectors](https://docs.nextgis.com/docs_ngcom/source/collector.html). Each participant must have a [NextGIS ID account](https://docs.nextgis.com/docs_ngcom/source/create.html#how-to-create-account-nextgis-id). ![image](docs_ngweb/source/_static/ngc-stages-004_eng_2.png) To add a team participant to the Web GIS press “Create” button. It will redirect you to the “Create new collector” page. Make sure to type in full email address that serves as NextGIS ID login. #### NOTE We recommend filling up the field “Description” with the name and the surname of the team participant in order to have data about all NextGIS Collector users in one place. You can always find the participant you need with a search tool in a table of Collector users, which is quite suitable when there are a lot of participants. ![image](docs_ngweb/source/_static/ngc-stages-005_eng_2.png) As a result of this stage all data collection team participants will be registered in your Web GIS. ![image](docs_ngweb/source/_static/ngc-stages-006_eng_2.png) Users with a registration in your Web GIS can access data collection projects from your Web GIS and begin data collection after they installed the [NextGIS Collector](https://play.google.com/store/apps/details?id=com.nextgis.collector) mobile app and successfully sign in there. However you can control the access of different users to each individual project. Now you can created the neccessary resources for data collection. ## Data collection project Data collection project is a resource in your Web GIS, it is a set of layers for editing. In NextGIS Web a data collection project resource is called “Collector Project”. Data collection project allows a data collection team participant to edit its layers. Web GIS owner can restrain access to the project for separate participants. Before creating a Collector project make sure you’ve completed the preparation: 1. Added users who are going to gather data to the [List of collectors in the Control panel](https://docs.nextgis.com/docs_ngweb/source/collector.html#ngw-collector-add-members); 2. [Created](https://docs.nextgis.com/docs_ngweb/source/layers.html#ngw-create-empty-vector-layer) or [uploaded](https://docs.nextgis.com/docs_ngweb/source/layers.html#ngw-process-create-vector-layer) vector layers and (optionally) added [forms](https://docs.nextgis.com/docs_ngweb/source/collector.html#collector-create-form) for them. ### Set up Collector project To create a new data collection project, go to the Main resource group and select **Set up Collector project** in the menu on the right. ![image](docs_ngweb/source/_static/select_setup_collector_en.png) A wizard page opens, different from the standard resource creating interface. ![image](docs_ngweb/source/_static/collector_pr_create_en.png) Fill in this form to create a project. * **Project name** - a resource group is created in your Web GIS. This group contains the Collector project resource as well as a Web Map for data visualisation. * **Items** You can add: * data collection form, * editable vector layer, * display-only layer, * basemap. A default basemap is automatically included in the project, but you can [create another basemap](https://docs.nextgis.com/docs_ngweb/source/webmaps_admin.html#ngw-create-basemap) and add is a separate item. Click “+ Item” to add an item. * To add an **editable data layer** select the *layer* (If a layer has two or more forms, you can select one or several of them); * To add a **display-only layer** select its *style*; * To add a **basemap** select the basemap resource. You can add multiple items at once, for example, several forms of the same vector layer. Items selected to be added are marked with a tick. A layer that has a style or form(s) selected is marked with a blue dot. Navigate between resource groups and tick the items you want to add. The **Add selected** button displays the total number of selected resources. To clear the selection press the ![X](docs_ngweb/source/_static/button_clear_selection.png) button next to it. ![image](docs_ngweb/source/_static/project_items_add_en.png) Drag-and-drop to rearrange items within the item tree. To delete an item, press **X** at the end of the row. Click on the item to see its attributes. ![image](docs_ngweb/source/_static/project_item_set_en.png) Each item of Collector project has the following settings: - «Display name» - a layer name which is displayed in the NextGIS Collector mobile app. - «Editable» - allow or deny editing of the layer in the NextGIS Collector mobile app. - «Visible» - controls layer’s visibility in the NextGIS Collector mobile app. - «Syncable» - allow or deny synchronization of the layer with your Web GIS. - «Zoom level visibility» - defines for which zoom levels the layer is visible. It has two parameters: Min zoom and Max zoom. - «Lifetime for tiles (in min)» - time of tiles cashing (for tile layers). To go back to the list of items, press **Hide details**. * **Collectors** - select the users that need to enter the data in this project. To give a user access to the project, mark the row with a tick. ![image](docs_ngweb/source/_static/pick_collectors_en.png) Web GIS administrator can manage the list of available collectors, add or delete them. Keep in mind, that these changes are general Web GIS settings, they are instantly effective, even if you haven’t completed the project creation. Click **Create** to complete the process. The Collector project resource page opens. It is located inside the resource group with the name you set as the project name. ![image](docs_ngweb/source/_static/project_result_en.png) By default this project is displayed in the Collector mobile app as “Collector project”. To set up a custom display name (it’s handy if you have multiple projects going at once), click ![pencil](docs_ngweb/source/_static/button_edit.png) Update in the right menu and enter a new name (see [Fig. 635.](#ngc-proj-name-pic)). Click on the group name to navigate to that group. There, you’ll find three resource with default names: Collector project, Web Map with the same list of layers as the project, and a standard basemap. ![image](docs_ngweb/source/_static/project_group_result_en.png) For all editable layers added to the project, a style and a form are created if they hadn’t been added beforehand. You can edit them by clicking “Edit” on the resource page on in the resource list. If you’re an experienced user and wish to fine-tune the project as you’re creating it, you can use the standard resource creation dialog. ### Advanced Collector project creation An alternative way to create a Collector project is via the standard resource creation dialog. Go to the resource group where you want to create a project, click **Create resource** and select «Collector project»: ![image](docs_ngweb/source/_static/select_create_collector_project_en.png) Name your project. This name will be displayed in the [NextGIS Collector](https://play.google.com/store/apps/details?id=com.nextgis.collector) mobile app : ![image](docs_ngweb/source/_static/ngc_proj_name_en.png) In the “Project” tab select “Starting screen”. The starting screen in the [NextGIS Collector](https://play.google.com/store/apps/details?id=com.nextgis.collector) mobile app could be a list of forms or a map. ![image](docs_ngweb/source/_static/ngc_proj_tab_en_2.png) On the Items tab you can Add items, Group them, Delete (X symbol on the right) and change the order by dragging items in the list. ![image](docs_ngweb/source/_static/ngc_items_tab_add_en.png) Click on the item to see its attributes. ![image](docs_ngweb/source/_static/ngc_items_tab_en.png) Then on the “Collectors” tab tick the users participating in the project to give them permissions: ![image](docs_ngweb/source/_static/ngc_list_collectors_en_2.png) Web GIS administrators can manage the list of available collectors in this section or in the [Control panel](https://docs.nextgis.com/docs_ngweb/source/collector.html#ngw-collector-add-members). Click **Create**. As a result a Collector project (data collection project) will be created. You can have unlimited number of projects in your Web GIS. In each of them you can restrain or allow access for a particular set of users from the data collection participants list. ## Form for data collection Data collected by field workers is stored in a vector layer. For a vector layer you can create a data collection form as a child resource. It provides a user-freindly interface viewed in the Collector app. Forms are automatically created to editable vector layers added to a Collector project. To create a new form: * [upload a vector file](https://docs.nextgis.com/docs_ngweb/source/layers.html#ngw-process-create-vector-layer) * or create [an empty vector layer with fitting geometry](https://docs.nextgis.com/docs_ngweb/source/layers.html#ngw-create-empty-vector-layer). Open the resource page of the layer, click **Create resource** and select “Form”. ![image](docs_ngweb/source/_static/ngweb_create_form_en.png) In the opened window on the Form tab you have two options: * build a form; * upload a NGFP file. To create a new form in the online builder, drag the elements from the list on the left to the middle field. Click on the element to modify it and select the field in which this data will be stored. If your layer already has attributes, you can select the corresponding field for each element as you add it to the layout. ![image](docs_ngweb/source/_static/form_select_field_en.png) Or, you can add new fields for the elements. This allows to create an empty layer, then set its structure by creating a form. ![image](docs_ngweb/source/_static/form_add_field_en.png) If you tick **Add absent fields to layer**, new fields for the added elements will be added to the layer. Click on the element in the central section to view and modify its properties. More on [properties of each element type](https://docs.nextgis.com/docs_ngweb/source/form_elements.html). ![image](docs_ngweb/source/_static/form_build_en.png) You can set a display name on the Resource tab and add description and metadata on the corresponding tabs. Click **Create** to finish the process. You’re redirected to the page of the form resource where you can preview the newly created form. ![image](docs_ngweb/source/_static/form_result_en.png) Next you can: * create a [data collection project](https://docs.nextgis.com/docs_ngweb/source/collector.html#ngw-collector-create-project); * or [add the layer to NextGIS Mobile](https://docs.nextgis.com/docs_ngmobile/source/ngw_integration.html#ngmobile-add-layer-webgis), the form will be available for editing data in the app. Form can be **edited**. Press the pencil icon next to it or open the resource page and click **Edit**. If the form was uploaded from a file, on the Form tab select Design form from the dropdown menu. After a form is modified, select “Change project” and re-join the project. The new form will be uploaded, allowing you to continue collecting data to the same layer. You can have **multiple** forms for one layer. Include different forms in different Collector projects or add several forms for one layer in one project. #### SEE ALSO Seems confusing? Check out our tutorial [Collect Spatial Data in the Field](https://docs.nextgis.com/docs_howto/source/tutorial_collect.html) that guides you through the whole process step-by-step. # common.html.md # General issues * [How to order data](order.md) * [Select area](order.md#select-area) * [Select data type](order.md#select-data-type) * [Select format](order.md#select-format) * [Select layers](order.md#select-layers) * [Purchase](order.md#purchase) * [Download data](order.md#download-data) * [How to switch accounts](logout.md) * [How to open the entire map (project)](open_map.md) * [How to order printable map](order_printmap.md) * [Select area](order_printmap.md#select-area) * [Page settings](order_printmap.md#page-settings) * [Purchase](order_printmap.md#purchase) * [Download data](order_printmap.md#download-data) * [How to open a particular layer](open_layer.md) * [How to find the object I need on OpenStreetMap](osm_search.md) * [How to get coordinates of a target object](coord.md) * [How to get municipal boundaries for a target region](district.md) * [How to select all of my city’s hospitals on the map](hospital.md) * [How to prepare map for printing](print.md) * [How to change the language of labels in OSM data](label_lang.md) * [NextGIS Data extracts](extracts.md) * [How the files are organized](extracts.md#how-the-files-are-organized) * [Attributes in OpenStreetMap extracts](extracts.md#attributes-in-openstreetmap-extracts) * [Attributes of other products](extracts.md#attributes-of-other-products) # component.html.md # Components and environment Для обеспечения модульности в NGW используются разделение на компоненты. Один python-пакет может содержать один или несколько компонентов. Каждый компонент является наследником класса `Component`, а для загрузки соответствующих модулей используются точки входа (entry points) setuptools. ```python def pkginfo(): return dict(components=dict( somecomp='somepackage.somecomp')) setup( name = 'somepackage', entry_points = {'nextgisweb.packages': 'somepackage = somepackage:somemod:pkginfo'} ) ``` У каждого компонента есть идентификатор (`somecomp` в примере выше). Так же этот идентификатор указываетс в атрибуте класса `identity`. Этот идентификатор должен быть уникален в рамках всех пакетов NGW. Для объединения компонентов в единое целое используется объект-окружение, экземпляр класса `Env`, который создается на этапе инициализации. Инициализация происходит следующим образом: 1. Создаются экземпляры компонентов 2. Для каждого компонента вызывается `initialize()` 3. Для каждого компонента вызывается `configure()` ## Component dependency Вызовы методов `initialize()` и `configure()` осуществляются с учетом зависимостей, которые могут быть указаны при помощи декоратора `require()`. Таким образом, если необходимо вызывать `initialize()` компонента `B` после `A`, то выглядеть это будет следующим образом: ```python from nextgisweb.component import Component, require class A(Component): identity = 'A' def initialize(self): pass class B(Component): identity = 'B' @require('A') def initialize(self): pass ``` ## Global environment object ## Component class ## Env class # component.html.md # Components and environment NGW uses components for modularity. One python-пакет can contain one or several components. Each component inherits class `Component`, to load packages setuptools entry points are used. ```python def pkginfo(): return dict(components=dict( somecomp='somepackage.somecomp')) setup( name = 'somepackage', entry_points = {'nextgisweb.packages': 'somepackage = somepackage:somemod:pkginfo'} ) ``` Each component has an ID (`somecomp` in an example above). The same ID is used in a class attribute `identity`. This ID must be unique among all packages of NGW. To join components together instance of `Env` class is used, created at init. Initialization runs like this: 1. Component instances are created 2. `initialize()` is called for each component 3. `configure()` is called for each component ## Dependencies between components Method calls for `initialize()` and `configure()` happen in accordance with dependencies, which can be set using decorator `require()`. So, is you need to call `initialize()` of component `B` after `A` do this: ```python from nextgisweb.component import Component, require class A(Component): identity = 'A' def initialize(self): pass class B(Component): identity = 'B' @require('A') def initialize(self): pass ``` ## Global env object ## Component class ## Env class # configure.html.md # Configuration There are two ways to configure NextGIS Web exist: 1. Configuration files. 2. Environment variables. #### NOTE Don’t forget to restart NextGIS Web after changes. They don’t affect configuration until NextGIS Web restart. ## Cofiguration files Configuration files were mentioned in the Install section. They follow ini-style syntax and consist of `environment` section and per-component sections. The `environment` section configures packages, components, and logging, for example: ```ini [environment] package.nextgisweb_basemap = false compoent.social = false ``` Component sections configure component specific options, for example: ```ini [file_upload] max_size = 8589934592 tus.enabled = true ``` The list of possible options and configuration file template can be obtained using the `nextgisweb-config` command: ```bash $ nextgisweb-config environment # For environment section $ nextgisweb-config sentry # For sentry component $ nextgisweb-config # All available options ``` The output example is given below. You can copy this template and uncomment needed options, which start with a semi-colon. ```ini ### Component 'file_upload' [file_upload] ## Option: path (text) ; path = ## Option: max_size (size_in_bytes) (default: 8G) ; max_size = 8G ## Option: chunk_size (size_in_bytes) (default: 16M) ; chunk_size = 16M ``` It’s possible to store all configuration in one file or use multiple files. To point NextGIS Web to a specific configuration file, the environment variable `NEXTGISWEB_CONFIG` is used or the `--config` command-line option (when applicable). The `--config` option takes priority over the `NEXTGISWEB_CONFIG` environment variable. So when the `--config` option is given, the `NEXTGISWEB_CONFIG` environment variable will be ignored. Multiple configuration files can be separated by a colon, and they are merged during the load. ```bash # NEXTGISWEB_CONFIG environment variable $ export NEXTGISWEB_CONFIG=some/config.ini:other/config.ini # Or --config command-line option $ nextgisweb --config some/config.ini:other/config.ini ... ``` The last file has more priority than the first one. If some option is used by both (the first and the last one) files, and only value from the last one will be used. ## Environment variables Another way to configure NextGIS Web is using environment variables. It’s interchangeable with configuration files, and everything that can be configured with configuration files also can be configured using environment variables. The conversion rules are quite simple: * Variable names follow the template: * `NEXTGISWEB__ENVIRONMENT__KEY` for `environment` section. * `NEXTIGSWEB__COMPONENT__KEY` for component options. * All component names and keys are in upper case, and dots are replaced with two underscores (`__`). In this way, the following configuration file and environment variables are equivalent. ```ini [some_component] first.key = foo second.key = bar ``` ```bash NEXTGISWEB__SOME_COMPONENT__FIST__KEY=foo NEXTGISWEB__SOME_COMPONENT__SECOND__KEY=bar ``` The `nextgisweb-config` can generate the template in environment variables format using option `--env-vars`. For example, command `nextgisweb-config --env-vars file_upload` will generate something like this: ```bash ### Component 'file_upload' ## Option: path (text) # NEXTGISWEB__FILE_UPLOAD__PATH= ## Option: max_size (size_in_bytes) (default: 8G) # NEXTGISWEB__FILE_UPLOAD__MAX_SIZE=8G ## Option: chunk_size (size_in_bytes) (default: 16M) # NEXTGISWEB__FILE_UPLOAD__CHUNK_SIZE=16M ``` # connect2ngw.html.md # How to upload data to NextGIS Web with NextGIS Connect * [Order data](https://data.nextgis.com/en/) for your area of interest in Geopackage format (QGIS). * Go to the [orders](https://data.nextgis.com/en/orders/actual/) page and download the archive when it’s complete. * **Unpack** the archive. * Download and install [QGIS](https://qgis.org/en/site/forusers/download.html). * Launch QGIS. To open a preset GIS project (which includes all layers with customized styles), click “Project” > “Open” and in pop-up window select the saved file “data.qgs”. ![image](docs_data/source/_static/open_map1_en.png) * The project will be added to QGIS. ![image](docs_data/source/_static/open_map2_en.png) * To transfer GIS project from QGIS to NextGIS Web special plugin is needed. In Menu Toolbar select “Plugins” > “Manage and Install Plugins”. In pop-up window type “NextGIS Connect” into Search field. Check the box next to the plugin to activate it. ![image](docs_data/source/_static/connect2ngw1_en.png) * NextGIS Connect panel will appear. You can also call this panel via ![logo_connect](docs_data/source/_static/logo_connect.png) button from the toolbar. ![image](docs_data/source/_static/panel-no-connections_en.png) * Set connection to your Web GIS: press “Settings” button ![gear icon](docs_data/source/_static/button_settings.png), then in pop-up window press “New”, in next pop-up window fill in all the fields with the details of your Web GIS and press “Save”. If needed, add authentication configuration with your NextGIS ID login and password. Press “Close” to finish settings. ![image](docs_data/source/_static/create_connection_en.png)![image](docs_data/source/_static/auth_config_create_en_2.png) * In NextGIS Connect panel resources from your Web GIS are displayed now. ![image](docs_data/source/_static/connect_panel_en_2.png) * Select Resource group which will host GIS project, press ![button_to_wg](docs_data/source/_static/button_to_wg.png) “Add to Web GIS” button and select “Import current project” from drop-down list. ![image](docs_data/source/_static/connect2ngw6_en.png) * Web map with preset project will appear in your Web GIS ![image](docs_data/source/_static/connect2ngw7_en.png) # connections.html.md # WFS, WMS, TMS layers NextGIS Web allows to add data from external sources using standard protocols: * [WFS](https://docs.nextgis.com/docs_ngweb/source/connections.html#ngw-fws-in), * [WMS](https://docs.nextgis.com/docs_ngweb/source/connections.html#ngw-wms-in), * [TMS](https://docs.nextgis.com/docs_ngweb/source/connections.html#ngw-tms-in). Also, you can make a [layer based on a PostGIS database](https://docs.nextgis.com/docs_ngweb/source/postgis_details.html). ## WFS [WFS](../../glossary.md#term-WFS) allows to get data published on third-party GIS servers (arcgis, geoserver etc), apply custom styles to them and add them to Web Maps. First you need to create a WFS connection. ### WFS connection Click **Create resource** button and select **WFS connection**. ![image](docs_ngweb/source/_static/ngweb_create_wfs_conn_en.png) Next you can enter a custom name that will be displayed in the resource list. ![image](docs_ngweb/source/_static/wfs_connection_name_en.png) Also you can add [Description and metadata](https://docs.nextgis.com/docs_ngweb/source/edit_resource.html#ngw-update-info-metada). On the “WFS connection” tab enter the parameters that will be used to connect to the **WFS server** providing the data: * URL * Username * Password * WFS version ![image](docs_ngweb/source/_static/wfs_connection_set_en.png) If the version you selected is not supported, you’ll get an error message after clicking **Create**: ![image](docs_ngweb/source/_static/wfs_connection_error_en.png) Next you can create WFS layer resource. ### WFS Layer **WFS Layer** is added using an existing WFS connection. Select the resource type in the **Create resource** menu. ![image](docs_ngweb/source/_static/ngweb_create_wfs_layer_en.png) In the opened window in the “WFS layer” tab select the WFS connection you created. Next select the layer and the geometry field. SRID will be added automatically. ![image](docs_ngweb/source/_static/wfs_layer_settings_en.png) On the “Resource” tab you can set a custom name for the resource. Also you can add [Description and metadata](https://docs.nextgis.com/docs_ngweb/source/edit_resource.html#ngw-update-info-metada). To add a WFS layer to a Web Map, you need to create a style for it. You can create a default QGIS style or [a custom QGIS or Mapserver style](https://docs.nextgis.com/docs_ngweb/source/mapstyles.html) using “Create resource” menu. ![image](docs_ngweb/source/_static/wfs_layer_result_en.png) ## WMS #### NOTE Currently supported WMS versions are 1.1.1 and 1.3.0. NextGIS Web is a [WMS](../../glossary.md#term-WMS) client. To connect a WMS layer you need to know its address and coordinate system. Make sure this SRS is [added to your Web GIS](https://docs.nextgis.com/docs_ngweb/source/ngw_srs.html). See how to add WMS with local CRS in our video: Watch on [youtube](https://youtu.be/dYvOnKSSqBQ?si=kXYVFnqFXw3IN3kI). ### WMS Connection To add a WMS layer you need to create a resource called WMS connection. You may create a single connection for many layers. Click **Create resource** button and select **WMS connection**. ![image](docs_ngweb/source/_static/ngweb_create_wms_conn_en.png) Enter the name of the resource that will be displayed in the administrator interface. Not to be confused with layer name in a database. “Keyname” field is optional. ![image](docs_ngweb/source/_static/create_wms_connection_name_en.png) Also you can add [Description and metadata](https://docs.nextgis.com/docs_ngweb/source/edit_resource.html#ngw-update-info-metada). On the “WMS connection” tab enter the following WMS server connection parameters: * URL * Username * Password * Version of WMS protocol * Capabilities (manages GetCapabilities queries to the WMS Server) * Referer - optional HTTP header field required to access some services * Skip SSL/TLS certificate verification URL field needs to be filled, others are used when necessary. ![image](docs_ngweb/source/_static/create_wms_connection_url_en_2.png) After setting up all necessery parameters, click **Create**. ### WMS layer Now you can add WMS layers. Open the resource group where you want to create the layer. Click **Create resource** button and select **WMS layer**. ![image](docs_ngweb/source/_static/ngweb_create_wms_layer_en.png) Enter display name that will be visible in administrator interface and in the map layer tree. ![image](docs_ngweb/source/_static/create_wms_layer_name_en.png) Tile cache settings are described in details [in this section](https://docs.nextgis.com/docs_ngweb/source/mapstyles.html#tile-cache). Switch to the “WMS layer” tab set up the following parameters: * WMS connection that was created earlier. * MIME-type from the dropdown list. * Select the required layers from the list by clicking the underlined names. You can select several layers. * Remote SRS - if the server supports serveral SRS, you can pick one from a dropdown list. SRS absent from your Web GIS are displayed in grey. Click **Add to Web GIS** to add the SRS and use it. [More on additional SRS](https://docs.nextgis.com/docs_ngweb/source/ngw_srs.html#custom-spacial-reference-systems). You can check if this coordinate system is available for a particular layer by making a `GetCapabilites` request to a server and examining the response. * Vendor parameters - optional ![image](docs_ngweb/source/_static/create_wms_layer_parameters_en_3.png)![image](docs_ngweb/source/_static/create_wms_layer_select_res_en.png) Vendor parameters are special query settings for additional functions. They vary depending on the WMS provider. ![image](docs_ngweb/source/_static/create_wms_layer_vendorparam_en.png) Also you can add [Description and metadata](https://docs.nextgis.com/docs_ngweb/source/edit_resource.html#ngw-update-info-metada). After setting up all necessery parameters, click **Create**. #### WARNING Identification requests to external WMS layers from Web Maps are not supported yet. ## TMS To add data from external sources using [TMS](../../glossary.md#term-TMS) protocol, first create TMS connection. #### NOTE Data uploaded to NextGIS Web, can also be [added to external application via TMS](https://docs.nextgis.com/docs_ngweb/source/external.html). ### TMS connection To add a TMS layer, you first need to create a [TMS](../../glossary.md#term-TMS) connection. Click on **Create resource** button and select **TMS connection** (see [Fig. 507.](#tms-connection-create)). ![image](docs_ngweb/source/_static/ngweb_create_tms_conn_en.png) Enter the connection name that will be displayed in the administrator interface (see [Fig. 508.](#tms-connection-name)). ![image](docs_ngweb/source/_static/TMS_connection_name_en_3.png) Also you can add [Description and metadata](https://docs.nextgis.com/docs_ngweb/source/edit_resource.html#ngw-update-info-metada). On the TMS connection tab you need to select the way to connect to the TMS server - custom or via NextGIS GeoServices (see [Fig. 509.](#tms-connection-type)). ![image](docs_ngweb/source/_static/TMS_connection_type_en_3.png) In the case of a custom connection method, the user must specify the URL template, API key parameters if needed and the tile scheme used. For NextGIS GeoServices, only a custom API key is specified. After filling in all fields click **Create** to complete the process of creating a **TMS Connection** resource. ### TMS layer **TMS layer** resource is created using previously created **TMS Connection**. Click on **Create resource** button and select **TMS layer** (see [Fig. 510.](#tms-layer-create)). ![image](docs_ngweb/source/_static/ngweb_create_tms_layer_en.png) Enter the name that will be displayed in the administrator interface (see [Fig. 511.](#tms-layer-name)). ![image](docs_ngweb/source/_static/TMS_layer_name_en_3.png) Caching provides faster rendering of Web Map layers. Tile cache settings are described in details [in this section](https://docs.nextgis.com/docs_ngweb/source/mapstyles.html#tile-cache). The main display settings are on the TMS layer tab (see [Fig. 512.](#tms-layer-settings-pic)): * TMS connection - select a TMS connection resource that was created earlier; * The range of zoom levels for data display; * The extent in degrees; * Tile size in pixels. ![image](docs_ngweb/source/_static/TMS_layer_settings_en_3.png) After creating a TMS layer, the user can add it to the Web Map to display. No style is needed. # connectpoints.html.md # Connect Points Create lines connecting two point layers using matching attribute values. Points in one layer are matched to points in another layer with the same value of the specified numeric attribute (e.g. id). After installation you’ll find the plugin in the Plugins toolbar: ![button_connectpoints](docs_ngqgis/source/_static/button_connectpoints.png). First open the plugin Settings dialog from its dropdown menu: * Select layer FROM; * Select layer TO; * Select ID field in the FROM layer; * Link field - select the field in the FROM that contains the value to be matched with the attribute in the TO layer; * Select ID field in the TO layer; * Choose the way to save the result: select an existing line layer of the project or enter a name to create a new layer. Press **Ok** to save the settings. In the plugin dropdown menu select **Connect points**. Plugin will generate lines that link the points of the FROM layer to points of the TO layer, with indicated direction. See how the plugin works in our video: Watch on [youtube](https://youtu.be/enD5z4mwsfg?si=CRV60Tm7xaNLVPyY). # convert.html.md # Convert format of vector layer Convert vector layer to other file format. Coordinate refrence system (CRS) is not changing. If output format is ESRI Shapefile, encoding of attributes cast to UTF-8. Input: * Vector layer file or ZIP archive compatible with GDAL library. [List of supported formats](https://docs.nextgis.com/docs_toolbox/source/convert.html#format-list) * Name of output format: ESRI Shapefile, MapInfo TAB, GeoJSON, GPKG, DXF, FlatGeobuf. #### NOTE If uploaded file has incompatible format (for example, single SHP file) an error message will appear. Output: * ZIP archive with vector layers Launch the tool: [https://toolbox.nextgis.com/t/convert](https://toolbox.nextgis.com/t/convert) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. ## Supported input formats * ADBC - Arrow Database Connectivity * AIVector - Artificial intelligence powered vector driver * AmigoCloud - AmigoCloud * Arrow - (Geo)Arrow IPC File Format / Stream * AVCBIN - Arc/Info Binary Coverage * AVCE00 - Arc/Info E00 (ASCII) Coverage * CAD - AutoCAD DWG * CARTO - Carto * CSV - Comma Separated Value (.csv) * CSW - OGC CSW (Catalog Service for the Web) * DGN - Microstation DGN * DGNv8 - Microstation DGN v8 * DWG - AutoCAD DWG * DXF - AutoCAD DXF * EDIGEO - EDIGEO * EEDA - Google Earth Engine Data API * Elasticsearch - Elasticsearch: Geographically Encoded Objects for Elasticsearch * ESRI Shapefile - ESRI Shapefile / DBF * ESRIJSON - ESRIJSON / FeatureService driver * FileGDB - ESRI File Geodatabase (FileGDB) * FlatGeobuf - FlatGeobuf * GDALG - GDALG: GDAL Streamed Algorithm * GeoJSON - GeoJSON * GeoJSONSeq - GeoJSONSeq: sequence of GeoJSON features * GeoRSS - GeoRSS : Geographically Encoded Objects for RSS feeds * GML - Geography Markup Language * GMLAS - Geography Markup Language (GML) driven by application schemas * GMT - GMT ASCII Vectors (.gmt) * GPKG - GeoPackage vector * GPSBabel - GPSBabel * GPX - GPS Exchange Format * GRASS - GRASS Vector Format * GTFS - General Transit Feed Specification * HANA - SAP HANA * IDB - IDB * IDRISI - Idrisi Vector (.VCT) * INTERLIS 1 - “INTERLIS 1” and “INTERLIS 2” drivers * JML - JML: OpenJUMP JML format * JSONFG - OGC Features and Geometries JSON * KML - Keyhole Markup Language * LIBKML - LIBKML Driver (.kml .kmz) * LVBAG - Dutch Kadaster LV BAG 2.0 Extract * MapInfo TAB - MapInfo TAB and MIF/MID * MapML - MapML * MEM - In Memory datasets * Memory - Memory (deprecated) * MiraMonVector - MiraMon Vector * MongoDBv3 - MongoDBv3 * MSSQLSpatial - Microsoft SQL Server Spatial Database * MVT - MVT: Mapbox Vector Tiles * MySQL - MySQL * NAS - ALKIS * netCDF - NetCDF: Network Common Data Form - Vector * NGW - NextGIS Web * OAPIF - OGC API - Features * OCI - Oracle Spatial * ODBC - ODBC RDBMS * ODS - Open Document Spreadsheet * OpenFileGDB - ESRI File Geodatabase vector (OpenFileGDB) * OSM - OpenStreetMap XML and PBF * Parquet - (Geo)Parquet * PDF - Geospatial PDF * PDS - Planetary Data Systems TABLE * PGDump - PostgreSQL SQL Dump * PGeo - ESRI Personal GeoDatabase * PLScenes - PLScenes (Planet Labs Scenes/Catalog API) * PMTiles - PMTiles * PostgreSQL - PostgreSQL / PostGIS * S57 - IHO S-57 (ENC) * Selafin - Selafin files * SOSI - Norwegian SOSI Standard * SQLite - SQLite / Spatialite RDBMS * SXF - SXF * TileDB - TileDB vector * TopoJSON - TopoJSON driver * VDV - VDV-451/VDV-452/INTREST Data Format * VFK - Czech Cadastral Exchange Data Format * VRT - OGR Virtual Format * WAsP - WAsP .map format * WFS - OGC WFS service * XLS - MS Excel format * XLSX - MS Office Open XML spreadsheet * XODR - OpenDRIVE Road Description Format # coord.html.md # How to get coordinates of a target object * [Order data](https://data.nextgis.com/en/) for your area of interest, e.g. in GeoPackage (QGIS) format. * Go to the [orders](https://data.nextgis.com/en/orders/actual/) page and download the archive when it’s complete. * **Unpack** the archive. * Add a layer with target object to [QGIS](https://qgis.org/en/site/forusers/download.html). * Find target object on the map (or through attribute table) and select it. Selected point object is highlighted with yellow on the map and with blue – in attribute table. If you selected an object through the map, use “Move selection to top” button to locate it in attribute table. ![image](docs_data/source/_static/select_feature_move_top_en.png) * Do not deselect feature in attribute table and press “Ctrl + C” (it allows to copy all attributes of a target object) and then paste it into any text or table editor or processor. In a very first column named “wkt_geom” you will find coordinates of one or several points (if your target object is a line or polygon), belonging to the object. ![image](docs_data/source/_static/paste_coordinates_en.png) * If desired it is possible to get coordinates of the middle of a line object. Select target object through the map or attribute table. ![image](docs_data/source/_static/coord_select_line_en.png) * Then in a Processing Toolbox Panel (press “Ctrl+Alt+T” to display) find and select GDAL/OGR algorithm “Create points along lines”. In pop-up window choose a layer with a target object as an “Input layer”. For shapefiles set “geometry” into “Geometry column name” field. Set “0.5” into “Distance from line start…” field. Press “Run”. If you only need the middle of one particular feature of the layer, tick “Selected feature”. ![image](docs_data/source/_static/coord_points_along_lines_en.png) * As a result new layer is created with a point located exactly in a middle of target line. To get point’s coordinates please see instruction above. ![image](docs_data/source/_static/coord_middle_en.png) * If desired it is possible to get coordinates of the center of a polygon object. Install plugin “realcentroid”. Then select target object through the map or attribute table. Launch “realcentroid” plugin. In pop-up window set layer with a target object, check boxes “Selected features only” and “Add to map canvas”, set name and path for output layer. ![image](docs_data/source/_static/coord_realcentroid_en.png) * As a result new layer is created with a point located in the centre of target polygon. To get point’s coordinates please see instruction above. # coord_recalc.html.md # Reproject coordinates Tool reprojects coordinates of the objects, presented in CSV file, into a given coordinate system. Inputs: * CSV file - file with a list of objects and its coordinates * X coordinate column number - index number of the column in CSV file, where X coordinates are located (longitude). * Y coordinate coordinate column number - index number of the column in CSV file, where Y coordinates are located (latitude). * ID of the first row - index number of the row, from which reprojection should be applied. * Source CRS - coordinate reference system, used in source CSV. Should be specified in proj4 format (e.g. `+proj=longlat +ellps=WGS84 +datum=WGS84 + no_defs`). * Target CRS - coordinate reference system into which data will be reprojected. Should be specified in proj4 format (optional, by default `+proj=longlat +ellps=WGS84 +datum=WGS84 + no_defs` will be applied). Output: * CSV with added reprojected coordinates. Launch the tool: [https://toolbox.nextgis.com/t/coord_recalc](https://toolbox.nextgis.com/t/coord_recalc) Example: ![image](docs_toolbox/source/_static/coord_recalc_input.png)![image](docs_toolbox/source/_static/coord_recalc_result.png) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # coords2poly.html.md # Coordinates to polygon Create polygon geometry from Excel or CSV file with lat/lon columns. Inputs: * Source file. Input table with lat/lon columns, supported formats: XLSX,XLS,CSV; * Output format. Select one of the options: GPKG, GEOJSON, SHP, TAB; * Columns order. Check if the order of the columns is **Lat/Lon**. Default order: Lon/Lat. Outputs: * Geodata in the selected format. Launch the tool: [https://toolbox.nextgis.com/t/coords2poly](https://toolbox.nextgis.com/t/coords2poly) Example: ![image](docs_toolbox/source/_static/coords2poly_result_en.png) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # copycoords.html.md # Copy_Coords This plugin captures map coordinates of the click to paste them into a spreadsheet. No key combinations needed. After installation you’ll find the plugin in the Plugins toolbar: ![button_copy_coord](docs_ngqgis/source/_static/button_copy_coord.png) Also you can activate the module via menu ``` :menuselect:`Plugins ‣ Copy_Coords ‣ Copy coordinates` ``` . When the plugin is active, your cursor becomes a green arrow. Click on the map to copy the coordinates to the clipboard. Paste from the clipboard as usual. Coordinates are copied in the project CRS. Use SHIFT to copy coordinates in EPSG:4326 (WGS 1984) independently from what your current CRS is. You can check out how the plugin works in our video: Watch on [youtube](https://youtu.be/ISH2bB6quB4?si=zrfCB-6KWaJLGKQe). # cors.html.md # Cross-origin resource sharing (CORS) #### NOTE This functionality is available only to nextgis.com [Mini and Premium users](https://nextgis.com/pricing-base/). If you’re a developer and would like to use your Web GIS as a backend for your own map or an app, you can switch on and set up [CORS](../../glossary.md#term-CORS). This mode allows to use data from Web GIS for a map or system on your ogranization’s domain, while all geodata uploads and management pains will be taken care of by your Web GIS at nextgis.com. In your Web GIS Control panel go to “Cross-origin resource sharing (CORS)” section and enter allowed origins for cross-domain requests on CORS Settings page, one origin per line. Press **Save**. ![image](docs_ngweb/source/_static/CORS_settings_eng.png) Please note that different protocols (HTTP and HTTPS) and subdomains (example.com and www.example.com) are different origins. Wildcards are allowed for third-level domains and higher. # count_tiles.html.md # Count TMS tiles for polygon Calculates the number of TMS tiles for a given vector polygon. Inputs: * Boundary polygon vector file in OGR format or ZIP-archive with single layer. Geometry: polygon or multipolygon. Only the frist feature of the layer is used. Outputs: * Text output listing the number of tiles for each zoom layer and the total tile count. Launch the tool: [https://toolbox.nextgis.com/t/count_tiles](https://toolbox.nextgis.com/t/count_tiles) Example: ![image](docs_toolbox/source/_static/count_tiles_input_en.png) Example output: ```default 0: 1 1: 1 2: 1 3: 1 4: 1 5: 1 6: 1 7: 1 8: 1 9: 2 10: 2 11: 2 12: 2 13: 3 14: 3 15: 5 16: 14 17: 47 18: 148 19: 491 Total: 728 ``` **Try the tool in action:** **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # create.html.md # Account ## How to create account (NextGIS ID) Before you can start working with your [Web GIS](description.md#ngcom-description) you need to create an account (NextGIS ID). NextGIS ID is required to access all NextGIS Services, including Web GIS service. To sign up, use [this link](https://my.nextgis.com/signup/) or press **Sign in** on the main page of the [nextgis.com](https://nextgis.com/) Web site (see [Fig. 1.](#nextgis-main-page-pic)): ![image](docs_ngcom/source/_static/NextGIS_main_page_en.png)![image](docs_ngcom/source/_static/ngid_signup_signin_en.png) Press **Create account** and enter your email, it will be your login for NextGIS services. ![image](docs_ngcom/source/_static/ngid_create_email_en.png) Click **Continue**. An email verification code will be sent to the address you entered. ![image](docs_ngcom/source/_static/ngid_create_confirm_en.png) Enter the verification code and click **Verify**. You can request a new code after two minues. If you realise you’ve made a typo in the email address, click **Sign up with another email**. After verifying your email enter the name that will be indicated in your profile and select a country from the dropdown list to see the correct information on available payment methods. ![image](docs_ngcom/source/_static/ngid_userinfo_en.png) On the next step enter a password, confirm that you agree to [Terms of Service](https://nextgis.com/terms/) and [Privacy Policy](https://nextgis.com/privacy/) and then click **Create account** to complete the process. Password must be at least 8 characters long and include one lowercase letter, one uppercase letter, one number, and one of special characters: `! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ ] ^ ` { | } ~ _`. ![image](docs_ngcom/source/_static/ngid_set_password_en.png) #### NOTE Also you can create a NextGIS ID by signing in with your Google account. After clicking the **Create account** button you’ll be redirected to the page where you can [create a Web GIS](https://docs.nextgis.com/docs_ngcom/source/create_webgis.html). #### WARNING You will not be able to create Web GIS and access other NextGIS services until you confirm your email address. To verify your email account click **Create Web GIS** button, then click **Send the email again** link in the “Please confirm your E-mail” window (see [Fig. 7.](#confirm-email-pic)). Check your email, you should receive a letter with an account confirmation link. When you receive the letter, click on the link to confirm your email address. ![image](docs_ngcom/source/_static/Confirm_email_en.png) ## Sign-in via NextGIS ID NextGIS ID is used to log in to your [account profile](https://my.nextgis.com), your Web GIS, [Toolbox](https://toolbox.nextgis.com/) and other NextGIS services (see [full list below](https://docs.nextgis.com/docs_ngcom/source/create.html#ngcom-ngid-use)). After selecting sign-in with NextGIS ID, you’ll be redirected to the following page: ![image](docs_ngcom/source/_static/ngid_signup_signin_en.png) Enter the email address you used for creating your account and press **Continue**. On the next page enter the password and press **Sign in**. ![image](docs_ngcom/source/_static/ngid_enter_password_en.png) The process of logging in varies depending on particular software and services, see [Where can I use NextGIS ID](https://docs.nextgis.com/docs_ngcom/source/create.html#ngcom-ngid-use). ## Change or recover NextGIS ID password If you: * forgot your password; * want to set a different password; * have signed up with Google, but now want to use NextGIS Connect plugin go to [Password Recovery page](https://my.nextgis.com/password/reset/?email=). ![image](docs_ngcom/source/_static/ngid_reset_en.png) Enter the email address you used to create NextGIS ID. You’ll receive an email with further instructions. ## My account After logging in to your [account](https://my.nextgis.com/profile) you can: * Modify your personal information; * Manage your subscription; * [Create a Web GIS](https://docs.nextgis.com/docs_ngcom/source/create_webgis.html) (after confirming your email address); * Download NextGIS software installers; * View [the list of teams](https://docs.nextgis.com/docs_ngcom/source/teams.html#ngcom-team-view) that you are a member of; * [Manage your team](https://docs.nextgis.com/docs_ngcom/source/teams.html#ngcom-team-management) (available on [Premium](https://nextgis.com/pricing-base/)); * Bind NGID on-premise identifier. ### Profile You’ll find your profile on [https://my.nextgis.com/profile](https://my.nextgis.com/profile). ![image](docs_ngcom/source/_static/ngid_profile_en.png) On the Profile page you can: * Change your username or enter name and surname to be displayed instead of it. * Add company and industry info and phone number. * Select language of the account interface. This setting affects only my.nextgis.com. If you want to choose the language of your Web GIS, go to the [user menu](https://docs.nextgis.com/docs_ngweb/source/admin_interface.html#ngw-change-lang) of the Web GIS. * [Add Telegram account](https://docs.nextgis.com/docs_ngcom/source/create.html#ngcom-ngid-telegram) to get notifications. * Export your account data as CSV files. * [Delete NextGIS ID account](https://docs.nextgis.com/docs_ngcom/source/create.html#ngcom-ngid-profile-del) and personal data associated with it. ### Delete profile To delete your account, go to the Profile page and in the “Profile management” section select **Delete profile**. Your account and personal data will be deleted. #### IMPORTANT This action cannot be undone. ![image](docs_ngcom/source/_static/ngid_delete_en_2.png) ### Get notifications in Telegram messenger Add Telegram account to get notifications about orders you made on [NextGIS Data](https://data.nextgis.com/en/) not just by email (where they may get into spam folder), but also in Telegram. You can also download the data directly from the messenger. In your [Profile](https://my.nextgis.com/profile) go to the “Social Accounts” section and click **Link** by the Telegram logo. You’ll be redirected to the chat bot. Press **Start** to complete linking. ### Software On the Software page of your account you can download online and offline installers for NextGIS mobile apps [NextGIS Collector](https://docs.nextgis.com/docs_collector/source/auth.html#), [NextGIS Mobile](https://docs.nextgis.com/docs_ngmobile/source/auth.html#), [NextGIS Tracker](https://docs.nextgis.com/docs_ngtracker/source/setting_up.html#ngtr-set-send). ![image](docs_ngcom/source/_static/ngid_downloads_en_2.png) ## Where can I use NextGIS ID Cloud services (For on-premise services use [NextGIS ID on-premise](https://docs.nextgis.com/docs_ngid/source/index.html)) * Web GIS created on NextGIS Web To create a Web GIS, go to your [account](https://docs.nextgis.com/docs_ngcom/source/create_webgis.html). You can use NGID to [log in](https://docs.nextgis.com/docs_ngweb/source/admin_interface.html#ngw-admin-login) to your own Web GIS or the Web GIS of the [team owner](https://docs.nextgis.com/docs_ngcom/source/teams.html), if you are added to the team. * [Toolbox](https://docs.nextgis.com/docs_toolbox_prem/source/auth.html#) * [GeoServices](https://docs.nextgis.com/docs_geoservices/source/auth.html#) * [QuckMapServices](https://qms.nextgis.com/about) * Download data ordered on [NextGIS Data](https://data.nextgis.com/en/) Mobile apps * [NextGIS Collector](https://docs.nextgis.com/docs_collector/source/auth.html#) * [NextGIS Mobile](https://docs.nextgis.com/docs_ngmobile/source/auth.html#) * [NextGIS Tracker](https://docs.nextgis.com/docs_ngtracker/source/setting_up.html#ngtr-set-send) Desktop apps * [NextGIS QGIS](https://docs.nextgis.com/docs_ngqgis/source/auth.html#) * [Formbuilder](https://docs.nextgis.com/docs_formbuilder/source/gui.html#ngfb-auth) QGIS plugins * [NextGIS Connect](https://docs.nextgis.com/docs_ngconnect/source/ngc_install.html#ng-connect-new-connection) # create.html.md # Create resource ## Resource group To create new group execute following request. ### POST /api/resource/ Create resource group request. * **Request Headers:** * [Accept](https://www.rfc-editor.org/rfc/rfc7231#section-5.3.2) – must be `*/*` * [Authorization](https://www.rfc-editor.org/rfc/rfc7235#section-4.2) – optional Basic auth string to authenticate * **Request JSON Object:** * **resource** (*jsonobj*) – resource JSON object * **cls** (*string*) – type (must be `resource_group`, for a list of supported types see [Resource classes](resource.md#ngwdev-resource-classes)) * **parent** (*jsonobj*) – parent resource json object * **id** (*int*) – parent resource identifier * **display_name** (*string*) – group name * **keyname** (*string*) – key (optional) * **description** (*string*) – description text, HTML supported (optional) * **Status Codes:** * [201 Created](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/201) – no error **Example request**: ```http POST /api/resource/ HTTP/1.1 Host: ngw_url Accept: */* {"resource": {"cls":"resource_group", "parent":{"id":0}, "display_name":"test", "keyname":"test_key", "description":"qqq" } } ``` Same steps with curl: ```bash curl --user "administrator:demodemo" -H "Accept: */*" -X POST -d '{"resource": {"cls": "resource_group", "display_name": "foldername", "parent": {"id": 0}, "description" : "Folder created from curl"} }' https://sandbox.nextgis.com/api/resource/ ``` ## PostGIS Connection To create PostGIS connection execute following request. ### POST /api/resource/ PostGIS connection create request. * **Request Headers:** * [Accept](https://www.rfc-editor.org/rfc/rfc7231#section-5.3.2) – must be `*/*` * [Authorization](https://www.rfc-editor.org/rfc/rfc7235#section-4.2) – optional Basic auth string to authenticate * **Request JSON Object:** * **resource** (*jsonobj*) – resource JSON object * **cls** (*string*) – type (must be `postgis_connection`, for a list of supported types see [Resource classes](resource.md#ngwdev-resource-classes)) * **parent** (*jsonobj*) – parent resource json object * **id** (*int*) – parent resource identifier * **display_name** (*string*) – name * **keyname** (*string*) – key (optional) * **description** (*string*) – description text, HTML supported (optional) * **postgis_connection** (*jsonobj*) – postgis connection JSON object * **database** (*string*) – Database name * **hostname** (*string*) – Database host * **port** (*string*) – Database port * **password** (*string*) – password * **username** (*string*) – login * **Status Codes:** * [201 Created](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/201) – no error **Example request**: ```http POST /api/resource/ HTTP/1.1 Host: ngw_url Accept: */* { "postgis_connection": { "database": "postgis", "hostname": "localhost", "password": "secret", "username": "user" }, "resource": { "cls": "postgis_connection", "description": "The localhost PostGIS Connection", "display_name": "localhost", "keyname": "localhost_key", "parent": { "id": 0 } } } ``` ## PostGIS Layer To create PostGIS layer execute following request. ### POST /api/resource/ Create PostGIS layer request. * **Request Headers:** * [Accept](https://www.rfc-editor.org/rfc/rfc7231#section-5.3.2) – must be `*/*` * [Authorization](https://www.rfc-editor.org/rfc/rfc7235#section-4.2) – optional Basic auth string to authenticate * **Request JSON Object:** * **resource** (*jsonobj*) – resource JSON object * **cls** (*string*) – type (must be `postgis_layer`, for a list of supported types see [Resource classes](resource.md#ngwdev-resource-classes)) * **parent** (*jsonobj*) – parent resource json object * **id** (*int*) – parent resource identifier * **display_name** (*string*) – name * **keyname** (*string*) – key (optional) * **description** (*string*) – description text, HTML supported (optional) * **postgis_layer** (*jsonobj*) – postgis layer JSON object * **column_geom** (*string*) – geometry column name (usually `wkb_geometry`) * **column_id** (*string*) – primary key column (usually `ogc_fid`) * **connection** (*jsonobj*) – PostGIS connection identifier (to create PostGIS connection see [PostGIS Connection](#ngwdev-create-pg-conn)) * **fields** (*string*) – check to reread fields from database (must be `update` or not set) * **geometry_type** (*string*) – geometry type (if null, will read from database table). See ngwdev_geom_types * **schema** (*string*) – table schema * **srs** (*jsonobj*) – spatial reference JSON object * **id** – EPSG code * **table** (*string*) – table name * **Status Codes:** * [201 Created](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/201) – no error **Example request**: ```http POST /api/resource/ HTTP/1.1 Host: ngw_url Accept: */* { "postgis_layer": { "column_geom": "wkb_geometry", "column_id": "ogc_fid", "connection": { "id": 31 }, "fields": "update", "geometry_type": null, "schema": "thematic", "srs": { "id": 3857 }, "table": "roads" }, "resource": { "cls": "postgis_layer", "description": null, "display_name": "test", "keyname": null, "parent": { "id": 0 } } } ``` ## Empty vector layer To create empty vector layer execute following request: ### POST /api/resource/ Create PostGIS layer request. * **Request Headers:** * [Accept](https://www.rfc-editor.org/rfc/rfc7231#section-5.3.2) – must be `*/*` * [Authorization](https://www.rfc-editor.org/rfc/rfc7235#section-4.2) – optional Basic auth string to authenticate * **Request JSON Object:** * **resource** (*jsonobj*) – resource JSON object * **cls** (*string*) – type (must be `vector_layer`, for a list of supported types see [Resource classes](resource.md#ngwdev-resource-classes)) * **parent** (*jsonobj*) – parent resource json object * **id** (*int*) – parent resource identifier * **display_name** (*string*) – name * **keyname** (*string*) – key (optional) * **description** (*string*) – description text, HTML supported (optional) * **vector_layer** (*jsonobj*) – vector layer JSON object * **fields** (*jsonarr*) – array of json objects: * **geometry_type** (*string*) – geometry type. See ngwdev_geom_types * **srs** (*jsonobj*) – spatial reference json object * **id** – [EPSG](../../../glossary.md#term-EPSG) code * **Request JSON Array of Objects:** * **keyname** (*string*) – field name * **datatype** (*string*) – field type. See ngwdev_field_types * **display_name** (*string*) – field alias * **Status Codes:** * [201 Created](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/201) – no error **Example request**: ```http POST /api/resource/ HTTP/1.1 { "resource":{ "cls":"vector_layer", "parent":{ "id":0 }, "display_name":"Foo bar", "keyname":null, "description":null }, "resmeta":{ "items":{ } }, "vector_layer":{ "srs":{ "id":3857 }, "geometry_type": "POINT", "fields": [ { "keyname": "REAL_FIELD", "datatype": "REAL" }, { "keyname": "INTEGER_FIELD", "datatype": "INTEGER" }, { "keyname": "DATE_FIELD", "datatype": "DATE" }, { "keyname": "TIME_FIELD", "datatype": "TIME", "display_name": "TIME FIELD" } ] } } Same steps with curl: ``` ```bash ``` curl -d ‘{ “resource”:{“cls”:”vector_layer”, “parent”:{“id”:0}, “display_name”:”new”}, “vector_layer”:{“geometry_type”:”LINESTRING”,”srs”:{“id”:3857}, “fields”:[{“keyname”:”fieldname1”,”datatype”:”STRING”,”display_name”:”fld1”}]} }’ -u administrator:demodemo -X POST https://sandbox.nextgis.com/api/resource/ ## Vector layer with data Vector layer creation from geodata source ([Shapefile](../../../glossary.md#term-Shapefile), [GeoJSON](../../../glossary.md#term-GeoJSON)) consists of following steps: 1. Prepare vector geodata for layer 2. Upload vector geodata 3. Create vector layer ### Preparing vector data To prepare your data export it to ESRI Shapefile or GeoJSON format. Make sure there are no `id` field names. Layer must have spatial reference and `UTF-8` or `CP1251` encoding. Geometry must be valid and exist in all features, field names and values cannot include non-printable characters. ### Uploading vector geodata If geodata is in ESRI Shapefile format, all files must be packed into the one ZIP archive. GeoJSON file can be uploaded without archiving. Geodata uploading details see in [File upload](file_upload.md#ngwdev-file-upload). ### Create vector layer To create vector layer execute following request: ### POST /api/resource/ Create vector layer from uploaded file request. * **Request Headers:** * [Accept](https://www.rfc-editor.org/rfc/rfc7231#section-5.3.2) – must be `*/*` * [Authorization](https://www.rfc-editor.org/rfc/rfc7235#section-4.2) – optional Basic auth string to authenticate * **Request JSON Object:** * **resource** (*jsonobj*) – resource JSON object * **cls** (*string*) – type (must be `vector_layer`, for a list of supported types see [Resource classes](resource.md#ngwdev-resource-classes)) * **parent** (*jsonobj*) – parent resource json object * **id** (*int*) – parent resource identifier * **display_name** (*string*) – name * **keyname** (*string*) – key (optional) * **description** (*string*) – description text, HTML supported (optional) * **vector_layer** (*jsonobj*) – vector layer JSON object * **source** (*jsonobj*) – JSON object with file upload response * **srs** (*jsonobj*) – spatial reference of creating vector layer. Only EPSG:3857 is supported * **id** – EPSG code * **source_layer** (*string*) – source layer name (for multiple layer sources) * **cast_geometry_type** (*string*) – layer geometry type: `POINT`, `LINESTRING` or `POLYGON`. `null` for auto-detect (default) * **cast_is_multi** (*bool*) – is layer geometry multi. `null` for auto-detect (default) * **cast_has_z** (*bool*) – is layer geometry 3D. `null` for auto-detect (default) * **skip_other_geometry_types** (*bool*) – skip features with other geometry types, used if `cast_geometry_type` is specified (default: `false`) * **fix_errors** (*string*) – data errors fix level: `NONE` - do not fix (default), `SAFE` - without losing data, `LOSSY` - whatever possible * **skip_errors** (*bool*) – skip features with unfixable errors (default: `false`) * **fid_source** (*string*) – feature ID source: `SEQUENCE` - ID is counted from 1 (default), `FIELD` - get ID from field (`fid_field` required), `AUTO` - get ID from field if `fid_field` is set, otherwise count from 1 * **fid_field** (*string*) – field from which feature ID is taken (optional) * **Status Codes:** * [201 Created](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/201) – no error **Example request**: ```http POST /api/resource/ HTTP/1.1 Host: ngw_url Accept: */* { "resource": { "cls": "vector_layer", "description": null, "display_name": "ggg www", "keyname": null, "parent": { "id": 0 } }, "vector_layer": { "source": { "encoding": "utf-8", "id": "2f906bf9-0947-45aa-b271-c711fef1d2fd", "mime_type": "application/zip", "name": "ngw1_1.zip", "size": 2299 }, "srs": { "id": 3857 }, "cast_geometry_type": "POLYGON", "cast_is_multi": true, "cast_has_z": false, "skip_other_geometry_types": true, "fix_errors": "LOSSY", "skip_errors": true, "fid_source": "AUTO", "fid_field": "ngw_id" } } ``` Same steps with curl: ```bash $ curl -F file=@/tmp/bld.zip http://demo.nextgis.com/api/component/file_upload/ {"upload_meta": [{"id": "00cc4aa9-cca7-4160-b069-58070dff9399", "name": "bld.zip", "mime_type": "application/octet-stream", "size": 62149}]} $ curl --user "user:password" -H "Accept: */*" -X POST -d '{"resource": {"cls": "vector_layer","description": "test curl create", "display_name": "buildings", "keyname": null,"parent": {"id": 0}},"vector_layer": {"source": {"encoding": "utf-8", "id": "00cc4aa9-cca7-4160-b069-58070dff9399","mime_type": "application/zip","name": "bld.zip", "size": 62149},"srs": {"id": 3857}}}' http://demo.nextgis.com/api/resource/ {"id": 108, "parent": {"id": 0}} ``` Create vector layer in ogr2ogr: ```bash $ ogr2ogr -f NGW -overwrite -t_srs EPSG:3857 -lco "KEY=data" -lco "OVERWRITE=YES" "NGW:https://sandbox.nextgis.com/resource/464/data" PG:"dbname=gis" "data" ``` Ccreate vector layer with data group 464, layer will have name “data”, keyname “data”. Layer will take from local PostGIS database, table name is “data”. ## Feature in vector or PostGIS layer To create new feature in vector layer execute following request: ### POST /api/resource/(*int:* layer_id)/feature/?srs=(*int:* srs) Create feature request * **Parameters:** * **layer_id** – layer resource identifier * **Query Parameters:** * **srs** – EPSG code for input SRS (will be automatically reprojected to destination SRS) * **Request Headers:** * [Accept](https://www.rfc-editor.org/rfc/rfc7231#section-5.3.2) – must be `*/*` * [Authorization](https://www.rfc-editor.org/rfc/rfc7235#section-4.2) – optional Basic auth string to authenticate * **Request JSON Object:** * **geom** (*string*) – geometry in WKT format (geometry type and spatial reference must be corespondent to layer geometry type and spatial reference) * **Request JSON Array of Objects:** * **fields** – attributes array in form of JSON field name - value object * **Response JSON Object:** * **id** (*int*) – new feature identifier * **Status Codes:** * [201 Created](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/201) – no error **Example request**: ```http POST /api/resource/3/feature/ HTTP/1.1 Host: ngw_url Accept: */* { "extensions": { "attachment": null, "description": null }, "fields": { "Age": 1, "DateTr": { "day": 7, "month": 2, "year": 2015 }, "Davnost": 4, "Foto": 26, "Nomerp": 1, "Nomers": 1, "Samka": 0, "Sex": 3, "Sizeb": 0.0, "Sizef": 0.0, "Sizes": 9.19999980926514, "Snowdepth": 31, "Wher": "\u043b\u044b\u0436\u043d\u044f", "id01": 0 }, "geom": "MULTIPOINT (15112317.9207317382097244 6059092.3103669174015522)" } ``` For timestamp field input value must be divided on parts: *day*, *month*, *day*, *hour*, *minute*, *second*. In request payload add only set fields. Other fields will set to default values. **Example response body**: ```json {"id": 25} ``` ## Add attachment to feature Upload attachment as describe in [File upload](file_upload.md#ngwdev-file-upload). Add new attachment to feature in vector layer execute following request: ### POST /api/resource/(*int:* layer_id)/feature/(*int:* feature_id)/attachment/ Add attachment request * **Parameters:** * **layer_id** – layer resource identifier * **feature_id** – feature identifier * **Request Headers:** * [Accept](https://www.rfc-editor.org/rfc/rfc7231#section-5.3.2) – must be `*/*` * [Authorization](https://www.rfc-editor.org/rfc/rfc7235#section-4.2) – optional Basic auth string to authenticate * **Request JSON Object:** * **name** (*string*) – file name * **size** (*int*) – attachment size from upload meta return after uploaded * **mime_type** (*string*) – attachment meta from upload meta return after uploaded * **JSON Parameters:** * **id** (*int*) – upload file identifier from upload meta return after uploaded * **Response JSON Object:** * **id** (*int*) – new attachment identifier * **Status Codes:** * [201 Created](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/201) – no error **Example request**: ```http POST /api/resource/3/feature/1/attachment/ HTTP/1.1 Host: ngw_url Accept: */* { "name": "196.qml", "size": 1401, "mime_type":"application/octet-stream", "file_upload": { "id": "14158d93-3798-4f1f-ba18-f526e86e6e83", "size": 1401 } } ``` **Example response body**: ```json {"id": 7} ``` ## Batch create features in vector layer To create multiple features in vector layer execute following request: ### PATCH /api/resource/(*int:* layer_id)/feature/ Payload is an array of feature definitions, like in POST request Example of curl command to create empty vector layer: ```bash $ curl --user "administrator:demodemo" -H "Accept: */*" -X POST -d '{ "resource":{ "cls":"vector_layer", "parent":{ "id":0 }, "display_name":"Foo bar", "keyname":null, "description":null }, "resmeta":{ "items":{ } }, "vector_layer":{ "srs":{ "id":3857 }, "geometry_type": "POINT", "fields": [ { "keyname": "INTEGER_FIELD", "datatype": "INTEGER" } ] } } ' http://dev.nextgis.com/sandbox/api/resource/ {"id": 994, "parent": {"id": 0}} ``` Example of curl command to upload two features in new vector layer: ```bash $ curl --user "administrator:demodemo" -H "Accept: */*" -X PATCH -d '[{"fields":{"INTEGER_FIELD":26},"geom":"POINT (15112666.6 6059666.6)"}, {"fields":{"INTEGER_FIELD": 27},"geom":"POINT (15112666.6 6059666.6)"}]' http://dev.nextgis.com/sandbox/api/resource/994/feature/ ``` ## Raster layer Raster layer creation consists of following steps: 1. Raster file prepare 2. Upload raster 3. Create raster layer ### Preparing raster data You can upload rasters in GeoTIFF format with 3 (RGB) or 4 (RGBA) bands. GeoTIFF file must have spatial reference, which can project to web map spatial reference (usually EPSG:3857). Value of bands `color interpretation` must be set. Compression (LZW, DEFLATE) can be used to decrease traffic. Pixel values must be between 0 to 255 (8 bit). ### Loading raster Prepared raster can be uploaded. See [File upload](file_upload.md#ngwdev-file-upload). ### Create raster layer To create raster layer execute the following request: ### POST /api/resource/ Create raster layer request. * **Request Headers:** * [Accept](https://www.rfc-editor.org/rfc/rfc7231#section-5.3.2) – must be `*/*` * [Authorization](https://www.rfc-editor.org/rfc/rfc7235#section-4.2) – optional Basic auth string to authenticate * **Request JSON Object:** * **cls** (*string*) – type (must be `raster_layer`, for a list of supported types see [Resource classes](resource.md#ngwdev-resource-classes)) * **parent** (*jsonobj*) – parent resource json object * **id** (*int*) – parent resource identifier * **display_name** (*string*) – name * **keyname** (*string*) – key (optional) * **description** (*string*) – description text, HTML supported (optional) * **source** (*jsonobj*) – JSON object with file upload response * **srs** (*jsonobj*) – spatial reference of creating raster layer * **id** – EPSG code * **Status Codes:** * [201 Created](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/201) – no error **Example request**: ```http POST /api/resource/ HTTP/1.1 Host: ngw_url Accept: */* { "resource": { "cls": "raster_layer", "display_name": "20150820_211250_1_0b0e", "parent": {"id": 101} }, "raster_layer": { "source": { "id": "a2f381f9-8467-477c-87fa-3f71ecb749a5", "mime_type": "image/tiff", "size": 17549598 }, "srs": {"id": 3857} } } ``` Same steps with curl: ```bash $ curl --user "user:password" --upload-file 'tmp/myfile.tif' http://demo.nextgis.com/api/component/file_upload/ {"id": "a2f381f9-8467-477c-87fa-3f71ecb749a5", "mime_type": "image/tiff", "size": 17549598} $ curl --user "user:password" -H "Accept: */*" -X POST -d '{ "resource": { "cls": "raster_layer", "display_name": "20150820_211250_1_0b0e", "parent": { "id": 101 } }, "raster_layer": { "source": {"id": "a2f381f9-8467-477c-87fa-3f71ecb749a5", "mime_type": "image/tiff", "size": 17549598}, "srs": {"id": 3857} } }' http://demo.nextgis.com/api/resource/ {"id": 102, "parent": {"id": 101}} ``` ## File bucket File bucket creation includes 2 steps: 1. Upload files 2. Execute POST request to create file bucket ### File upload Upload files to server. See [File upload](file_upload.md#ngwdev-file-upload). Any file types are supported. ### Create file bucket To create file bucket execute following request: ### POST /api/resource/ Create file bucket request. * **Request Headers:** * [Accept](https://www.rfc-editor.org/rfc/rfc7231#section-5.3.2) – must be `*/*` * [Authorization](https://www.rfc-editor.org/rfc/rfc7235#section-4.2) – optional Basic auth string to authenticate * **Request JSON Object:** * **resource** (*jsonobj*) – resource JSON object * **cls** (*string*) – type (must be `file_bucket`, for a list of supported types see [Resource classes](resource.md#ngwdev-resource-classes)) * **parent** (*jsonobj*) – parent resource json object * **id** (*int*) – parent resource identifier * **display_name** (*string*) – name * **keyname** (*string*) – key (optional) * **description** (*string*) – description text, HTML supported (optional) * **files** (*jsonobj*) – Part of upload JSON response (files == upload_meta) * **Status Codes:** * [201 Created](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/201) – no error **Example request**: ```http POST /api/resource/ HTTP/1.1 Host: ngw_url Accept: */* { "file_bucket": { "files": [ { "id": "b5c02d94-e1d7-40cf-b9c7-79bc9cca429d", "mime_type": "application/octet-stream", "name": "grunt_area_2_multipolygon.cpg", "size": 5 }, { "id": "d8457f14-39cb-4f9d-bb00-452a381fa62e", "mime_type": "application/x-dbf", "name": "grunt_area_2_multipolygon.dbf", "size": 36607 }, { "id": "1b0754f8-079d-4675-9367-36531da247e1", "mime_type": "application/octet-stream", "name": "grunt_area_2_multipolygon.prj", "size": 138 }, { "id": "a34b5ab3-f3a5-4a60-835d-318e601d34df", "mime_type": "application/x-esri-shape", "name": "grunt_area_2_multipolygon.shp", "size": 65132 }, { "id": "fb439bfa-1a63-4384-957d-ae57bb5eb67b", "mime_type": "application/x-esri-shape", "name": "grunt_area_2_multipolygon.shx", "size": 1324 } ] }, "resource": { "cls": "file_bucket", "description": null, "display_name": "grunt_area", "keyname": null, "parent": { "id": 0 } } } ``` **Example response body**: ```json {"id": 22, "parent": {"id": 0}} ``` ## Mapserver style To create mapserver vector style execute following request: ### POST /api/resource/ Create vector layer request. * **Request Headers:** * [Accept](https://www.rfc-editor.org/rfc/rfc7231#section-5.3.2) – must be `*/*` * [Authorization](https://www.rfc-editor.org/rfc/rfc7235#section-4.2) – optional Basic auth string to authenticate * **Request JSON Object:** * **mapserver_style** (*jsonobj*) – Style json object. * **xml** (*string*) – MapServer xml style. Supported tags described in ngw_mapstyles. * **resource** (*jsonobj*) – Resource json object. * **cls** (*string*) – type (must be `mapserver_style`, for a list of supported types see [Resource classes](resource.md#ngwdev-resource-classes)) * **parent** (*jsonobj*) – parent resource json object * **id** (*int*) – parent resource identifier * **display_name** (*string*) – name * **keyname** (*string*) – key (optional) * **description** (*string*) – description text, HTML supported (optional) * **Status Codes:** * [201 Created](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/201) – no error **Example request**: ```http POST /api/resource/ HTTP/1.1 Host: ngw_url Accept: */* { "mapserver_style" : { "xml" : "" }, "resource": { "cls": "mapserver_style", "description": null, "display_name": "grunt area style", "keyname": null, "parent": { "id": 0 } } } ``` **Example response body**: ```json {"id": 24, "parent": {"id": 0}} ``` ## QGIS style To create QGIS vector style for the layer do the following: 1. Upload file with QGIS style to NGW. See [File upload](file_upload.md#ngwdev-file-upload). Get *id*, *mime_type* and *size* from the reply. 2. Create NGW resource via */api/resource/* as shown below: ```http POST /api/resource/ HTTP/1.1 Host: ngw_url Accept: */* { "qgis_vector_style": { "file_upload": { "id": , "mime_type": , "size": } }, "res_meta": { "items": { } }, "resource": { "cls": "qgis_vector_style", "description": null, "display_name": "My QGIS style", "keyname": null, "parent": { "id": } } } ``` ## Raster style To create raster style execute following request: ### POST /api/resource/ Create raster layer request. * **Request Headers:** * [Accept](https://www.rfc-editor.org/rfc/rfc7231#section-5.3.2) – must be `*/*` * [Authorization](https://www.rfc-editor.org/rfc/rfc7235#section-4.2) – optional Basic auth string to authenticate * **Request JSON Object:** * **resource** (*jsonobj*) – resource JSON object * **cls** (*string*) – type (must be `raster_style`, for a list of supported types see [Resource classes](resource.md#ngwdev-resource-classes)) * **id** (*int*) – parent resource identifier * **display_name** (*string*) – name * **keyname** (*string*) – key (optional) * **description** (*string*) – description text, HTML supported (optional) * **Status Codes:** * [201 Created](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/201) – no error **Example request**: ```http POST /api/resource/ HTTP/1.1 Host: ngw_url Accept: */* { "resource": { "cls": "raster_style", "description": null, "display_name": "landsat style", "keyname": null, "parent": { "id": 0 } } } ``` **Example response body**: ```json {"id": 25, "parent": {"id": 0}} ``` ## Lookup table To create lookup table execute following request. ### POST /api/resource/ Create lookup table request. * **Request Headers:** * [Accept](https://www.rfc-editor.org/rfc/rfc7231#section-5.3.2) – must be `*/*` * [Authorization](https://www.rfc-editor.org/rfc/rfc7235#section-4.2) – optional Basic auth string to authenticate * **Request JSON Object:** * **resource** (*jsonobj*) – resource JSON object * **cls** (*string*) – type (must be `lookup_table`, for a list of supported types see [Resource classes](resource.md#ngwdev-resource-classes)) * **id** (*int*) – parent resource identifier * **display_name** (*string*) – name * **keyname** (*string*) – key (optional) * **description** (*string*) – description text, HTML supported (optional) * **resmeta** (*jsonobj*) – metadata JSON object. Key - value JSON object struct. * **lookup_table** (*jsonobj*) – lookup table values JSON object. Key - value JSON object struct. * **Status Codes:** * [201 Created](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/201) – no error **Example request**: ```http POST /api/resource/ HTTP/1.1 Host: ngw_url Accept: */* { "resource": { "cls": "lookup_table", "parent": { "id": 381 }, "display_name": "test_2", "keyname": null, "description": null }, "resmeta": { "items": {} }, "lookup_table": { "items": { "cat": "Машина" } } } ``` **Example response body**: ```json {"id": 25, "parent": {"id": 0}} ``` Same steps with curl: ```bash $ curl --user "user:password" -H 'Accept: */*' -X POST -d '{"resource":{"cls":"lookup_table", "parent":{"id":381},"display_name":"test_3","keyname":null,"description":null},"resmeta": {"items":{}},"lookup_table":{"items":{"cat":"\u041c\u0430\u0448\u0438\u043d\u0430"}}}' http://demo.nextgis.com/api/resource/ {"id": 385, "parent": {"id": 381}} ``` ## Web map To create new web map execute following request. ### POST /api/resource/ **Example request**: ```http POST /api/resource HTTP/1.1 Host: ngw_url Accept: */* { "resource":{ "display_name":"Test webmap", "parent":{ "id":2317 }, "cls":"webmap" }, "webmap":{ "root_item":{ "item_type":"root", "children":[ { "layer_enabled":false, "layer_adapter":"tile", "display_name":"LT05_L1TP_124025_20010603_20161211_01", "layer_style_id":2284, "item_type":"layer" } ] } } } ``` Same steps with curl: ```bash $ curl --user "login:password" -H "Accept: */*" -X POST -d '{"resource": {"display_name": "cwm Вебкарта", "parent": {"id": 2317}, "cls": "webmap"}, "webmap": {"root_item": {"item_type": "root", "children": [{"layer_enabled": false, "layer_adapter": "tile", "display_name": "LT05_L1TP_124025_20010603_20161211_01", "layer_style_id": 2284, "item_type": "layer"}]}}}' http://demo.nextgis.com/api/resource/ ``` ## WMS Service To create new WMS service execute following request. ### POST /api/resource/ Create WMS service request. * **Request Headers:** * [Accept](https://www.rfc-editor.org/rfc/rfc7231#section-5.3.2) – must be `*/*` * [Authorization](https://www.rfc-editor.org/rfc/rfc7235#section-4.2) – optional Basic auth string to authenticate * **Request JSON Object:** * **resource** (*jsonobj*) – resource JSON object * **cls** (*string*) – type (must be `wmsserver_service`, for a list of supported types see [Resource classes](resource.md#ngwdev-resource-classes)) * **id** (*int*) – parent resource identifier * **display_name** (*string*) – name * **keyname** (*string*) – key (optional) * **description** (*string*) – description text, HTML supported (optional) * **resmeta** (*jsonobj*) – metadata JSON object. Key - value JSON object struct. * **wmsserver_service** (*jsonobj*) – JSON object with layers array (required). * **layers** (*jsonarr*) – array or WMS service layers. keyname, display_name and resource_id are mandatory. * **Request JSON Array of Objects:** * **keyname** (*string*) – Key name for WMS service item. Name may be only ASCII symbols without spaces. * **display_name** (*string*) – Service item name. * **resource_id** (*int*) – Resource identifier which will be WMS layer datasource. Supported types are: vector layer style, raster style, WMS layer. * **min_scale_denom** (*string*) – Minimum scale to show WMS layer. String in form of “1 : 100000”. * **max_scale_denom** (*string*) – Maximum scale to show WMS layer. String in form of “1 : 100000”. * **Status Codes:** * [201 Created](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/201) – no error **Example request**: ```http POST /api/resource/ HTTP/1.1 Host: ngw_url Accept: */* { "resource": { "cls": "wmsserver_service", "parent": { "id": 0 }, "display_name": "Test WMS Service", "keyname": null, "description": null }, "resmeta": { "items": {} }, "wmsserver_service": { "layers": [ { "keyname": "image1", "display_name": "Image #1", "resource_id": 127, "min_scale_denom": null, "max_scale_denom": null } ] } } ``` **Example response body**: ```json {"id": 131, "parent": {"id": 0}} ``` Same steps with curl: ```bash $ curl --user "login:password" -H "Accept: */*" -X POST -d '{"resource":{"cls":"wmsserver_service","parent":{"id":0}, "display_name":"test1wms","keyname":null,"description":null}, "resmeta":{"items":{}},"wmsserver_service":{"layers": [{"keyname":"test1","display_name":"test wms layer", "resource_id":127,"min_scale_denom":null,"max_scale_denom":null}]}}' http://demo.nextgis.com/api/resource/ {"id": 131, "parent": {"id": 0}} ``` ## WMS Connection To create new WMS connection execute following request. ### POST /api/resource/ Create WMS connection request. * **Request Headers:** * [Accept](https://www.rfc-editor.org/rfc/rfc7231#section-5.3.2) – must be `*/*` * [Authorization](https://www.rfc-editor.org/rfc/rfc7235#section-4.2) – optional Basic auth string to authenticate * **Request JSON Object:** * **resource** (*jsonobj*) – resource JSON object * **cls** (*string*) – type (must be `wmsclient_connection`, for a list of supported types see [Resource classes](resource.md#ngwdev-resource-classes)) * **id** (*int*) – parent resource identificer * **display_name** (*string*) – name * **keyname** (*string*) – key (optional) * **description** (*string*) – description text, HTML supported (optional) * **resmeta** (*jsonobj*) – metadata JSON object. Key - value JSON object struct. * **wmsclient_connection** (*jsonobj*) – JSON object with connection properties (required). * **url** (*string*) – WMS service url. * **username** (*string*) – User name to connect to service. * **password** (*string*) – Password to connect to service. * **version** (*string*) – WMS version. * **capcache** (*string*) – If equal query - query capabilities from service. * **Status Codes:** * [201 Created](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/201) – no error **Example request**: ```http POST /api/resource/ HTTP/1.1 Host: ngw_url Accept: */* { "resource": { "cls": "wmsclient_connection", "parent": { "id": 0 }, "display_name": "test connection", "keyname": null, "description": null }, "resmeta": { "items": {} }, "wmsclient_connection": { "url": "http://pkk5.rosreestr.ru/arcgis/services/Cadastre/CadastreWMS/MapServer/WMSServer", "username": null, "password": null, "version": "1.1.1", "capcache": "query" } } ``` Same steps with curl: ```bash $ curl --user "login:password" -H "Accept: */*" -X POST -d '{"resource":{"cls":"wmsclient_connection","parent":{"id":0}, "display_name":"test connection","keyname":null,"description":null}, "resmeta":{"items":{}},"wmsclient_connection":{"url":"http://pkk5.rosreestr.ru/arcgis/services/Cadastre/CadastreWMS/MapServer/WMSServer", "username":null,"password":null,"version":"1.1.1","capcache":"query"}}' http://demo.nextgis.com/api/resource/ {"id": 131, "parent": {"id": 0}} ``` ## WMS Layer To create WMS layer from WMS connection execute following request. ### POST /api/resource/ Create WMS layer request. * **Request Headers:** * [Accept](https://www.rfc-editor.org/rfc/rfc7231#section-5.3.2) – must be `*/*` * [Authorization](https://www.rfc-editor.org/rfc/rfc7235#section-4.2) – optional Basic auth string to authenticate * **Request JSON Object:** * **resource** (*jsonobj*) – resource JSON object * **cls** (*string*) – type (must be `wmsclient_layer`, for a list of supported types see [Resource classes](resource.md#ngwdev-resource-classes)) * **id** (*int*) – parent resource identifier * **display_name** (*string*) – name * **keyname** (*string*) – key (optional) * **description** (*string*) – description text, HTML supported (optional) * **resmeta** (*jsonobj*) – metadata JSON object. Key - value JSON object struct. * **wmsclient_layer** (*jsonobj*) – JSON object with layer properties (required). * **connection** (*jsonobj*) – WMS connection. * **imgformat** (*string*) – Image format. Available values can fetched from WMS connection. * **wmslayers** (*string*) – String with layer identifiers separated with comma. Available layers can fetched from WMS connection. * **vendor_params** (*jsonobj*) – Additional parameters added to each request. This is key and value list. * **Status Codes:** * [201 Created](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/201) – no error **Example request**: ```http POST /api/resource/ HTTP/1.1 Host: ngw_url Accept: */* { "resource": { "cls": "wmsclient_layer", "parent": { "id": 0 }, "display_name": "layer1", "keyname": null, "description": null }, "resmeta": { "items": {} }, "wmsclient_layer": { "connection": { "id": 18 }, "srs": { "id": 3857 }, "imgformat": "image/png", "wmslayers": "1,2", "vendor_params": { "key1": "value1" } } } ``` Same steps with curl: ```bash $ curl --user "login:password" -H "Accept: */*" -X POST -d '{"resource":{"cls":"wmsclient_layer","parent":{"id":0}, "display_name":"layer1","keyname":null,"description":null}, "resmeta":{"items":{}},"wmsclient_layer":{"connection":{"id":18}, "srs":{"id":3857},"imgformat":"image/png","wmslayers":"1,2"}}' http://demo.nextgis.com/api/resource/ {"id": 131, "parent": {"id": 0}} ``` ## Tracker To create tracker execute following request. ### POST /api/resource/ Create tracker request. * **Request Headers:** * [Accept](https://www.rfc-editor.org/rfc/rfc7231#section-5.3.2) – must be `*/*` * [Authorization](https://www.rfc-editor.org/rfc/rfc7235#section-4.2) – optional Basic auth string to authenticate * **Request JSON Object:** * **resource** (*jsonobj*) – resource JSON object * **cls** (*string*) – type (must be `tracker`, for a list of supported types see [Resource classes](resource.md#ngwdev-resource-classes)) * **id** (*int*) – parent resource identifier * **display_name** (*string*) – name * **keyname** (*string*) – key (optional) * **description** (*string*) – description text, HTML supported (optional) * **resmeta** (*jsonobj*) – metadata JSON object. Key - value JSON object struct. * **tracker** (*jsonobj*) – JSON object with tracker properties (required). * **unique_id** (*string*) – Tracker unique identifier (usually IMEA or GUID). * **description** – Tracker description. * **device_type** (*string*) – Only supported `ng_mobile`. * **consumption_lpkm** (*float*) – Fuel consumption per 100 kilometers. * **Status Codes:** * [201 Created](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/201) – no error **Example request**: ```http POST /api/resource/ HTTP/1.1 Host: ngw_url Accept: */* { "resource": { "cls": "wmsclient_layer", "parent": { "id": 0 }, "display_name": "layer1", "keyname": null, "description": null }, "resmeta": { "items": {} }, "tracker": { "unique_id": "test-001", "description": "test desc", "device_type": "ng_mobile", "consumption_lpkm": 5.0 } } ``` Same steps with curl: ```bash $ curl --user "login:password" -H "Accept: */*" -d '{"resource":{"cls":"tracker","parent":{"id":4141}, "display_name":"test4","keyname":null,"description":null}, "tracker":{"is_registered":"","unique_id":"971f1-ffc-0f7073", "description":"","device_type":"ng_mobile","consumption_lpkm":null}, "resmeta":{"items":{}}}' http://demo.nextgis.com/api/resource/ {"id": 4206, "parent": {"id": 4141}} ``` # create_other.html.md # Creating other types of resources ## Lookup table To create a lookup table navigate to the group, where you want to create it (root group or another). Press **Create resource** button and select **Lookup table** (see [Fig. 447.](#admin-layers-create-lookup-table)). ![image](docs_ngweb/source/_static/ngweb_create_lookup_en.png) In the opened dialog add data in the “value-label” format. You can also import a pre-made lookup table from a CSV file. Click **Import** and select a CSV file. ![image](docs_ngweb/source/_static/lookup_from_csv_en_2.png) In the import dialog you can set up: * Fields for value and label; * Delimiter; * Quote character; * Escape character; * Encoding. In the preview section you can see the resulting table and check if the parameters are set up correctly. ![image](docs_ngweb/source/_static/lookup_sort_en.png) The entries can be sorted in a variety of ways: * By value, ascending (lower to higher); * By value, descending (higher to lower); * By label, ascending; * By label, descending; * Custom - drag the six dot icon on the left ([Fig. 449.](#ngweb-creating-a-new-lookup-pic)) to move the entry. Numbers with separators are treated like decimals, i.e. “1.12” is before “1.7”. If you need to fix it, sort by value first, then switch to “Custom” and move the entries to the correct position. On the “Resource” tab you can enter a display name. It will be displayed in the resource list and the Web Map layer tree. “Keyname” field is optional. ![image](docs_ngweb/source/_static/create_lookup_en.png) You can also add resource description and metadata on the corresponding tabs. Metadata is used in external apps working with [API](https://docs.nextgis.com/docs_ngweb_dev/doc/developer/toc.html). Then click **Save**. The window will then look as on [Fig. 451.](#ngweb-new-resource-lookup-pic) ![image](docs_ngweb/source/_static/ngweb_lookup_result_en_2.png) To change anything in a lookup table click **Update** in the “Action” pane. The resource update dialog will open. Switch to “Lookup table” tab where you can change the table’s contents: * add a new value-label pair * change a current value-label pair * delete a value-label pair A lookup table can be exported to a CSV file. It comes in handy if you want to use to create a [data collection form](https://docs.nextgis.com/docs_formbuilder/source/controls.html#fb-edit-combobox-pic). You can also link a connect a lookup table [to a vector layer field](https://docs.nextgis.com/docs_ngweb/source/layers_settings.html#lookup-add-to-field), This way while editing the layer you can choose attribute labels from the list. See how to work with lookup tables in our video: Watch on [youtube](https://youtu.be/TVuKHJjjP5E?si=JiGYc2ApkmUbT0LV). ## File bucket #### IMPORTANT It is a special type of resource available in [Extended edition of NextGIS on-premise](https://nextgis.com/pricing/). It allows users to create a storage space for any types of files. On the **Resource** tab enter a name for the file bucket. It will be displayed in the administrator interface. “Keyname” field is optional. ![image](docs_ngweb/source/_static/ngw_name_file_bucket_en.png) In the **File bucket** tab select files or a ZIP archive to extract files from. ![image](docs_ngweb/source/_static/ngw_upload_file_bucket_en.png) The “Description” and “Metadata” of the resource can be configured on the corresponding tabs. After a file bucket is created, its contents can be modified. You can add and delete individual files. If you select a new ZIP archive, the files extracted from it will replace all files added before. Files stored in the bucket can be viewed in browser (if the file type allows it), saved one-by-one from the context menu or exported all at once as a ZIP archive. ![image](docs_ngweb/source/_static/ngw_file_bucket_result_en.png) # create_resource.html.md # Adding resources NextGIS Web is built on a **resource-based** approach - each component of the system (layer, group, service) is a resource. One of these resources is a **layer** - a raster image or a vector file (database table). For each layer you can create an **unlimited** number of **styles** - ways to visualize geodata on a Web Map. Interface for adding of PostGIS layers, vector and raster layers is practically the same. First, you specify the parameters for the layer, and then you add a style that renders data on the Web Map. To create a new resource, open the group where you want to add it and press **Create resource** button. Then in the pop-up window select the resource type. The window opens on the full list of available resource types. ![image](docs_ngweb/source/_static/ngweb_create_en.png) To find the resource type you need faster, use the search bar. ![image](docs_ngweb/source/_static/ngweb_create_search_en.png) Resource types are also grouped into categories. You can select a category from the list on the left. * Layers and styles ([raster](https://docs.nextgis.com/docs_ngweb/source/layers.html#ngw-create-raster-layer) and [vector](https://docs.nextgis.com/docs_ngweb/source/layers.html#ngw-create-vector-layer) layers and [styles](https://docs.nextgis.com/docs_ngweb/source/mapstyles.html), [basemaps](https://docs.nextgis.com/docs_ngweb/source/webmaps_admin.html#ngw-create-basemap)) * Maps and services ([Web Map](https://docs.nextgis.com/docs_ngweb/source/webmaps_admin.html), WMS, WFS, OGC API - Features services) * Field data collection ([tracker group, tracker](https://docs.nextgis.com/docs_ngcom/source/tracking.html#tracking-create), [Collector project](https://docs.nextgis.com/docs_ngweb/source/collector.html#collector-create-project)), [form for data collection](https://docs.nextgis.com/docs_ngweb/source/collector.html#collector-create-form) * External connections (PostGIS, TMS and WMS connections) * Miscellaneous ([resource group](https://docs.nextgis.com/docs_ngweb/source/create_resource.html#ngw-resource-group), [SVG marker library](https://docs.nextgis.com/docs_ngweb/source/mapstyles.html#ngw-create-svg-marker-lib), [lookup table](https://docs.nextgis.com/docs_ngweb/source/create_other.html#ngw-create-lookup-table), [file bucket](https://docs.nextgis.com/docs_ngweb/source/create_other.html#ngw-create-file-bucket)) Click on the resource type to see the detailed description of the process. ## Create Resource group to manage data Resources can be arranged into groups. For example, you can have special groups for base layers, satellite images and topical data. #### SEE ALSO [How to move resources to a group](https://docs.nextgis.com/docs_ngweb/source/edit_resource.html#ngw-move-resource) Groups help organize the layers in the Control panel and make it easier to manage access permissions. To create a resource group navigate to the group, where you want to create a new one (root group or another). Press **Create resource** button and select **Resource group** (see [Fig. 305.](#admin-layers-create-resource-group)). ![image](docs_ngweb/source/_static/admin_layers_create_resource_group_en.png) Create resource dialog for resource group is presented on [Fig. 306.](#ngweb-admin-layers-create-group). ![image](docs_ngweb/source/_static/admin_layers_create_group_eng_3.png) In the opened dialog enter the name of the resource that will be displayed in the administrator interface and in the map layer tree, and then click **Create**. “Keyname” field is optional. You can also add resource description and metadata on the corresponding tabs. Metadata is used in external apps working with [API](https://docs.nextgis.com/docs_ngweb_dev/doc/developer/toc.html). Now you can access newly created Resource group and create new resources in it. Resources can be [transfered from one group to another](https://docs.nextgis.com/docs_ngweb/source/edit_resource.html#move-resource). #### NOTE You can also create new Resource groups in Web GIS with desktop app QGIS. ## Data preview The preview function allows you to see the uploaded data on the basemap or a basemap without adding it on the Web Map. Click the “eye” icon opposite the name of the child resource you want to preview. A visual preview of the uploaded geometries will open without the possibility of more detailed interaction (viewing attributes, identifying objects, etc). ![image](docs_ngweb/source/_static/ngweb_preview_basemap_en_2.png) Click ![button_open_new_tab](docs_ngweb/source/_static/button_open_new_tab.png) **Open in a new tab** to view a bigger preview on a separate page. Alternatively, open the resource page and click on the **Preview** button in the right menu in the **Extra** section. ![image](docs_ngweb/source/_static/ngweb_preview_2_en.png) To preview a style, open the layer page and click on the eye icon next to the style subresource. The “Preview” action in the Extra tab on the right will display the preview of the resource itself, i.e. layer ([Fig. 310.](#ngweb-preview-vector-pic)). ![image](docs_ngweb/source/_static/ngweb_preview_1_en_2.png)![image](docs_ngweb/source/_static/ngweb_preview_vector_en_2.png)![image](docs_ngweb/source/_static/ngweb_preview_style_en_2.png) ## Typical structure With NextGIS Web application experience we recommend creating separate [resource groups](https://docs.nextgis.com/docs_ngweb/source/create_resource.html#ngw-resource-group) (folders) for: * Web Maps * Data layers * External connections Such structure makes it easier to manage access permissions. Typical structure ```default Main resource group Web Maps Master Web Map Test Web Map PostGIS connections PostGIS on server Data layers Base data Borders Infrastructure - linear features Accounting area Thematic data Results of measurements on accounting area Results of measurements on accounting routes Observation points for rare species Relief ASTER DEM DEM Isolines Topographic data Openstreetmap Roads Administrative borders Hydrology Railway stations Railway roads Landuse 1 : 100000 M-37-015 M-37-016 M-37-017 Satellite imagery Landsat-8 Ikonos ``` # create_webgis.html.md # How to create Web GIS After you’ve successfully created your account you can start creating your Web GIS. To create Web GIS you need to complete a Web GIS creation form by indicating domain name (URL) and selecting a data center (see [Fig. 24.](#webgis-creation-1-pic)): ![image](docs_ngcom/source/_static/WebGIS_creation_1_en.png) After you finish completing all required fields, press **“Create Web GIS”** button. A message will apear informing you that your Web GIS is being created (see [Fig. 25.](#webgis-creation-2-pic)): ![image](docs_ngcom/source/_static/WebGIS_creation_2_en.png) When the creation process is complete, a message will appear. From this message you can open your newly created Web GIS or upgrade your [Plan](http://nextgis.com/nextgis-com/plans) (see [Fig. 26.](#webgis-creation-3-pic)): ![image](docs_ngcom/source/_static/WebGIS_creation_3_en.png) You’ll receive an email with your Web GIS login and password. After your Web GIS is created, the outlook of the “Web GIS Settings” page will change: it will contain your Web GIS address and fields for changing your Web GIS password (see [Fig. 27.](#webgis-settings-pic)): ![image](docs_ngcom/source/_static/WebGIS_settings_en.png) To open your Web GIS click the link on the “Web GIS Settings” page. Web GIS Main resource group will open (see [Fig. 32.](#webgis-main-pic)): ![image](docs_ngcom/source/_static/WebGIS_main_guest_en.png) ## How to sign in to your Web GIS To start working in your Web GIS, first sign in using a **“Sign in”** button in the upper right corner. ![image](docs_ngcom/source/_static/ngweb_before_signin_en.png) In the opened dialog press the green button that reads “Sign in with NextGIS ID”. ![image](docs_ngcom/source/_static/ngweb_signin_nextgisid_en.png) You will be redirected to my.nextgis.com authorization page. Enter your username or email you used for registration, then on the next page enter your password. ![image](docs_ngcom/source/_static/ngid_signup_signin_en.png) After the authorization is completed successfully you will be redirected back to the Web GIS. ## Main menu A red rectangle indicates a menu containing “Resources”, “Control panel” (only for Premium users) and “Help” sections. ![image](docs_ngcom/source/_static/WebGIS_main_en.png) If you have questions about your Web GIS, you can go to the “Help” section of the menu. ![image](docs_ngcom/source/_static/WebGIS_menu_en.png) “Help” page with links to user documentation, legal documents and NextGIS contact information will open (see [Fig. 34.](#help-pic)): ![image](docs_ngcom/source/_static/Help_en.png) # crossing_borders.html.md # Count number of layer intersections The tool counts the number of intersections between 2 sets of layers, one of the sets should contain only polygons. In other words, the tool finds, how many objects lay within area of interest, defined by polygons. The result is CSV file with information about each polygon. Input: * Area of interest - a set with one or several GeoJSON files, packed in ZIP-archive. Each file should consist only of 1 polygon. Names of the files will be displayed in resulting CSV. * Objects - one or several vector layers of any geometry type (could differ among layers) in Esri Shapefile or GeoPackage format. Layer or layers should be packed in ZIP-archive. * Group by layer - optional field. If the box is checked, data in CSV will be grouped by objects’ layers. Otherwise - by geometry types of the objects. * Separate records - optional field. If the box is checked, each category value (layers or geometry types, depending on the choice above) will be put into a separate record. Output: * CSV file with information, how many objects and of which geometry type lay within each polygon. Launch the tool: [https://toolbox.nextgis.com/t/crossing_borders](https://toolbox.nextgis.com/t/crossing_borders) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # cs_change.html.md # How to change coordinate reference system of the data * [Order data](https://data.nextgis.com/en/) for your area of interest, e.g. in GeoJSON (QGIS) format. * Go to the [orders](https://data.nextgis.com/en/orders/actual/) page and download the archive when it’s complete. * **Unpack** the archive. * Import the target layer, which coordinate reference system you’d like to change, in [QGIS](https://qgis.org/en/site/forusers/download.html). * In the Layer menu, select “Save as…”. Thus you’ll create a copy of the layer, but in desired coordinate reference system. ![image](docs_data/source/_static/cs_change_select_save_en.png) * In pop-up window set a name and a path to a new file. To select its coordinate reference system press “Select CRS” button. One more pop-up window will appear; type either key words or EPSG code into “Filter” field, it is the easiest way to select desired coordinate reference system. Press “OK” in both windows. ![image](docs_data/source/_static/cs_change_save_as_en.png) * New layer in desired coordinate reference system is created and added to the project. Check of coordinate reference system is available via layer’s properties. ![image](docs_data/source/_static/cs_change_result_en.png) # d3.html.md # How to use data in D3 (d3.js) * [Order data](https://data.nextgis.com/en/) for your area of interest in GeoJSON format. * Go to the [orders](https://data.nextgis.com/en/orders/actual/) page and download the archive when it’s complete. * **Unpack** the archive. * Select target layer, for example municipal boundaries (boundary-polygon-lvl6.geojson) * To use layer in Leaflet first you need to host it (store in a place, accessible via hyperlink). Simple Leaflet map showing a municipal boundaries layer: ```html Show Data layer on the D3
``` An extended example can be found [here](https://codepen.io/rendrom/pen/wvrbNMK) The result: ![image](docs_data/source/_static/d3.png) # data_collection_on_premise.html.md # Data collection on premise ## Introduction #### NOTE **Condition:** This functionality is available for users who have purchased [Extended](https://nextgis.com/pricing/#ngwextended) on premise licence for NextGIS Web. **Software and components:** * [NextGIS Collector](https://nextgis.com/nextgis-collector/) - specialized mobile app for field data collection. * [NextGIS Web](https://nextgis.com/nextgis-web/) (NGW) - Web GIS deployed on your server to synchronize the data gathered in the field, store it, process, visualize and analyze it. * [NextGIS ID on-premise](https://docs.nextgis.com/docs_ngid/source/index.html) (NGIDOP) - user authorization server for managing access to data collection process. * [NextGIS Formbuilder](https://nextgis.com/nextgis-formbuilder) - desktop app for creating unique forms for field data collection projects. **Roles (users):** Administrator and Data Collectors. **Administrator** sets up and organizes data collection (NGW). **Data Collectors** only use NextGIS Collector app. **Data components:** Geodata consists of two components - point coordinates and attributes (description, attachments/photos) ## Administrator’s check-list 1. NGW and NGIDOP are deployed on the server. You have username and password for Administrator. 2. Check NGIDOP settings (configuration provided on demand): sections [OAuth Applications](https://docs.nextgis.com/docs_ngid/source/ngidop.html#oauth-applications) and [NextGIS ID on-premise](https://docs.nextgis.com/docs_ngid/source/ngidop.html#nextgis-id-on-premise-identificator) - make sure collector_hub is set to the address of the server where the GIS is deployed, **otherwise data collection will be impossible**. 3. Create users for data collectors in the [Team](https://docs.nextgis.com/docs_ngid/source/ngidop.html#ngidop-teams) section of NGIDOP. 4. Open NextGIS Web. In [Control panel](https://docs.nextgis.com/docs_ngcom/source/collector.html#collector-add-members) create a list of data collectors using names of the Team members added on step 3. Later when the data collection projects are set up, data collectors will be added from that list. 5. In NextGIS Web create a point vector layers that will store collected data. It can be done in the web interface ( [layer](https://docs.nextgis.com/docs_ngweb/source/layers.html#ngw-create-vector-layer), [form](https://docs.nextgis.com/docs_ngweb/source/collector.html#collector-create-form)) or with [NextGIS Formbuilder](https://nextgis.com/nextgis-formbuilder) by creating a data collection form. Remember that you’ll need to change the authorization [endpoint](https://docs.nextgis.com/docs_formbuilder/source/gui.html#on-premise-authorization) in Formbuilder from cloud (my.nextgis.com) to the on-premise deployment server. ———————– Now you can set up projects for data collection. NGW has a special type of resource for that, **Collector Project**. You need to enter a resource name (it will be visible for data collectors in NextGIS Collector app and for the administrator in the NGW interface). You also have an option to add description and metadata. 1. Set up parameters in the tabs: **Project, Items, Collectors**. In the **Project** tab the administrator enters the credentials of an NGW user that will be utilized for adding the collected data to the database. By default it can be the *administrator* user given when NGW is deployed. But we recommend [creating](https://docs.nextgis.com/docs_ngweb/source/users.html#create-new-user) a special user for the purpose. In the **Items** tab add layers the data will be stored in and basemaps to make the collection process more handy. In the **Collectors** tab from the list (see step 4) select users who will have access to data collection in this project. Save the project parameters. ———————– 1. **Data Collector’s work** in [NextGIS Collector](https://docs.nextgis.com/docs_collector/source/index.html). First, data collector must change [authorization server](https://docs.nextgis.com/docs_collector/source/auth.html#via-on-premise-ngidop) to NGIDOP. After that the process is pretty standard for field data collection - log in using credentials given by the administrator (see Team section) and collect data. More on the functionality of the app in the [documentation](https://docs.nextgis.com/docs_collector/source/index.html). ———————– Additionally, see how the data collection process works [in the cloud on nextgis.com](https://docs.nextgis.com/docs_ngcom/source/collector.html). # data_connect.html.md # How to connect data from external sources [Web GIS](description.md#ngcom-description) supports connection of basemaps ([TMS](../../glossary.md#term-TMS) services) from external servers, vector geodata from external [PostGIS](../../glossary.md#term-PostGIS) databases and connection of vector and raster geodata from external [WMS](../../glossary.md#term-WMS) services. ## Basemaps ### Add a Basemap resource 1. Navigate to a Resource group where you want to create a basemap resource (by default, from the main page of Web GIS you access the Main resource group); 2. Press **Create resource** and select **Basemap**; 3. In the opened dialog, go to Resource tab and type a name for the new basemap in the field Display name. Then in Basemap tab fill in the field URL (if you know the correct link to [TMS](../../glossary.md#term-TMS) service) or start typing the name of the basemap in the field Search. If this basemap is found in [QuickMapServices](https://qms.nextgis.com/) catalog, the URL field will be filled in automatically and option “Use options from QMS” will be activated; 4. Press **Create** button. If Basemap is created successfully, you’ll see its name in Child resources pane of the relevant Resource group. #### NOTE We recommend creating a separate “Basemaps” Resource group to keep the basemaps to add your [Web maps](webmap_create.md#ngcom-webmap-create). Find out how to add basemaps you’ve created to the Web map [here](webmap_create.md#ngcom-webmap-create). ## External PostGIS databases ### Create a PostGIS connection 1. Open Resource group where you want to create a connection (by default, from the main page of Web GIS you access the Main resource group); 2. Press **Create resource** and select **PostGIS connection**; 3. In the opened dialog, go to Resource tab and type a name for the new connection in the field Display name. Then in PostGIS connection tab fill in the fields Host, Database, User (if applicable) and Password (if applicable); 4. Press **Create** button. If PostGIS connection is created successfully, you’ll see its name in Child resources pane of the relevant Resource group. ### Create a PostGIS layer 1. Open Resource group where you want to create a data layer (by default, from the main page of Web GIS you access the Main resource group); 2. Press **Create resource** and select **PostGIS layer**; 3. In the opened dialog, go to Resource tab and type a name for the new layer in the field Display name. Then in PostGIS layer tab select [PostGIS connection](#ngcom-postgis-connection) and fill in the fields Schema, Table, ID column and Geometry column; 4. Press **Create** button. If PostGIS layer is created successfully, you’ll see its name in Child resources pane of the relevant Resource group. Read more about connecting to external PostGIS databases here. If you plan to display PostGIS layer on [Web map](webmap_create.md#ngcom-webmap-create) or publish it using [WMS](../../glossary.md#term-WMS) protocol, you need to create a [Style](styles.md#ngcom-styles) for it. ## External WMS services #### NOTE Currently supported WMS versions 1.1.1 and 1.3.0. ### Create a WMS connection 1. Open Resource group where you want to create a connection (by default, from the main page of Web GIS you access the Main resource group); 2. Press **Create resource** and select **WMS connection**; 3. In the opened dialog, go to Resource tab and type a name for the new connection in the field Display name. Then in WMS connection tab fill in the fields URL, Username (if applicable) and Password (if applicable) to connect to [WMS](../../glossary.md#term-WMS) server; 4. Press **Create** button. If WMS connection is created successfully, you’ll see its name in Child resources pane of the relevant Resource group. #### WARNING WMS server to which you connect must support EPSG:3857 [coordinate system](../../glossary.md#term-coordinate-system). ### Create a WMS layer 1. Open Resource group where you want to create a data layer (by default, from the main page of Web GIS you access the Main resource group); 2. Press **Create resource** and select **WMS layer**; 3. In the opened dialog, go to Resource tab and type a name for the new layer in the field Display name. Then in WMS layer tab select [WMS connection](#ngcom-wms-connection), image format and WMS layers you want to add to Web GIS; 4. Press **Create** button. If WMS layer is created successfully, you’ll see its name in Child resources pane of the relevant Resource group. Read more about connecting to external WMS servers here. ## External TMS services ### Create a TMS connection 1. Open Resource group where you want to create a connection (by default, from the main page of Web GIS you access the Main resource group); 2. Press **Create resource** and select **TMS connection**; 3. In the opened dialog, go to Resource tab and type a name for the new connection in the field Display name. Then in TMS connection tab select the mode for connection with TMS server (Custom or NextGIS GeoServices) and enter URL template, API key parameters and tile scheme; 4. Press **Create** button. If TMS connection is created successfully, you’ll see its name in Child resources pane of the relevant Resource group. ### Create a TMS layer 1. Open Resource group where you want to create a data layer (by default, from the main page of Web GIS you access the Main resource group); 2. Press **Create resource** and select **TMS layer**; 3. In the opened dialog, go to Resource tab and type a name for the new layer in the field Display name. Then in the Tile cache tab choose cache settings, and in the TMS layer tab select the required TMS connection and set up display parameters; 4. Press **Create** button. If TMS layer is created successfully, you’ll see its name in Child resources pane of the relevant Resource group. Read more about connecting to external TMS services here. # data_services.html.md # How to publish data using standard protocols [Web GIS](description.md#ngcom-description) allows to publish uploaded and connected geodata using standard [WFS](../../glossary.md#term-WFS) and [WMS](../../glossary.md#term-WMS) protocols. In this case Web GIS acts like WFS(WFS-T)/WMS server. ## WMS service 1. Open Resource group where you want to create a service (by default from the main page of Web GIS you can access Main resource group); 2. Press **Create resource** and select **WMS service**; 3. In the opened dialog fill in the field Display name in Resource tab; 4. Go to WMS service tab and select those resources ([Styles](styles.md#ngcom-styles) or [WMS layers](data_connect.md#ngcom-wms-layer)) which you want to publish using WMS protocol. **You need to specify a keyname for each resource**; 5. Press **Create** button. If WMS service is created successfully you’ll see its name in Child resources pane of the relevant Resource group. Read more about WMS service creation here. ## WFS service WFS services are used to serve and edit vector layers hosted in Web. You can edit vector geodata using various desktop applications. 1. Open Resource group where you want to create a service (by default from the main page of Web GIS you can access Main resource group); 2. Press **Create resource** and select **WFS service**; 3. In the opened dialog fill in the field Display name in Resource tab; 4. Go to WFS service tab and select those resources ([Vector layers](data_upload.md#ngcom-vector-layer) or [PostGIS layers](data_connect.md#ngcom-postgis-layer)) which you want to publish using WFS protocol. **You need to specify a keyname for each layer**; 5. Press **Create** button. If WFS service is created successfully you’ll see its name in Child resources pane of the relevant Resource group. WFS service link is not meant to be opened with a web browser. You need to copy and paste it in the WFS-capable client, such as for example [NextGIS QGIS](http://nextgis.com/nextgis-qgis/). By default WFS service provides 1000 features. To increase this number change Default count of returned features value in WFS service tab. You can also quickly create a WFS service with NextGIS Connect. Read more about WFS service creation [here](../../docs_ngweb/source/services.md#ngw-wfs-service). # data_types.html.md # Which data formats and protocols are supported in Web GIS [Web GIS](description.md#ngcom-description) allows to [upload](data_upload.md#ngcom-data-upload) and store geodata from local sources in the following spatial data formats: * Raster - [GeoTIFF](../../glossary.md#term-GeoTIFF) (standard raster style supports files with 3 or 4 bands, RGB or RGBA, for other types you can use QGIS style); * Vector - [ESRI Shape](../../glossary.md#term-ESRI-Shape), [GeoJSON](../../glossary.md#term-GeoJSON), [GeoPackage](../../glossary.md#term-GeoPackage), [GML](../../glossary.md#term-GML), [KML](../../glossary.md#term-KML), [CSV](../../glossary.md#term-CSV) or XLSX formats are supported. For [CSV](../../glossary.md#term-CSV) and [XLSX](../../glossary.md#term-XLSX) only points are supported, coordinates must be put in lat and lot columns. Use NextGIS Connect if you need to upload data in other formats. Web GIS also allows to [connect](data_connect.md#ngcom-data-connect) geodata from the following external sources: * [TMS](../../glossary.md#term-TMS) services; * [PostGIS](../../glossary.md#term-PostGIS) databases; * [WMS](../../glossary.md#term-WMS) services (WMS server should support [coordinate system](../../glossary.md#term-coordinate-system) EPSG:3857). You can add images (including photos) to vector geodata from local and external sources. Image files should be in JPEG or PNG format. Read more [here](https://docs.nextgis.com/docs_ngweb/source/feature_edit.html#ngw-add-photos/). You can also publish uploaded or connected to your Web GIS geodata using [WFS](../../glossary.md#term-WFS) (with feature update support) and [WMS](../../glossary.md#term-WMS) protocols. Read more [here](data_services.md#ngcom-data-services). Vector geodata from local and external sources can be exported as [GeoJSON](../../glossary.md#term-GeoJSON) and [CSV](../../glossary.md#term-CSV) files. Read more here. # data_upload.html.md # How to upload data Raster and vector geodata are uploaded to [Web GIS](description.md#ngcom-description) by creating [Raster layer](#ngcom-raster-layer) and [Vector layer](#ngcom-vector-layer) resources respectively. #### NOTE The size limit for uploaded files depends on the selected plan. For **Premium** - 50 GiB, for **Free** - 5 GiB and **Mini** - 10 GiB. ## Quick preview To quickly view the downloaded data - click on the **Preview** button on the right menu in the **Additional** section. #### NOTE For vector data, previews are available for both the layer and the style. For rasters - for style only. For TMS and WFS layers, preview is also available. The preview function in the frontend is described [here](https://docs.nextgis.com/docs_ngweb/source/layers.html#data-preview) ## Raster data ### Input data requirements * Supported format: [GeoTIFF](../../glossary.md#term-GeoTIFF) * Inputs must be geographically referenced and have correctly set CRS description as GeoTIFF metadata. ### Creating raster layer 1. Open the [Resource group](https://docs.nextgis.com/docs_ngweb/source/create_resource.html#create-resource-group-to-manage-data) where you want to create a data layer (by default the main page of Web GIS has Main resource group displayed); 2. Press **Create resource** and select **Raster layer**; 3. In the opened dialog, go to Resource tab and type a name for the new layer in the field Display name. Then go to Raster layer tab and select a file with raster geodata; 4. Press Create button. If Raster layer is created successfully, you’ll see its name in Child resources pane of the relevant Resource group. If you plan to add this raster to QGIS directly from your Web GIS, turn on Upload as Cloud Optimized GeoTIFF (COG) checkbox. #### IMPORTANT If you plan to display the Raster layer on a [Web Map](webmap_create.md#ngcom-webmap-create) or publish it using [WMS](../../glossary.md#term-WMS) protocol, you need to create a [Style](https://docs.nextgis.com/docs_ngcom/source/styles.html#ngcom-styles) for it first. ![image](docs_ngcom/source/_static/create_raster_layer_select_en.png)![image](docs_ngcom/source/_static/create_raster_layer_upload_en.png)![image](docs_ngcom/source/_static/create_raster_layer_resourse_name_save_en.png) Read more about upload of raster geodata to Web GIS [here](../../docs_ngweb/source/layers.md#ngw-create-raster-layer). #### SEE ALSO If you need to upload large rasters, here’s [how to calculate if you have enough storage](https://docs.nextgis.com/docs_ngweb/source/layers.html#ngw-raster-volume) ## Vector data ### Input data requirements Supported formats: ESRI Shapefile (zip-archived, no sub-folders, no sub-archives, one zip - one layer), GeoPackage, GeoJSON, GML, KML, CSV or XLSX. For CSV and XLSX only points are supported, coordinates must be in lat and lon columns. Use NextGIS Connect if you need to upload data in other formats. #### WARNING Avoid using Unicode symbols in data field names. While such data can be uploaded, you may experience problems working with it via WFS, in NextGIS Mobile or visualization (especially if styles are using such fields). Use plain Latin for field names and set up field aliases to show Unicode names. ### Creating vector layer 1. Open [Resource group](https://docs.nextgis.com/docs_ngweb/source/create_resource.html#create-resource-group-to-manage-data) where you want to create a data layer (by default from the main page of Web GIS you can access Main resource group); 2. Press **Create resource** and select **Vector layer**; 3. In the opened dialog, go to Vector layer tab and select a file with vector geodata or select geometry type for an empty vector layer; 4. Then in Resource tab type a name for the new layer in the field Display name. 5. Press Create button. If Vector layer is created successfully, you’ll see its name in Child resources pane of the relevant Resource group. #### IMPORTANT If you plan to display Vector layer on a [Web Map](webmap_create.md#ngcom-webmap-create) or publish it using [WMS](../../glossary.md#term-WMS) protocol you need to add a [Style](styles.md#ngcom-styles) for it first. ![image](docs_ngcom/source/_static/create_vector_layer_select_en_2.png)![image](docs_ngcom/source/_static/create_vector_layer_upload_en.png)![image](docs_ngcom/source/_static/create_vector_layer_resourse_name_save_en_3.png) Web GIS can process multy-layer datasets. If an archive contains several layers, then after it is uploaded, you will be asked to select which layer will be used for creating Vector layer resource. Read more about upload of vector geodata to Web GIS [here](../../docs_ngweb/source/layers.md#ngw-create-vector-layer). #### NOTE You can also upload raster and vector geodata to Web GIS with QGIS. # deminpoints.html.md # Extract elevations from DEM The extraction of elevations from DEM. Returns CSV with coordinates and altitude. Inputs: * ZIP-compressed CSV - CSV table with coordinates of points. Delimiter should be comma. Corrdinates are floating values. File should not have spaces and should contain only latin symbols. [How to prepare the file in QGIS](https://toolbox.nextgis.com/t/deminpoints#prepare). * Latitude - name of the Latitude column. Case-sensitive. * Longitude - name of the Lonitude column. Case-sensitive. * Output format: - CSV - ESRI Shapefile - MapInfo TAB - GeoJSON - GPKG - DXF - FlatGeobuf. * Elevation dataset - select one of the following: - Copernicus - ALOS - ALOS World 3D has resolution of 30 meters - MERITDEM - GEBCO - resolution is 15 sec (about 500 meters). Outputs: * CSV file or ZIP-compressed file of other selected format with coordinates and elevation values for the points. ## How to prepare data To save a point layer as a CSV file with coordinates in QGIS, go to Layer –> Save as. In the Format field select “Comma separated values. In the **Layer options** section select for the GEOMETRY field the option `AS_XY`. The resulting file will have longitude in the X column and latitude in Y column. ![image](docs_toolbox/source/_static/save_as_cvs_coord_en.png) Launch the tool: [https://toolbox.nextgis.com/t/demInPoints](https://toolbox.nextgis.com/t/demInPoints) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # demoprojects.html.md # Demo projects These projects showcase the capabilities of NextGIS Web, allowing you to get acquainted with its features. If you’ve set up a Web GIS and wish to test the platform but don’t know where to begin, try out the demo projects. To access demo projects go to the main page of **your Web GIS** and log in as a user with **administrator** access. You can open the demo projects page in one of two ways: * From the actions pane on the right * Using the button below the list of Web GIS resources ![image](docs_ngcom/source/_static/demo_project_select_en.png) ## What you can do with demo projects Every project has two buttons (see [Fig. 39.](#demo-project-main-pic)): 1. Open as read-only 2. Clone for me ![image](docs_ngcom/source/_static/demo_project_main_en.png) The projects include ready-made layers, styles, and maps. It demonstrates how various types of data are displayed in a Web GIS. Click **Clone for me** to create a copy of the selected project in the main resource group of your Web GIS. ![image](docs_ngcom/source/_static/demo_project_cloned_en.png) When you clone a demo project, it is yours to edit, reset or delete (see [Fig. 40.](#demo-project-cloned-pic)). In the list of your Web GIS resources the folder of the cloned demo project is marked with a lab flask icon. ![image](docs_ngcom/source/_static/demo_project_in_the_list_en.png) # description.html.md # Web GIS: Description and Main Features Web GIS is an information system for geodata storage and geodata management through admin web console or [API](../../glossary.md#term-API). Web GIS allows you to: * Upload and store raster and vector geodata; * Connect geodata from external databases and geoservices; * Visualize geodata on web maps and publish it using standard protocols; * Customize map styles for your geodata; * Edit attributes, add descriptions and photos of your geodata; * Manage geodata with mobile app [NextGIS Mobile](http://nextgis.com/nextgis-mobile/) and desktop app [NextGIS QGIS](http://nextgis.com/nextgis-qgis/); * Create end-user applications using NextGIS API. Watch on [youtube](https://youtu.be/dsx-xo3McIo?si=Oo7lX8_FXiCdM2Nz). # devtools.html.md # QGIS DevTools — debugging QGIS plugins #### NOTE Qt6 compatible ## Preface Developing QGIS plugins is a powerful way to extend the functionality of one of the world’s leading open-source GIS platforms. But despite the flexibility of Python and QGIS’s API, one thing has long been missing from the developer experience: an efficient, modern debugging workflow. For many plugin developers, the standard method of debugging involves printing to the console or using workarounds to attach debuggers manually. This process is slow and often frustrating, especially when dealing with complex logic or UI interactions. That’s why we built a tool to bridge the gap. **QGIS DevTools** is a QGIS plugin that enables smooth integration with Visual Studio Code, one of the most widely used and feature-rich development environments. With this plugin, developers can set breakpoints, inspect variables, and step through code directly from Visual Studio Code. Thanks to its modular architecture, the plugin can be extended to support other IDEs like PyCharm or Eclipse in the future, as well as additional development scenarios beyond debugging. In this article, we’ll introduce the plugin and show how it can streamline and modernize your QGIS plugin development workflow. ## Set up QGIS ### Install dependencies DevTools uses debugpy as the underlying library, so you need to install it first. If you are Windows user, we recommend to use OSGeo4W installation of QGIS for plugin development. You can add debugpy installation to your build in Libs category. ![image](docs_ngqgis/source/_static/devtools/add_debugpy.png) If you are a Linux user, you can install python3-debugpy using your OS package manager. For example: ```bash apt get install python3-debugpy ``` If you want to use flatpak for Linux: ```bash flatpak run --devel --command=pip3 org.qgis.qgis install --user debugpy ``` For MacOS: ```bash /Applications/QGIS.app/Contents/MacOS/bin/python3 -m pip install debugpy ``` ### Install QGIS DevTools After that you could install QGIS DevTools from standard plugins repository (Plugins — Manage and install plugins — All — QGIS DevTools) ![image](docs_ngqgis/source/_static/devtools/devtools_install.png) Installed plugin management is available via small bug icon ![installed_icon](docs_ngqgis/source/_static/devtools/installed_icon.png) in the right bottom part of the QGIS interface. ![image](docs_ngqgis/source/_static/devtools/interface_icon.png) Plugin settings are also available in menu Plugins — QGIS DevTools. ### QGIS DevTools settings In settings you could select debug adapter (currently supports only debugpy for Visual Studio Code and Visual Studio, more to come), set if you want to enable debugger on QGIS startup and show notification on debugger start. Enabling the debugger leads to activating the local server app. In the Adapter settings block you could set up hostname and port(s) for this server. Selecting range instead of single value for Port would allow you to run several QGIS instances with active debuggers simultaneously. ![image](docs_ngqgis/source/_static/devtools/Adapter_settings.png) ## Install Python debugger extension in VS Code **Python debugger** extension for VS Code is needed. Go to Extensions tab (Ctrl+Shift+X), search for Python debugger and install it. Then restart VS Code. ![image](docs_ngqgis/source/_static/devtools/python_debugger_extension.png) ## Debug a plugin ### Prepare For example we will debug the OSMInfo QGIS plugin, which could be installed from the standard plugins repository. You could try the same path, or use your own plugin. To copy the plugin’s location, it is convenient to simply right click on the Installed version number in the plugins manager and press the Copy link button. ![image](docs_ngqgis/source/_static/devtools/copy_link_button.png) Open the whole plugin directory in VS Code using File — Open Folder and paste copied path, then open folder. Next step is to create an empty **.vscode/launch.json** file in plugins directory root. ![image](docs_ngqgis/source/_static/devtools/launch_json_file.png) Return to QGIS and press the Start button in the DevTools panel. ![image](docs_ngqgis/source/_static/devtools/start_button.png) After that you will see the standard QGIS blue notification about started session, with Copy launch.json template button. ![image](docs_ngqgis/source/_static/devtools/start_notification.png) Press it, and paste copied template to **.vscode/launch.json** file created before. ![image](docs_ngqgis/source/_static/launch_pasted.png) If the code file is stored in a separate directory, not in the one it’s run from, you need to configure a path for it. In pasted code, in configurations/pathMappings/remoteRoot element replace text to plugin’s directory name, in example case **osminfo**. ![image](docs_ngqgis/source/_static/devtools/replace_dir_name.png) After that switch to the Run & Debug tab (Ctrl + Shift + D) and run **Attach to QGIS**. ![image](docs_ngqgis/source/_static/devtools/attach_to_qgis.png) Debug session is active now. On VS Code side you should see a panel with debugging commands: ![image](docs_ngqgis/source/_static/devtools/debug_panel.png) On QGIS side you should see, that DevTools icon changed it’s color to green, and status changed to “client connected”. ![image](docs_ngqgis/source/_static/devtools/stop_button.png) We are ready for debugging now. ### Plugin debugging process All VS Code debug workflows are now available, you could find detailed information here: [https://code.visualstudio.com/docs/python/debugging](https://code.visualstudio.com/docs/python/debugging) Let’s try some simple things. Open osminfotool.py file, find row 97 and add breakpoint to it by pushing the red circle left to row number. ![image](docs_ngqgis/source/_static/devtools/breakpoint_attempt.png) We asked the debugger to stop when reaching this row of code. In the plugin’s code this place is about actions after clicking on map. Switch to QGIS, select OSMInfo tool and click to any location on the map. Interface freezes — it is correct behaviour, the debugger stopped the process. In VS Code you can see that the breakpoint was reached. In the variables panel you could explore all currently available variables used in the plugin. You could also use all these variables in Debug console, for example ask for mouse click coordinate with ```bash e.pos().x() ``` ![image](docs_ngqgis/source/_static/devtools/console_variables.png) After that, using debug panel ![debug_panel_2](docs_ngqgis/source/_static/devtools/debug_panel_2.png) you could move to the next code row or next breakpoint. These tools make the process of understanding what happens in the plugin much easier. Happy debugging! ## Debug a script ### Prepare To debug a script, follow these steps: 1. In VSCode open the folder where the script is stored using File — Open Folder. 2. Open the script in QGIS editor: Plugins → Python Console → Show Editor → Open Script. 3. Press the **Debug script** button in the script editor panel. This will start the Python debugging server in QGIS if it has not been started previously and will wait for VS Code to connect for debugging. ![image](docs_ngqgis/source/_static/devt_start_python.png) 1. Copy launch.json template by clicking the corresponding button in the dialog that appears. ![image](docs_ngqgis/source/_static/devt_copy_launch.png) 1. As the next step, return to VS Code and create a .vscode subdirectory in the script directory, then add an empty launch.json file inside it. ![image](docs_ngqgis/source/_static/devt_vscode_folder.png) 1. Paste copied template to .vscode/launch.json and save the file ![image](docs_ngqgis/source/_static/devt_paste_template.png) Now you can start the debugging. ### Script debugging process 1. Add breakpoints to the script. ![image](docs_ngqgis/source/_static/devt_add_break.png) 1. After that switch to the Run & Debug tab (Ctrl + Shift + D) and run Attach to QGIS. ![image](docs_ngqgis/source/_static/devt_attach_qgis.png) Debug session is active now. On VS Code side you should see a panel with debugging commands: ![image](docs_ngqgis/source/_static/devt_script_debug_panel.png) On QGIS side you should see, that DevTools icon changed it’s color to green, and status changed to “client connected”. ![image](docs_ngqgis/source/_static/devt_client_connected.png) When the script execution reaches a breakpoint, you will see the current variables and their contents. ![image](docs_ngqgis/source/_static/devt_variables.png) ## Conclusion We hope that QGIS DevTools will make the lives of plugin developers easier. Based on community requests, we plan to expand the list of supported IDEs and development support mechanisms in general. Feel free to share your thoughts and feedback! # dezhurcad.html.md # Rosreestr extracts to map The tool converts extracts from [Rosreestr](https://rosreestr.gov.ru) to web map with one-direction sync. During next runs script detects changes in vector features and updates or appends new features if the extract has a later date. Features are not deleted. #### IMPORTANT Only features with recognized SRS are displayed on the map. Features will not be displayed if they are without geometry, SRS could not be determineded, coordinates do not correspond to the SRS specified in XML file, or they not fall within the boundaries of cadastral unit. The number of missed/processed features is displayed in the form of a report. Input: * Rosreestr extract - one xml or zip * Web GIS link, example: [https://sandbox.nextgis.com](https://sandbox.nextgis.com) * Administrator or other Web GIS user login. User must have writing access * User password * Resource group id for data. User must create group only before very first run Output: * Layers and web map. Launch the tool: [https://toolbox.nextgis.com/t/Dezhurcad](https://toolbox.nextgis.com/t/Dezhurcad) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # digitizr.html.md # Digitizr This plugin allows you to digitize a line and have a buffer around it immediately at set width stored in a polygonal layer. 1. Install plugin 2. Select a polygon layer and enter edit mode. 3. Activate the plugin from the toolbar (![button_digitizr](docs_ngqgis/source/_static/button_digitizr.png) button) 1. To create a line left-click on map on at least two points. 2. To complete the line right-click on the last point. The line is automatically transformed into a polygon. ![image](docs_ngqgis/source/_static/digitizr_module_settings_en.png) In the drop-down plugin menu you can select the style of caps and joins. In the field to the right of the button you can change the buffer width. See how the plugin works in our video: Watch on [youtube](https://youtu.be/NkXZHwDUV0M?si=dWKCoYaXKTqxshqo). # district.html.md # How to get municipal boundaries for a target region * [Order data](https://data.nextgis.com/en/) for your area of interest, for example in GeoPackage format. * Go to the [orders](https://data.nextgis.com/en/orders/actual/) page and download the archive when it’s complete. * **Unpack** the archive. * Launch QGIS and in the main menu select “Layer” > “Add Layer” > “Add Vector Layer…”. In a pop-up window from downloaded folder “data” select file “boundary-polygon-land-lvl6”. ![image](docs_data/source/_static/district_add_layer_en.png) * Municipalities’ boundaries are imported in GIS. ![image](docs_data/source/_static/district_in_qgis_en.png) * If you want municipalities to be shown as outlines, right-click on a layer and select “Properties”. In pop-up window select Symbology > Simple fill > Fill style=“No Brush” and press **Apply**. ![image](docs_data/source/_static/district_no_fill_en.png) #### NOTE Types and levels of administrative boundaries differ from country to country. Thus file “boundary-polygon-land-lvl6” can refer to various levels of administrative division, depending on particular country. To find out about your area of interest please check [here](https://wiki.openstreetmap.org/wiki/Tag:boundary%3Dadministrative). # doc2pdf.html.md # DOC(X) to PDF Convert DOC(X) to PDF with templating support. Inputs: * Input DOC(X). Select DOC or DOCX file. * Input data file. Select JSON file corresponding to template values. To view an example template, click **Demo** and donwload the input JSON file. Outputs: * PDF file Launch the tool: [https://toolbox.nextgis.com/t/doc2pdf](https://toolbox.nextgis.com/t/doc2pdf) Example: ![image](docs_toolbox/source/_static/doc2pdf_input.png)![image](docs_toolbox/source/_static/doc2pdf_input_json_en.png)![image](docs_toolbox/source/_static/doc2pdf_result.png) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # domain.html.md # How to change Web GIS domain #### NOTE This functionality is available only to nextgis.com [Premium users](http://nextgis.com/nextgis-com/plans). After you created a Web GIS you get a domain at nextgis.com, for example *mywebgis.nextgis.com*. You can rename it to something else, i.e. *mywebgis2.nextgis.com* by contacting support. You can also change it to a subdomain under the domain of your organization, for example *gis.example.com* where example.com is the domain of your organization. We will use these two addresses in the examples below. #### NOTE You can’t use your organization domain itself (mycompany.com) as Web GIS domain. It is impossible to add CNAME record in the DNS zone root with most of the providers. Follow these steps to change the domain name. The described actions are done by the system administrator of your company or another authorized person who has access to DNS records. **Step 1. Add DNS record to get HTTPS certificates** ```bash _acme-challenge.gis.example.com. CNAME _acme-challenge.nimbo.nextgis.net. ``` change *gis.example.com* in this record to the needed domain under the domain of your organization. **Check 1** Your system administrator needs to check that changes took effect. Use [Dig](https://toolbox.googleapps.com/apps/dig/#CNAME/). Enter: \_acme-challenge.gis.example.com. Expected answer: CNAME (TTL and TARGET). TARGET must have the following value: \_acme-challenge.nimbo.nextgis.net. Give some time for DNS changes to take effect. **Step 2. Add DNS record 2 to redirect requests to Web GIS** ```bash gis.example.com. CNAME example.nextgis.com. ``` change *gis.example.com* to the needed domain under the domain of your organization, change *example.nextgis.com* to your Web GIS address at \*.nextgis.com **Check 2** Your system administrator needs to check that changes took effect. Use [Dig](https://toolbox.googleapps.com/apps/dig/#CNAME/). Enter: gis.example.com Expected answer: CNAME (TTL and TARGET). TARGET must have the following value: mywebgis.nextgis.com. Give some time for DNS changes to take an effect. **Step 3. Inform us** After both checks are successful, let us know at [support@nextgis.com](mailto:support@nextgis.com). Please use the following template: 1. Your Web GIS URL: *mywebgis.nextgis.com* 2. Domain you want to switch to: *gis.example.com* We will finalize the setup and contact you when everything is ready. # download_and_prepare_l8_s2.html.md # Prepare and download Sentinel-2 data The tool downloads source data, prepares Sentinel-2 data and provides link to download the result. Supported ID types are Copernicus, GoogleCloud and MPC (L2A only). You can get ID for Copernicus catalog: * using the tool [Copernicus Sentinel image search](https://toolbox.nextgis.com/t/imagesearch) or [Sentinel-2 scenes to GPKG](https://toolbox.nextgis.com/t/s2_search); * on [https://dataspace.copernicus.eu](https://dataspace.copernicus.eu): sign up, find an image for your area of interest and copy its ID. Inputs: * Scene identifier of Sentinel-2 (Level 1C and Level 2A). * Vector mask to clip the image. The format is GeoJSON, ESRI Shape (in a ZIP-archive) or any other OGR-compatible single-file format. If you don’t need to clip the scene, leave this field empty. * A list of bands. A comma separated list of numbers. The bands will be merged in the specified order, for example 4,3,2. Leave this field empty to merge all bands. * Output spatial resolution of the scene, in meters. Leave this field empty for original spatial resolution. If number is set, then all bands will be upscaled or downscaled to it using cubic interpolation. The example of interpolation is available [here](https://docs.nextgis.com/_images/download_and_prepare_l8_s2.png). Outputs: * GeoTIFF output image Launch the tool: [https://toolbox.nextgis.com/t/download_and_prepare_l8_s2](https://toolbox.nextgis.com/t/download_and_prepare_l8_s2) Watch on [youtube](https://youtu.be/avKvKrsjDSI?si=sJZqD5IEeZmJOxIJ). ![image](docs_toolbox/source/_static/download_and_prepare_l8_s2_output_en.png) View the result on an interactive map: [https://demo.nextgis.com/resource/4805/display?panel=layers](https://demo.nextgis.com/resource/4805/display?panel=layers) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. #### NOTE You can download previews of the scenes using the gool [Sentinel-2 scenes to GPKG](https://toolbox.nextgis.com/t/s2_search) to determine for which of them to download the full raster images. # download_glad.html.md # Download Landsat Analysis Ready Data (GLAD ARD) Generates commands to download Landsat Analysis Ready Data (GLAD ARD, [https://glad.umd.edu/ard/home](https://glad.umd.edu/ard/home)). The source data is organized as follows: ARD tile name contains the coordinates of the bottom left corner of the grid cell. You can see the online interactive [grid](https://demo.nextgis.com/resource/9192/display?panel=layers). ![image](docs_toolbox/source/_static/download_glad_tile_id_en.png) Data collected in a 16-day interval are consolidated into a single ARD composite. The intervals are numbered consecutively since 1997. See the IDs of the intervals intersecting with your period of interest in the [`table`](https://glad.umd.edu/users/Potapov/ARD/16d_intervals.xlsx). Inputs: * CSV file containing a list of tile names, i.e. `006E_46N`; * Starting interval - ID of the first 16-day interval intersecting with your period of interest; * Ending interval - ID of the last 16-day interval of your period of interest. Outputs: * Windows batch file for downloading with Powershell. No additional tools required; * Windows batch file for downloading with AWS (same data, different server). AWS CLI installation is required [https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html); * TXT file containing a list of urls for downloading with wget, curl or similar tools. Launch the tool: [https://toolbox.nextgis.com/t/download_glad](https://toolbox.nextgis.com/t/download_glad) Example data downloaded using the BAT file provided by the tool. ![image](docs_toolbox/source/_static/download_glad_result_en.png) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # dumploadfield.html.md # DumpLoadField Fill in string fields of a vector layer from a text file. This plugin is helpful when you need to fill in an empty field or replace values of a field. Also DumpLoadField can save the contents of a field from an attribute table as TXT file. After installation you can find the plugin in the Vector menu. ## Add text field to vector layer attributes 1. Create a new string field in the vector layer attribute table. Save the changes. 2. Open the plugin from Vector ‣ DumpLoadField ‣ Load to a field. 3. Select the field you want to fill in. 4. Select a TXT file. In the file the text rows must be in the same order as the layer features. ## Download text values of an attribute 1. Open the layer in QGIS. 2. In the Menu bar select Vector ‣ DumpLoadField ‣ Dump a field. 3. Select the field the contents of which you want to save. 4. Enter a name for the output file. The values of the string field will be saved to a TXT file. Check out how the plugin works in our video: Watch on [youtube](https://youtu.be/gjQCkNLbxUg?si=L7bfWabH0QHMMsVh). # easyquery.html.md # NextGIS EasyQuery The NextGIS EasyQuery plugin is designed for quick search and filtering of objects in vector layers. It is a simplified and intuitive visual query builder with which you can: - Select the desired vector layer - Configure simple conditions for filtering objects by attribute data - Define query mode - Save the selection result to a separate temporary layer or select it in the current vector layer More information can be found in the “About”. ![image](docs_ngqgis/source/_static/nextgis_easyquery/info-en.png) ## Installation To install or update this plugin, you need to find it in the menu Plugins ‣ Manage and install plugins. Enter part or all of its name in the Search bar (see [Fig. 824.](#setup-en)). ![image](docs_ngqgis/source/_static/nextgis_easyquery/setup-en.png) Select **NextGIS EasyQuery** from the list and select Install Module. After installing the extension, an icon appears on the toolbar ![easyquery_icon-en](docs_ngqgis/source/_static/nextgis_easyquery/easyquery_icon-en.png). ## Usage 1. Click on the icon of the installed plugin. You can also open the module through the top menu Vector ‣ NextGIS EasyQuery 2. Select the vector layer whose features you want to query. The layers in the list are taken from the project, so the data needs to be added to QGIS beforehand. 3. Add the condition you need - choose the field to select, the operator and the value you are looking for. There can be several conditions, you can add and remove them. ![image](docs_ngqgis/source/_static/nextgis_easyquery/conditions-en.png) 1. Set the query mode. If you set several conditions, you can specify whether at least one of them or all of them must be fulfilled at once. ![image](docs_ngqgis/source/_static/nextgis_easyquery/query_modes-en.png) #### IMPORTANT For number field types, values from the list corresponding to **percentage intervals** of 25%, 50%, and 75% will be suggested, not all available values in the current table field. 1. Select the type of result you want. Objects can be either selected in the current layer or saved to a special temporary layer. ![image](docs_ngqgis/source/_static/nextgis_easyquery/query_type_result-en.png) 1. Optionally, set the checkbox so that the query result is automatically zoomed in on the map. 2. Start execution ![image](docs_ngqgis/source/_static/nextgis_easyquery/query_result-en.png)![image](docs_ngqgis/source/_static/nextgis_easyquery/query_result2-en.png) See how the plugin works in our video: Watch on [youtube](https://youtu.be/GkK-hHRTwsc?si=l9rWkIqQ1MHTXdAo). # edit.html.md # Edit data NextGIS Connect plugin allows to quickly edit geometries and attribute values of features in Web GIS Vector layers right after adding them to QGIS. This allows the layer to be edited even with no Internet connection. The changes will be saved to the device and transfered to Web GIS when the connection is restored. This functionality is only available for vector data formats used in QGIS. #### WARNING By default only one user at a time can edit the layer **directly**. 1. Import the layer from Web GIS to QGIS by selecting it in NextGIS Connect and pressing ![button_to_qgis](docs_ngconnect/source/_static/button_to_qgis.png) Add to QGIS. 2. Enter the edit mode from the layer’s context menu or from the toolbar. 3. Make the changes. 4. Exit edit mode. Confirm changes in the pop-up window. 5. The layer will be automatically synchronized. To check when the layer was last synchronized, hover over the sync symbol. ![Sync information](docs_ngconnect/source/_static/ngc_check_sync_en.png) Press the symbol to open the layer status window. ![image](docs_ngconnect/source/_static/ngc_layer_status_en.png) It has the date and time of the latest synchronization and the status: synchronized or not synchronized. You can start the process manually by pressing the **Synchronization** button. #### IMPORTANT While the layer is in edit mode, synchronization is not available. If changes have been made to the layer in Web GIS since the last synchronization, further synchronization will not be possible. [Reset the layer](https://docs.nextgis.com/docs_ngconnect/source/edit.html#reset-layer) to make synchronization possible again. If the edits made in the cloud were incorrect and you need to replace them with local ones, you can use the [Data overwrite](https://docs.nextgis.com/docs_ngconnect/source/edit.html#connect-data-overwrite) function. Only the data itself is synchronized. See how to [change the layer structure](https://docs.nextgis.com/docs_ngconnect/source/edit.html#connect-add-field) to keep the synchronization available. ## Multi user editing Layers can be edited by several people at once or from several different devices/platforms by one or several users. The edits can be made simultaneously or at different times. Here are some common scenarios: 1. One user edits features in QGIS, on the Web Map and in a mobile app. 2. Several users edit the same layer in QGIS. 3. Several users edit the same layer in all possible ways. If your workflow is close to this, you have two main options: 1. Enable [versioning](https://docs.nextgis.com/docs_ngweb/source/layers_settings.html#create-vector-layer-vers-pic) for the vector layers that are going to be edited. You can turn on versioning in the layer’s settings in Web GIS. When versioning is on, all changes made to the layer are logged in the system. That allows Connect to access edits made on other devices and process them without resetting the layer. 2. Use [OGC API — Features](../../glossary.md#term-1) or [WFS](../../glossary.md#term-WFS) services. You can create them in Web GIS ([WFS](https://docs.nextgis.com/docs_ngweb/source/layers.html#services.html#ngw-create-service-wfs), [OGC API — Features](https://docs.nextgis.com/docs_ngweb/source/services.html#ngw-ogc-api-features)) or directly in the [Connect plugin](https://docs.nextgis.com/docs_ngconnect/source/manage.html#create-service) and then use them to edit data. If only one user edits the data from the same interface (e.g. from QGIS), you don’t need versioning. ## Resolve edit confilcts [Versioning](https://docs.nextgis.com/docs_ngweb/source/layers_settings.html#create-vector-layer-vers-pic) allows multiple users to edit a layer from different devices at the same time, via QGIS or Web interface. If two users try to make different changes to the same feature, then before saving the changes NextGIS Connect plugin detects an edit conflict and shows a dialog to resolve it. ![image](docs_ngconnect/source/_static/conflict_detected_en.png) All the features that have conflicting edits are listed on the left. For each of the features you can view the attribute values and geometry preview. Conflicting changes are marked by yellow dots. The local changes are shown on the left and the changes saved on the server after you entered the editing mode are shown on the right. Select the correct option for each conflict individually or apply all the local or server changes at once using buttons in the bottom left corner. The final version is displayed in the middle, in the Result column. Resolved conflicts are marked by green dots. When all the edit conflicts of a feature are resolved, the question mark next to it changes to a green tick. ![image](docs_ngconnect/source/_static/conflict_resolved_en.png) ## Change layer structure If you want to add/remove fields of a versioned vector layer, added to QGIS from Web GIS cloud storage, make sure to do it this way: 1. Important! Save all changes made to the layer in QGIS. 2. Modify the layer structure in Web GIS. 3. Go to the layer’s sync dialog, click the downward arrow by the “Synchronization” button and in the dropdown menu select **Reset layer**. 4. Now you can continue editing the data. When you add a layer from Web GIS to QGIS, the structure of the layer is stored in the cache. So if you delete the layer from QGIS, you only remove the legen item, but the cache stays intact. When you try to add the layer again after changing its structure in Web GIS, it clashes with the cached structure ending up in error. ### Reset layer When you reset the layer via sync dialog, you update the cached structure. This way the cached structure matches the one in the cloud allowing you to continue editing and synchronizing the data. To reset a layer, click on the sync symbol (see `ngc-check-sync-pic`). “Layer status” window will open. Click the downward arrow by the “Synchronization” button and in the dropdown menu select **Reset layer**. ![image](docs_ngconnect/source/_static/reset_layer_en.png) Keep in mind that if you reset the layer, all local changes that had not been synchronized will be lost. ## Edit layer with WFS You can also edit a vector layer using the standard [WFS](../../glossary.md#term-WFS) protocol (with feature edit support): * Publish via WFS protocol the Vector layer you’re going to edit; * Select in NextGIS Connect Resources panel the relevant WFS service; * Press ![button_to_qgis](docs_ngconnect/source/_static/button_to_qgis.png) Add to QGIS button on NextGIS Connect control panel or select **Add to QGIS** in the service context menu; ![image](docs_ngconnect/source/_static/NGConnect_edit_add_en.png) * If the operation is successful you’ll see in QGIS Layers panel a new group of WFS layers published via the selected WFS service; * Enter Edit mode and modify geometries and attributes in the added WFS layer using standard QGIS tools; ![image](docs_ngconnect/source/_static/NGConnect_edit_process_en.png) * Press the “Edit” button to finish editing and press “Save” in the opened window. ![image](docs_ngconnect/source/_static/NGConnect_edit_save_en.png) * If the editing was successful, you’ll be able to see the changes in the Web GIS at once, both in the [Feature table](../../docs_ngweb/source/admin_interface.md#ngw-feature-table) and on the Web Map [web client](../../docs_ngweb/source/webmaps_client.md#ngw-webmaps-client). ## Update data NextGIS Connect allows you to update the content of an existing Web GIS vector layer keeping its styles, attribute aliases and other settings. #### WARNING When a **layer** is updated, all data of the target layer including attachments (photos, documents) is cleared. If you need to keep the attachments intact, use [WFS](https://docs.nextgis.com/docs_ngconnect/source/resources.html#wfs). When you update a [style](https://docs.nextgis.com/docs_ngconnect/source/edit.html#connect-style-overwrite), it does not affect attachments. To update (overwrite) layer’s data: * In the QGIS Layers panel, select the vector layer that has features you want to send to an existing Web GIS vector layer; * In the NextGIS Connect panel select the vector layer , select the vector layer the contents of which you need to replace; * Right click on the target layer and choose **Overwrite selected layer**. Layer resource ID stays the same. ![image](docs_ngconnect/source/_static/NGconnect_vector_overwrite_en_2.png) You can also edit features [directly](https://docs.nextgis.com/docs_ngconnect/source/edit.html#connect-data-edit) or via [WFS](https://docs.nextgis.com/docs_ngconnect/source/edit.html#connect-data-edit-wfs). ## Update style You can add another style to a layer or replace its existing style with a new one. When a style is updated, the NextGIS Connect module removes the old style of the layer from the Web GIS and loads the new one leaving all data and attachments intact. * Add layer to QGIS via Connect; * Change the style of the layer (color, line width, etc.); * Select the layer in QGIS Layers panel as well as in the Connect panel. * In Connect toolbar press ![button_to_wg](docs_ngconnect/source/_static/button_to_wg.png) Add to Web GIS and in the dropdown menu select “Add new style to layer” or “Update style”. ![image](docs_ngconnect/source/_static/connect_add_style_en_2.png) To update layer’s style you don’t need to select a specific one. 1. If the layer has only one style, this style is updated; 2. If the layer has multiple styles, selection dialog appears; 3. If the layer has no style, the style is added to it. ![image](docs_ngconnect/source/_static/connect_replace_select_style_en.png) This operation is also available in the layer’s context menu in QGIS Layers panel: NextGIS Connect ‣ Add new style to layer / Update layer style. ![image](docs_ngconnect/source/_static/connect_replace_add_style_context_en.png) ### How to keep attachments To **keep the photos** intact while modifying the style, perform the following steps: 1. Add the layer’s style from Web GIS to QGIS using NextGIS Connect. 2. Modify the style. 3. Update the style using NextGIS Connect. ![image](docs_ngconnect/source/_static/ngconnect_modify_keep_photo_en.png) ## Copy style from Web GIS With Connect you can copy QML style from Web GIS and apply it to a local style in QGIS. Watch on [youtube](https://youtu.be/bmba3qqgTmM?si=dZMBmZyPSXojFgiY). Click on the layer in the Connect panel to view the styles and right-click on the QML-style. Select “Copy style” in the context menu. Then in the QGIS Layers panel paste style via context menu as usual. ![image](docs_ngconnect/source/_static/connect_copy_style_en.png)![image](docs_ngconnect/source/_static/connect_paste_style_en.png)![image](docs_ngconnect/source/_static/connect_result_style_en.png) # edit_resource.html.md # Update resource In the group page press the pencil icon opposite the resource. ![image](docs_ngweb/source/_static/ngw_update_resource_from_group_en.png) Alternatively, open the resource properties page and then select “Update” in the actions pane (see [Fig. 354.](#ngw-window-update-edit-resource)). ![image](docs_ngweb/source/_static/ngw_window_update_edit_resource_en.png) In opened window “Update resource” (see [Fig. 355.](#ngw-window-update-resource1)) you can * move the resource to a different parent resource, * add [description and metadata](https://docs.nextgis.com/docs_ngweb/source/edit_resource.html#edit-description-and-metadata); * configure [access permissions](https://docs.nextgis.com/docs_ngcom/source/permissions.html). Depending on the resource type there are other tabs, e.g. for vector layers you can edit [attribute fields](https://docs.nextgis.com/docs_ngweb/source/layers_settings.html#edit-vector-layer-attributes-table). ![image](docs_ngweb/source/_static/ngw_update_resource_en.png) Some tabs have grey numbers on them indicated the number of items (i.e. permission rules, layer fields etc). Tabs that were modified are marked by blue dots. On the first tab “Resource” you can edit the following fields: 1. Display name (you can change the resource’s name) 2. Parent (you can change the resource group through moving the resource) 3. Owner 4. Keyname ## Move resource You can move resources from one resource group to another. There are two ways to do so. ### Using resource update This is a good way if you only need to move one resource. 1. Open the Properties page of a resource you want to transfer; 2. Select Action ‣ Update on the right side of Web GIS [admin console](admin_interface.md#ngw-admin-interface); 3. In the opened dialog window in the field Parent in Resource tab select Resource group you want to transfer your resource to; 4. Press Save button. If a resource is transferred successfully its name will appear in the new Resource group and disappear from the previous Resource group. ![image](docs_ngweb/source/_static/ngw_resource_selection_eng_3.png) In the same way you can transfer [Styles](https://docs.nextgis.com/docs_ngweb/source/mapstyles.html) between parent resources ([Vector and raster layers](https://docs.nextgis.com/docs_ngweb/source/layers.html), [PostGIS layers](https://docs.nextgis.com/docs_ngweb/source/postgis_details.html)). ### Using multiple selection This way allows you to move several resources at once. Open the group containing the resources you’d like to move. In the Child Resources list click the three dots in the upper right corner and in the menu press “Select multiple resources”. ![image](docs_ngweb/source/_static/select_multiple_enable_en.png) Boxes will appear to the right of the resource names in the list. Tick them to mark resources for transfer. If you tick the box by the “Display name” title, all resources in the list will be selected. After selecting the resources, open the menu again and press “Move”. ![image](docs_ngweb/source/_static/move_selected_en.png) A pop-up window of group selection will open. In this window you can use a search bar. Click the magnifying glass in the top left corner and start entering the name of the group you want to find. To go up in the resource tree, click the path indicated in the top panel of the window. To open a folder from the list, click the arrow icon on the right. If you want to return to the source group, click the icon **|<** in the top right corner. To select the group as the destination, click the circle to the left of its name, a blue dot marker will appear. Then press “Move to selected group”. To move resources to the main group, click on the house icon in the top panel of the pop-up window and then press “Move to this group”. ![image](docs_ngweb/source/_static/move_to_selected_group_en.png) If in the selected folder there are already resources with the same name as those you want to transfer, they will not be moved and the following message will appear: ![image](docs_ngweb/source/_static/move_name_not_unique_en.png) Close the alert window, change the name of one of the resources and try to move it again. If a resource is transferred successfully its name will appear in the new Resource group and disappear from the previous Resource group. See how it works in our video: Watch on [youtube](https://youtu.be/-87-azrgakw?si=xO3STGS1DgZiiQR_). ## Delete resource Web GIS allows to delete uploaded data through deleting of the corresponding resources. In the group page press the cross icon opposite the resource. ![image](docs_ngweb/source/_static/ngw_delete_resource_from_group_en.png) A pop-up window for confirmation will appear. Click **Delete** to confirm. ![image](docs_ngweb/source/_static/ngw_delete_from_group_confirmation_en.png) Alternatively, open the resource page and then select “Delete” in the actions pane (see [Fig. 363.](#ngw-window-update-delete-resource)). ![image](docs_ngweb/source/_static/ngw_window_update_delete_resource_2.png) In the opened “Delete resource” window you need to tick “Confirm deletion of the resource” and press **Delete** button. ![image](docs_ngweb/source/_static/ngw_delete_from_page_confirmation_en.png) If the resource was deleted successfully, the information about it disappear from the corresponding resource group. When a resource is deleted, all its subresources also get deleted. Before confirming deletion you’ll see a warning about the number of resources of each type that are about to be deleted: ![image](docs_ngweb/source/_static/ngw_delete_subres_warning_group_en.png) If you selected “Delete” action from the resource page and not from the resource list, the name of the selected resource will be in the path above. ![image](docs_ngweb/source/_static/ngw_delete_subres_warning_layer_en.png) You can also delete resources in your Web GIS [from QGIS using NextGIS Connect plugin](https://docs.nextgis.com/docs_ngconnect/source/manage.html#connect-resource-delete). ### Deleting several resources at once In the parent resource open the child resources list menu and enable multiple selection. Tick the resources and select “Delete” from the same menu. Confirm the operation in the pop-up window. ![image](docs_ngweb/source/_static/delete_selected_multiple_en.png) ## Edit description and metadata The “Description” tab allows to add text, links and images describing the resource. ![image](docs_ngweb/source/_static/ngw_description_window_eng_3.png) The “Metadata” tab allows to add and delete metadata, and to display them in a table using **Add** and **Remove** operations: ![image](docs_ngweb/source/_static/ngw_metadata_tab_eng_3.png) The table contains three columns: 1. Key. It allows to describe metadata features (author, date, version etc.) 2. Type: String, Numer, Boolean, Empty (if you select “Empty”, the value field will be cleared) 3. Value. Value corresponds to the key type Typically, metadata is used to develop third-party applications using [API](https://docs.nextgis.com/docs_ngweb_dev/doc/developer/toc.html). ## Keyname for API integrations On the Resource tab you can enter a unique Key for the resource to identify the resource in program code. Key requirements: * Plain latin symbols and numbers; * The first symbol must be a letter. In QGIS you can search a resource by its key via [NextGIS Connect](https://docs.nextgis.com/docs_ngconnect/source/filter.html#ngc-filter-expression). # editing.html.md # Editing layers NextGIS Mobile allows you to edit vector layers added to the map. While editing, you can: * add new features; * delete features; * edit features. ## Switching to Edit mode There are several ways to switch to Edit mode. 1. The first way is Main actions button (the big blue button in the right bottom corner of map screen). Pressing Main actions button opens a menu of most common actions (see [Fig. 985.](#ngmobile-common-action-menu-pic)). ![image](docs_ngmobile/source/_static/ngmobile_mainscreen_2.png) You need to tap the pencil button (item 6 in [Fig. 985.](#ngmobile-common-action-menu-pic)) to switch to Edit mode. Then select a vector layer you want to edit in an opened dialog (see [Fig. 986.](#ngmobile-select-layer-dialogtch-pic)). ![image](docs_ngmobile/source/_static/select_layer_dialogtch.png) 1. The second way to switch to Edit mode is to long-press the feature on the Map. This will activate Edit mode for the layer which includes this feature. (A short press will activate a similar menu, but only the “info” icon will be available.) If there are multiple overlaying features, a list will appear. Select the layer you wish to edit from that list. 2. The third way is to open Layers tree panel (item 1 in [Fig. 943.](main.md#ngmobile-main-activity-pic-1)) and tap on Layer contextual menu icon next to the vector layer name . This will open the contextual menu items. There you need to select “Edit”. ![image](docs_ngmobile/source/_static/mobile_layer_context_edit_en.png) ## The Editing Toolbar After switching to Edit mode using any of the methods described in [Switching to Edit mode](#ngmobile-switch-to-edit) section Editing Toolbar is opened at the bottom of the map screen (see [Fig. 988.](#ngmobile-editing-toolbar-pic)). ![image](docs_ngmobile/source/_static/toolbar_edit_layer.png) #### NOTE This editing toolbar is common for all vector layers irrespective of the type of geometry they contain (point, line or polygon). ## Adding features To create a new feature first select a layer you want to add this feature to. Then switch to Edit mode using any of the methods described in [Switching to Edit mode](#ngmobile-switch-to-edit) section. After Editing Toolbar is opened tap “Add new feature” button (item 2 in [Fig. 988.](#ngmobile-editing-toolbar-pic)). #### NOTE Type of geometry of a new feature should correspond to the type of geometry of the layer you want to add this feature to (e.g. you can only add a new point to a point/multipoint vector layer, a new line - to a line/multiline vector layer, etc.). #### NOTE If you want to start adding new features from scratch first you have to create an empty layer as described in [Creating new vector layer](load_geodata.md#ngmobile-create-vector) section. ### Adding a point 1. To create a new point first select a point/multipoint vector layer you want to add this feature to. Then switch to Edit mode using any of the methods described in [Switching to Edit mode](#ngmobile-switch-to-edit) section. 2. Tap “Add new feature” button in Editing Toolbar (item 2 in [Fig. 988.](#ngmobile-editing-toolbar-pic)). 3. In a point layer a new point will appear in the center of the screen highlighted in red. You can move this point anywhere on the map simply by dragging the circular handle attached to it. The red crosshair marker indicates the center of Map screen (see [Fig. 989.](#ngmobile-creation-of-points-pic)). ![image](docs_ngmobile/source/_static/creation_of_points.png) 1. For adding a point to a multipoint layer execute steps 1-2 and then tap “Add point” (item 6 in [Fig. 990.](#ngmobile-creation-of-multipoints-pic)). After that you can set point’s location as described above in the step 3. ![image](docs_ngmobile/source/_static/creation_of_multipoints.png) 1. After a geometry of new point is added you may set its attributes by tapping on the “floppy” button (item 5 in [Fig. 989.](#ngmobile-creation-of-points-pic) and [Fig. 990.](#ngmobile-creation-of-multipoints-pic)). Pressing floppy icon will save a new point and open Attributes editing form (see [Fig. 991.](#ngmobile-input-form-attributes-pic)). ![image](docs_ngmobile/source/_static/input_form_attributes.png) 1. When all the attributes are set tap “Apply changes” button (item 2 in [Fig. 991.](#ngmobile-input-form-attributes-pic)) to save the attributes. If you tap “Back” button instead (item 1 in [Fig. 991.](#ngmobile-input-form-attributes-pic)) the app will warn you of any unsaved changes. You can also attach photos to each feature using “Add photo” button in Attributes editing form (item 3 in [Fig. 991.](#ngmobile-input-form-attributes-pic)). See how to add and label points in our videos: Watch on [youtube](https://youtu.be/WzMJE9ExGXA?si=8yor6iJIVjswuuTu). Watch on [youtube](https://youtu.be/5M9uzmU_lgA?si=ow5589SuuR70Dg1S). ### Adding a line 1. To create a new line first select a linestring/multilinestring vector layer you want to add this feature to. Then switch to Edit mode using any of the methods described in [Switching to Edit mode](#ngmobile-switch-to-edit) section. 2. Tap “Add new feature” button in Editing Toolbar (item 2 in [Fig. 988.](#ngmobile-editing-toolbar-pic)). 3. In a linestring layer a new line will appear in the center of the screen, with one of its vertices highlighted in red (see [Fig. 992.](#ngmobile-creating-lines-pic)). ![image](docs_ngmobile/source/_static/creating_lines_eng.png) You can move the vertices anywhere on the map simply by dragging the circular handle attached to the selected vertex. If you tap on the vertex in the middle of the line, two new vertices will be created automatically. This way you can add as many vertices as you need and shape the line geometry any way you like, including smooth curves. 1. For adding a line to a multilinestring layer execute steps 1-2 and then tap “Add line” (item 6 in [Fig. 993.](#ngmobile-creating-multilines-pic)). After that you can set vertices’ location as described above in the step 3. ![image](docs_ngmobile/source/_static/creating_multilines.png) 1. After a geometry of new line is added you may set its attributes by tapping on the “floppy” button (item 5 in [Fig. 992.](#ngmobile-creating-lines-pic) and [Fig. 993.](#ngmobile-creating-multilines-pic)). Pressing floppy icon will save a new line and open Attributes editing form (see [Fig. 991.](#ngmobile-input-form-attributes-pic)). 2. When all the attributes are set tap “Apply changes” button (item 2 in [Fig. 991.](#ngmobile-input-form-attributes-pic)) to save the attributes. If you tap “Back” button instead (item 1 in [Fig. 991.](#ngmobile-input-form-attributes-pic)) the app will warn you of any unsaved changes. You can also attach photos to each feature using “Add photo” button in Attributes editing form (item 3 in [Fig. 991.](#ngmobile-input-form-attributes-pic)). ### Adding a polygon 1. To create a new polygon first select a polygon/multipolygon vector layer you want to add this feature to. Then switch to Edit mode using any of the methods described in [Switching to Edit mode](#ngmobile-switch-to-edit) section. 2. Tap “Add new feature” button in Editing Toolbar (item 2 in [Fig. 988.](#ngmobile-editing-toolbar-pic)). 3. In a polygon layer a new polygon will appear in the center of the screen, with one of its vertices highlighted in red (see [Fig. 994.](#ngmobile-creation-landfill-pic)). ![image](docs_ngmobile/source/_static/creation_landfill.png) You can move the vertices anywhere on the map simply by dragging the circular handle attached to the selected vertex. If you tap on the vertex in the middle of the line, two new vertices will be created automatically. This way you can add as many vertices as you need and shape the polygon geometry any way you like, including smooth curves. You can also create holes in polygons by tapping button “Add hole” (item 6 in [Fig. 994.](#ngmobile-creation-landfill-pic) or item 8 in [Fig. 995.](#ngmobile-creation-multipolygon-pic)) and creating a hole geometry the same way you create polygon geometry. #### NOTE Hole geometry must be located INSIDE a polygon geometry otherwise the changes won’t be saved! 1. For adding a polygon to a multilipolygon layer execute steps 1-2 and then tap “Add polygon” (item 6 in [Fig. 995.](#ngmobile-creation-multipolygon-pic)). After that you can set vertices’ location as described above in the step 3. ![image](docs_ngmobile/source/_static/creation_multipolygon.png) 1. After a geometry of new polygon is added you may set its attributes by tapping on the “floppy” button (item 5 in [Fig. 994.](#ngmobile-creation-landfill-pic) and [Fig. 995.](#ngmobile-creation-multipolygon-pic)). Pressing floppy icon will save a new line and open Attributes editing form (see [Fig. 991.](#ngmobile-input-form-attributes-pic)). 2. When all the attributes are set tap “Apply changes” button (item 2 in [Fig. 991.](#ngmobile-input-form-attributes-pic)) to save the attributes. If you tap “Back” button instead (item 1 in [Fig. 991.](#ngmobile-input-form-attributes-pic)) the app will warn you of any unsaved changes. You can also attach photos to each feature using “Add photo” button in Attributes editing form (item 3 in [Fig. 991.](#ngmobile-input-form-attributes-pic)). ## Adding current location To add current location to a vector layer press Main actions button (item 8 in [Fig. 943.](main.md#ngmobile-main-activity-pic-1)), and then press a pushpin icon (item 7 in [Fig. 985.](#ngmobile-common-action-menu-pic)). In an opened dialog select a layer you’d like to add current location to (only point/multipoint geometry will be displayed) (see [Fig. 996.](#ngmobile-select-layer-dialog-pic)). If there is only one point/multipoint layer available, it will be selected automatically. ![image](docs_ngmobile/source/_static/ngmobile_selectlayer.png) Current location will be added to selected layer as a new point or a new multipoint consisting of 1 point. You can then add attributes as described in [Adding a point](#ngmobile-add-point) section. #### NOTE You can add current location to Point and Multipoint layers only! ## Adding line or polygon by walk To add line or polygon by walk to a vector layer press Main actions button, and then press a walking man icon (item 5 in [Fig. 985.](#ngmobile-common-action-menu-pic)). In an opened dialog select a layer you’d like to add a new feature to (only linestring/multilinestring and polygon/multipolygon layers will be displayed) (see [Fig. 997.](#ngmobile-select-layer-by-walk-dialog-pic)). ![image](docs_ngmobile/source/_static/ngmobile_selectlayer_by_walk_eng.png) Find more information about adding geometries in [Record tracks to vector layer](tracks.md#ngmobile-edit-vector-tracks) section. #### NOTE You can add tracks to either Linestring/Multilinestring or Polygon/Multipolygon layers! ## Editing a geometry To edit an existing layer first select that vector layer and switch to Edit mode using any of the 3 methods described in [Switching to Edit mode](#ngmobile-switch-to-edit) section. The feature will turn its colour to **Blue**. Then tap on the pencil icon in Bottom toolbar (item 3 in [Fig. 988.](#ngmobile-editing-toolbar-pic)). The feature will turn its colour to **Red** in edit mode. ### Editing a point To start editing a point first select the point/multipoint layer in the Layer tree and switch to Edit mode, then select a point by pressing on it. It will change its colour to blue. Then tap on the pencil icon in Bottom toolbar (item 3 in [Fig. 988.](#ngmobile-editing-toolbar-pic)). The selected point feature will be highlighted in red and have an arrow pointing at it. To change location of a selected point simply pull it or arrow pointing at it to a desired place. Also a point can be moved using buttons from Bottom toolbar - to the center of the screen shown as Red Crosshair marker (item 6 in [Fig. 998.](#ngmobile-editing-of-points-pic)) or to the current device location (see item 7 in [Fig. 998.](#ngmobile-editing-of-points-pic)). You can cancel editing at any point of time, without saving changes, by close editing button. (see item 1 in [Fig. 998.](#ngmobile-editing-of-points-pic)). The system will warn you about this. In the end you can have your geofeatures digitized as shown below. See [Fig. 998.](#ngmobile-editing-of-points-pic). ![image](docs_ngmobile/source/_static/editing_of_points.png) The numbers indicate: 1 - Close editing (without saving); 2 - Feature ID & name of the Layer; 3 - Undo changes; 4 - Redo changes; 5 - Set attributes; 6 - Move point to the Red Crossover (Center); 7 - Move point to the current location. When you edit a multipoint all points included in it change their colour to blue. The selected point will be highlighted in red and have an arrow pointing at it (see [Fig. 998.](#ngmobile-editing-of-points-pic)). ![image](docs_ngmobile/source/_static/ngmobile_edit_multipoint_new_eng.png) The numbers indicate: 1 - Quit (without saving); 2 - Feature ID & Name of the Layer; 3 - Undo changes; 4 - Redo changes; 5 - Set attributes; 6 - Add point; 7 - Delete point; 8 - Move point to the center of Map screen; 9 - Move point to the current location. You can delete selected point (item 7 in [Fig. 999.](#ngmobile-edit-multipoint-pic)), move it to a new location simply pulling it or arrow pointing at it to a desired place, to the center of the screen shown as Red Crosshair marker (item 8 in [Fig. 999.](#ngmobile-edit-multipoint-pic)) or to the current device location (item 9 in [Fig. 999.](#ngmobile-edit-multipoint-pic)). Also you can add a new point to the multipoint (item 6 in [Fig. 999.](#ngmobile-edit-multipoint-pic)). ### Editing a line To start editing a line first select the linestring/multilinestring layer in the Layer tree and switch to Edit mode, then select a line by pressing on it. It will change its colour to blue. Then tap on the pencil icon in Bottom toolbar (item 3 in [Fig. 988.](#ngmobile-editing-toolbar-pic)). The line will change its colour to red and will show all its vertices. Current vertex is highlighted in red and has an arrow pointing at it. The center of line segment between vertices is also indicated. Pressing the center of line segment leads to two new vertex being added to the line. Selected vertex can be moved simply by pulling it or arrow pointing at it to a desired place. Also a vertex can be moved using buttons from Bottom toolbar - to the center of the screen shown as Red Crosshair marker (item 7 in [Fig. 1000.](#ngmobile-editing-lines-pic)) or to the current device location (see item 8 in [Fig. 1000.](#ngmobile-editing-lines-pic)). You can delete the unrequired vertex by highlighting it and tapping delete vertex (see item 6 in [Fig. 1000.](#ngmobile-editing-lines-pic)) In this way you can even get a smooth curve as per the geographic shape. In the end you can have your geofeatures digitized as shown below. See [Fig. 1000.](#ngmobile-editing-lines-pic). ![image](docs_ngmobile/source/_static/editing_lines_eng.png) The numbers indicate: 1 - Quit (without saving); 2 - Feature ID & name of the Layer; 3 - Undo changes; 4 - Redo changes; 5 - Set attributes; 6 - Delete vertex; 7 - Move vertex to the center of Map screen; 8 - Move vertex to the current location; 9 - Append geometry by walk; 10 - Edit by touch. #### NOTE If only one vertex remains in a line this line is deleted automatically. When you edit a multiline all points included in it change their colour to blue. The selected point will be highlighted in red and have an arrow pointing at it (see [Fig. 1001.](#ngmobile-edit-multilines-pic)) ![image](docs_ngmobile/source/_static/editing_multilines_eng.png) You can delete selected point or line (item 7 and 8 in [Fig. 1001.](#ngmobile-edit-multilines-pic)), move a point to a new location simply pulling it or arrow pointing at it to a desired place, to the center of the screen shown as Red Crosshair marker (item 9 in [Fig. 1001.](#ngmobile-edit-multilines-pic)) or to the current device location (item 10 in [Fig. 1001.](#ngmobile-edit-multilines-pic)). Also you can add a new line to the multiline (item 6 in [Fig. 1001.](#ngmobile-edit-multilines-pic)). ### Editing a polygon To start editing a polygon first select the poligon/multipoligon layer in the Layer tree and switch to Edit mode, then select a poligon by pressing on it. It will change its colour to blue. Then tap on the pencil icon in Bottom toolbar (item 3 in [Fig. 988.](#ngmobile-editing-toolbar-pic)). The polygon will change its colour to red and will show all its vertices. Current vertex is highlighted in red and has an arrow pointing at it. The center of line segment between vertices is also indicated. Pressing the center of line segment leads to two new vertex being added to the line. New vertex can be moved or otherwise edited right after it has been added. Selected vertex can be moved simply by pulling it or arrow pointing at it to a desired place. Also a vertex can be moved using buttons from Bottom toolbar - to the center of the screen shown as Red Crosshair marker (item 7 in [Fig. 1002.](#ngmobile-editing-polygon-pic)) or to the current device location (see item 8 in [Fig. 1002.](#ngmobile-editing-polygon-pic)). You can delete the unrequired vertex by highlighting it and tapping “Delete vertex” button (see item 6 in [Fig. 1002.](#ngmobile-editing-polygon-pic)). #### NOTE If only two vertices remain in a poligon this poligon is deleted automatically. ![image](docs_ngmobile/source/_static/editing_polygon.png) When you edit a multipolygon all points included in it change their colour to blue. The selected point will be highlighted in red and have an arrow pointing at it (see [Fig. 1003.](#ngmobile-edit-multipolygon-pic)). ![image](docs_ngmobile/source/_static/editing_multipolygon_eng.png) You can delete selected point or polygon (item 7 and 10 in [Fig. 1003.](#ngmobile-edit-multipolygon-pic)), move a point to a new location simply pulling it or arrow pointing at it to a desired place, to the center of the screen shown as Red Crosshair marker (item 11 in [Fig. 1003.](#ngmobile-edit-multipolygon-pic)) or to the current device location (item 11 in [Fig. 1003.](#ngmobile-edit-multipolygon-pic)). Also you can add a new polygon to the multipolygon (item 6 in [Fig. 1003.](#ngmobile-edit-multipolygon-pic)) and add or delete a hole (item 8 or 9 in [Fig. 1003.](#ngmobile-edit-multipolygon-pic)). ## Editing attributes To start editing attributes first select a layer you want to edit attributes in. Then switch to Edit mode using any of the methods described in [Switching to Edit mode](#ngmobile-switch-to-edit) section. After Editing Toolbar is opened tap “Attributes info” button (item 5 in [Fig. 988.](#ngmobile-editing-toolbar-pic)). This will open Attributes Info panel as shown in [Fig. 1004.](#ngmobile-attributes-info-pic) below. ![image](docs_ngmobile/source/_static/ngmobile_attributes_info.png) #### NOTE NextGIS Mobile shows the following attribute fields by default (see item 4 in [Fig. 1004.](#ngmobile-attributes-info-pic)): * For Point/Multipoint layers: each point’s location (in Latitude/Longitude). * For Line/Multiline layers: length of each line feature (in meters). * For Polygon/Multipolygon layer: length of each polygon feature’s perimeter (in meters) & area of each polygon feature (in square meters). ### Editing attributes using standard form To start editing attributes using standard form first tap on “Set attributes” button (see item 6 in [Fig. 1004.](#ngmobile-attributes-info-pic)). This opens a standard Attributes editing form as shown in [Fig. 991.](#ngmobile-input-form-attributes-pic). After all the attributes are set tap “Tick” icon in the top right corner (item 2 in [Fig. 991.](#ngmobile-input-form-attributes-pic)) to save the edits. #### NOTE If you tap the back button in the top left corner (item 1 in [Fig. 991.](#ngmobile-input-form-attributes-pic)) instead, the system will warn you about unsaved changes. The Camera icon at the bottom of a standard Attributes editing form (item 3 in [Fig. 991.](#ngmobile-input-form-attributes-pic)) allows to add to each feature image files (e.g. photos) from the local storage or take new photos. ### Editing attributes using custom form If the layer was [created from a custom form (NGFP)](load_geodata.md#ngmobile-import-ngfp) the custom Attributes editing form will be used for editing. An example of such custom form is shown below in [Fig. 1005.](#ngmobile-custom-form-pic-1): ![image](docs_ngmobile/source/_static/custom_form.png) Custom Attributes editing forms may contain the following entry fields: * Text; * Space; * Text field; * List; Tandem list; * Checkbox; * Radio button; * Date Picker; * Photo. “Text” field is used to provide additional information about geometry feature. “Space” field is used to increase intervals between fields. “Text field” can be used to add text or integers, depending on the field type (see item 4 in [Fig. 1005.](#ngmobile-custom-form-pic-1)). “List” and “Tandem list” fields are used to store and select values included in custom lists, for example, “List” - region/republic/territory, “Tandem list” - district/area in region/republic/territory (see item 5 in [Fig. 1005.](#ngmobile-custom-form-pic-1)). “Checkbox” field allows to check or uncheck a value. “Date picker” field allows to select date, time or both of them (see item 6 in [Fig. 1005.](#ngmobile-custom-form-pic-1)). “Radio button” field allows to select one element from a list of mutually exclusive options (see item 7 in [Fig. 1005.](#ngmobile-custom-form-pic-1)). “Photo” field allows to take a new photo or to add photos from the local storage. After all the attributes are set tap “Tick” icon in the top right corner (item 2 in [Fig. 1005.](#ngmobile-custom-form-pic-1)) to save the edits. #### NOTE If you tap the back button in the top left corner (item 1 in [Fig. 1005.](#ngmobile-custom-form-pic-1)) instead, the system will warn you about unsaved changes. # egrn_kvartals_cover.html.md # Cadastral plan of the territory The tool forms list of ID of cadastral units. Input: * Area of interest - polygon in GeoJSON format. Area must be up to 50 km². * Mode - choose between kpt and kvzu. Output: * CSV file Launch the tool: [https://toolbox.nextgis.com/t/egrn_kvartals_cover](https://toolbox.nextgis.com/t/egrn_kvartals_cover) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # egrn_splitter.html.md # EGRN Splitter Split extra large EGRN extracts into layes of smaller size, reducing the volumes for futher conversion. Inputs: * Input extract. Select input extract ZIP file. Outputs: * None Launch the tool: [https://toolbox.nextgis.com/t/egrn_splitter](https://toolbox.nextgis.com/t/egrn_splitter) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # elevation_qgis.html.md # How to open elevation data in QGIS * [Order elevation data](https://data.nextgis.com/en/) for your area of interest, e.g. in GeoPackage (QGIS) and GeoTIFF format choosing the step of contour lines. * Go to the [orders](https://data.nextgis.com/en/orders/actual/) page and download the archive when it’s complete. * **Unpack** the archive. * Download and install [QGIS](https://qgis.org/en/site/forusers/download.html). * Launch QGIS. * To open a preset GIS project (which includes all layers with customized styles), click “Project” > “Open” and in pop-up window select the saved file “data.qgs”. ![image](docs_data/source/_static/elev_project_ngqgis_en.png) * The project will be added to QGIS; data is ready to go. ![image](docs_data/source/_static/elev_opened_en.png) You can also add elevation data as files to an existing project. * Drag and drop the following files from the unpacked data folder to QGIS interface: **hillshade.tif**, **dem.tif** and **contour_lines** (extention depends on the file type, for example if you purchased Shape file, you’ll need contour_lines.shp). ![image](docs_data/source/_static/elev_files_qgis_en.png) * Arrange the layers in the list in the most convenient way to work from top to bottom: 1. Contours 2. Hillshade 3. DEM Detailed video **How to open elevation data in QGIS** - can be viewed [here](https://youtu.be/pwfJy5o5BmU/) # embed_webmap.html.md # How to embed a Web Map on your website All Web Maps created on nextgis.com can be easily embedded into your website. #### NOTE This functionality is available only to nextgis.com [Mini and Premium](http://nextgis.com/nextgis-com/plans) users. To embed a Web Map: * Open Web Map * Click on the “Share” panel on the left sidebar * If you wish to, customize map width and height and [other parameters](https://docs.nextgis.com/docs_ngcom/source/embed_webmap.html#ngcom-embed-webmap-settings). * Copy the code * Paste this code to your site ![image](docs_ngcom/source/_static/embed_webmap_en_2.png)![image](docs_ngcom/source/_static/webmap_on_site_en.png) You can preview the embedded map before publishing it by pressing **Preview** button. ## Embeded map settings **Map size** - width and height in pixels. **Link to the main map** - to go from the site to the map page in the Web GIS. **Generate events** - for integration and programmatic interaction with the iframe. You can also embed a Web Map with additional tools and panels. This will allow users, for instance, to enable and disable particular layers. **Tools** available for embeded map: - feature identification; - measuring area and distance; - cursor location and extent coordinates; - scale line; - initial extent; - marking user location; - zoom; - scale info. You can also choose which **panels** will be available on the map: - description; - layers; - search. If several panels are added, you can use the **Active panel** menu to select one of them to be displayed by default or have the map open with the panels minimized. All settings are included in the code. ![image](docs_ngcom/source/_static/embed_extended_en.png) If you are a developer check out the [code.nextgis.com](https://code.nextgis.com/) library suite and the [NGW API](https://docs.nextgis.com/docs_ngweb_dev/doc/toc.html). ## How to share a link to a particular Web Map feature Using specially generated GET queries you can share a link to a particular feature of a layer. The link will open with the geographical context that you can select in the Web Map settings. All you need to do is create links in the information systems. By clicking on them users will be directed to the map with the selected feature and context. Such links can be automatically generated by your system integrated with NextGIS Web. Here’s an example: [https://demo.nextgis.com/resource/6118/display?panel=layers&hl_lid=6108&hl_attr=OSM_ID&hl_val=230629285&zoom=17](https://demo.nextgis.com/resource/6118/display?panel=layers&hl_lid=6108&hl_attr=OSM_ID&hl_val=230629285&zoom=17) * [https://demo.nextgis.com/resource/7023/display?panel=layers](https://demo.nextgis.com/resource/7023/display?panel=layers) - the “pure” Web Map link; * hl_lid – layer ID; * hl_attr – attribute (name of attribute field of feature ID); * hl_val – value of feature ID; * zoom - value in numbers with 1 as a minimum. ![image](docs_ngcom/source/_static/webmap_feature_lik_en.png) You can make the link manually ([more on how to do it](https://docs.nextgis.com/docs_ngweb/source/webmaps_client.html#ngw-webmaps-client-feature-link)). # embed_webmap.html.md # Embed Web Map on a Web page All Web Maps created on nextgis.com can be easily embedded into your website. #### NOTE This functionality is available only to nextgis.com [Mini and Premium](http://nextgis.com/nextgis-com/plans) users. To embed a Web Map: * Open Web Map * Click on the ![panel_share](docs_ngweb/source/_static/panel_share.png) “Share” panel on the left sidebar * If you wish to, customize map width and height and [other parameters](https://docs.nextgis.com/docs_ngcom/source/embed_webmap.html#ngcom-embed-webmap-settings). * Copy the code * Paste this code to your site ![image](docs_ngweb/source/_static/embed_webmap_en_2.png)![image](docs_ngweb/source/_static/webmap_on_site_en.png) You can preview the embedded map before publishing it by pressing **Preview** button. ## Embeded map settings **Map size** - width and height in pixels. **Link to the main map** - to go from the site to the map page in the Web GIS. **Generate events** - for integration and programmatic interaction with the iframe. You can also embed a Web Map with additional tools and panels. This will allow users, for instance, to enable and disable particular layers. **Tools** available for embeded map: - feature identification; - measuring area and distance; - cursor location and extent coordinates; - scale line; - initial extent; - marking user location; - zoom; - scale info. You can also choose which **panels** will be available on the map: - description; - layers; - search. If several panels are added, you can use the **Active panel** menu to select one of them to be displayed by default or have the map open with the panels minimized. All settings are included in the code. ![image](docs_ngweb/source/_static/embed_extended_en.png) If you are a developer check out the [code.nextgis.com](https://code.nextgis.com/) library suite and the [NGW API](https://docs.nextgis.com/docs_ngweb_dev/doc/toc.html). # embedsvg.html.md # Embed SVG into QGS/QML The tool adds SVG markers to QGS project file or QML style file. QGIS enterface allows to embed SVG markers to style, but only one-by-one. If a style has a big variety of markers, this takes a lot of time and concentration to avoid mistakes. The tool embeds all SVG markers of the layer style, or of the entire QGIS project. Input: ZIP-archive with * SVG files; * QGS project file / QML style file, into which SVG vector markers will be embedded. Output: * ZIP-archive with updated QGS project file / QML style file (depending on the input). Launch the tool: [https://toolbox.nextgis.com/t/embedsvg](https://toolbox.nextgis.com/t/embedsvg) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # empty_geoms.html.md # Empty geometries in Web GIS layer Find and remove empty geometries in a Web GIS layer. Inputs: * Web GIS address. URL of your Web GIS, e.g. [https://sandbox.nextgis.com](https://sandbox.nextgis.com); * ID of the vector layer. Numbers at the end of the URL of the vector layer resource in Web GIS; * Login. NextGIS ID or Web GIS username; * Password. Web GIS user password; * Remove. Tick to remove empty geometry features from Web GIS layer. Outputs: * Result. A list of empty geometry features IDs. Launch the tool: [https://toolbox.nextgis.com/t/empty_geoms](https://toolbox.nextgis.com/t/empty_geoms) **Try the tool in action by downloading our example:** [Input data set](https://nextgis.com/data/toolbox/empty_geoms/empty_geoms_inputs.zip) to test the tool. The archive contains step-by-step instructions. [Result example](https://nextgis.com/data/toolbox/empty_geoms/empty_geoms_outputs.zip) of the tool run. # encoding_change.html.md # How to change data encoding * [Order data](https://data.nextgis.com/en/) for your area of interest, e.g. in GeoJSON format. * Go to the [orders](https://data.nextgis.com/en/orders/actual/) page and download the archive when it’s complete. * **Unpack** the archive. * Import target layer, which encoding you want to change, in [QGIS](https://qgis.org/en/site/forusers/download.html). * Right-click on a target layer in Layers Panel, select option “Save as…”. Thus you’ll create a copy of the layer, but in desired encoding. ![image](docs_data/source/_static/cs_change_select_save_en.png) * In the pop-up window select format “ESRI Shapefile” and the desired encoding (in this example - windows-1251), and also specify a name and a path to a new file. Press “OK”. ![image](docs_data/source/_static/encoding_change_en.png) * A new layer with the desired encoding will be created. ![image](docs_data/source/_static/encoding_change_result_en.png) # eraser.html.md # Erase overlapping areas from layer Erases parts of polygonal features, overlapping with geometries from another layer. Inputs: * Target layer (erase from) - file in OGR-supported format (ZIP archive for ESRI Shapfile); * Layer with subtractable objects. File in OGR-supported format (ZIP archive for ESRI Shapfile). Outputs: * File with modified features in the same format. Launch the tool: [https://toolbox.nextgis.com/t/eraser](https://toolbox.nextgis.com/t/eraser) ![image](docs_toolbox/source/_static/eraser_result_en.png) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # erosion_analysis.html.md # Erosion Susceptibility Analysis RUSLE-based erosion susceptibility analysis using LS-factor, STI, SPI, profile curvature, and slope. Produces an Erosion Susceptibility Index (ESI) scaled 0-100 with 5-level classification. Inputs: * Terrain Analysis Package (ZIP). ZIP file from [Comprehensive Terrain Analysis](https://toolbox.nextgis.com/t/terrain_analysis) containing DEM, slope, flow accumulation, curvature, STI, SPI, and manifest.json * Weight: LS-Factor. Weight for the LS-factor indicator (default: 0.35) * Weight: STI. Weight for the Sediment Transport Index (default: 0.25) * Weight: SPI. Weight for the Stream Power Index (default: 0.15) * Weight: Curvature. Weight for the profile curvature indicator (default: 0.10) * Weight: Slope. Weight for the slope indicator (default: 0.15) * Hotspot Threshold. ESI value above which areas are classified as hotspots (default: 65) * Spectral Indices Package (ZIP). Optional ZIP from spectral_indices with vegetation index aggregates. When provided, a vegetation indicator is added to the weighted overlay. * Weight: Vegetation Index. Weight for the vegetation index indicator (default: 0.10). Only used when spectral_zip is provided. Other weights are scaled down proportionally. Outputs: * Erosion Analysis Package (ZIP). ZIP archive with erosion susceptibility rasters, vectors, statistics, and manifest * Summary. Human-readable summary of the erosion analysis results * Manifest JSON. JSON manifest string describing all outputs Launch the tool: [https://toolbox.nextgis.com/t/erosion_analysis](https://toolbox.nextgis.com/t/erosion_analysis) Example: ![image](docs_toolbox/source/_static/analysis_input_en.png)![image](docs_toolbox/source/_static/erosion_analysis_result_en.png) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # error_report.html.md # Error reporting If request failed, error code will be in HTTP header and error description text in JSON of response body. **Example response**: ```http HTTP/1.1 403 Forbidden Server: nginx/1.4.6 (Ubuntu) Date: Sun, 21 Sep 2014 00:05:31 GMT Content-Type: application/json; charset=UTF-8 Content-Length: 44 Connection: keep-alive {"message": "Attribute 'keyname' forbidden"} ``` In some cases the html text or empty body may returned. For example, if internal server error occurred, HTTP status code set to 500 and html text returns. # excel.html.md # How to open data in Excel * [Order data](https://data.nextgis.com/en/) for your area of interest in CSV format. * Go to the [orders](https://data.nextgis.com/en/orders/actual/) page and download the archive when it’s complete. * **Unpack** the archive. * Launch Excel. Select the “Data” tab > “From Text/CSV” and in the pop-up window find the desired layer in CSV format, click “Import”. ![image](docs_data/source/_static/excel1.png) * In the new window for the File Origin specify “Unicode (UTF-8)”, for Delimiter - “Tab”, then click “Load”. ![image](docs_data/source/_static/excel2.png) * Data is added to Excel spreadsheet ![image](docs_data/source/_static/excel3.png) # exif2resource.html.md # Photos with EXIF to NGW layer Convert a set of georeferenced photos with EXIF tags into NextGIS Web point vector layer. You can also add photos to an existing point layer. NextGIS Web (NGW) is a geodata managing system. You can use it for free after [signing up](https://docs.nextgis.com/docs_ngcom/source/create.html). With NextGIS Web you can store geodata, create interactive online maps, give access to them to your teammates and clients, edit features directly on the map and in the feature tables, as well as process them with specialized Toolbox tools. [More on what NGW can do](https://docs.nextgis.com/docs_ngweb/source/general.html). Input: * Photos. ZIP archive containing photos with EXIF tags. No subfolders, no extra files - only photos; * Web GIS link. NextGIS Web GIS link, e.g.: [https://sandbox.nextgis.com](https://sandbox.nextgis.com) * Login. NextGIS ID or Web GIS user login. User must have permission to write data. * Password. Password for the user above * Group ID. Numbers at the end of the resource group URL. Default is 0, layer will be created in the Main resource group (root). * Layer ID. To add photos to an existing layer, enter the numbers at the end of its URL * Mode. Working mode: set to ADD to add points to existing ones or REPLACE to wipe existing points and add new ones. Also you can create an additional field storing some information, for example, the author of the photos: * Additional attribute. Name of the attribute field to store a custom value * Additional field value. A text string to add to each new feature Output: * Vector layer where each photo corresponds to a point. The same photo is added as an attachment to this point. Watch the video on [youtube](https://youtu.be/r5v0wzOufV8). Launch the tool: [https://toolbox.nextgis.com/t/exif2resource](https://toolbox.nextgis.com/t/exif2resource) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # explication2poly.html.md # Explication to a polygon The tool converts an explication report in correct format to a polygon. Explication report has to be an MS Excel file that contains data about direcions and distances between points. Directions should be presented in degrees and corresponds to magnetic azimuth. ![image](docs_toolbox/source/_static/poly2explication-1.png) Inputs: * XLS(X) file - MS Excel file containing the explicaton report; * Latitude of an anchor point. This value is specified in the coordinate system EPSG 4326. Use dot as a separator between the integer part and the fractional part; * Longitude of an anchor point. This value is specified in the coordinate system EPSG 4326. Use dot as a separator between the integer part and the fractional part. #### NOTE Due to inaccuracies in measuring angles and distances on the ground, the first point of the output polygon may be farther from the last one than on the ground. As a rule, the difference does not exceed 2-3 meters. Outputs: * Zipped polygonal shapefile Launch the tool: [https://toolbox.nextgis.com/t/explication2poly](https://toolbox.nextgis.com/t/explication2poly) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # export.html.md # Export to file ## Save layer as file To save a **layer** to your device select in the main menu Layer ‣ Save as or in the Layers panel in the layer’s context menu select Export ‣ Save features as. ![image](docs_ngconnect/source/_static/NGConnect_export_save_en.png) ## Save vector layer style To save a QGIS **style** of a vector layer, in the Connect panel open its context menu and select **Download as QML**. ![image](docs_ngconnect/source/_static/NGConnect_export_style_save_en.png) # export.html.md # Export track as GPX Tracks can be exported as GPX files. On the main screen of the app in the “Tracks” section select the track you want to export, as shown on [Fig. 1130.](#select-track-share-pic). ![image](docs_ngtracker/source/_static/select_track_share_en.png) Press **Share** on the right of the track and choose where to save or send it in GPX format. ![image](docs_ngtracker/source/_static/select_mode_share_en.png) Also you can export tracks as GPX files [from your Web GIS](https://docs.nextgis.com/docs_ngweb/source/trackers.html#track-export). # extension.html.md # Extensions ## General Information The following extensions are available to increase the functionality of the software: 1. **Basemaps** - adding and managing basemaps. 2. **File buckets** - file sets, adds ability to upload any files, including non-geospatial ones. 3. **QGIS** - map rendering with QGIS. 4. **MapServer** - map rendering with MapServer. 5. **Audit** - logging user events such as log in/out, resource addition or removal etc. 6. **NextGIS ID on premise** - enterprise authentification and authorization features, such as LDAP or OAuth. Specific extensions may require installation of additional software components. # extracts.html.md # NextGIS Data extracts ## How the files are organized When you order data on [NextGIS Data](https://data.nextgis.com/en/), you get a ZIP archive that need to be unpacked before use. The name of the archive includes the date of the extract, its format and the code of the region (or “custom” if you selected your own area). The archive unpacks to a folder containing the following files and subfolders. All extracts include: * Boundary of the selected area `order_boundary.geojson`. * Folder called `data`. It contains data layers and styles as well the data boundary in the selected format. * A text file that has information on copyright and licencing, `readme.txt`. Depending on the data type and format the extracts may also contain: * Project file for QGIS data.qgs\`, ArcMap `data.mxd`, ArcGIS Pro `data.aprx` or Mapinfо `data.wor`. Double-click on it to open in the corresponding software. All layers are already added to the project and stylized. > * QGIS projects are included for all products, if you select **Geopackage, Shape or GeoJSON** format. > * Projects for ArcMap and ArcGIS Pro are available for all projects if you select **Geodatabase or Shape** format. > * Project for MapInfo is available only for the Basemap if you select **Mapinfo TAB** format. * Folder containg icons, `svg`. Some styles use vector markers in SVG format. This folder need to be next to the project for the style to work. ## Attributes in OpenStreetMap extracts Usually GIS data is organized into layers, each with its specific geometry type and a set of attributes. OpenStreetMap project organizes data differently. It’s one big database containing interlinked geometries. Each feature has tags in the form of key-value pairs. Contributors can invent new keys, but the standard ones are described on wiki.openstreetmap.org. In NextGIS Data extracts the features are split into layers with the most important attributes. * [List of attributes with descriptions](https://docs.google.com/spreadsheets/d/e/2PACX-1vRIUla6YhWLBPCfKZ6ldWZ_xAO7lc-DtHcS6_MI4knV1RgWgkfm0MOKaQJXHQ1Cnxg8UDl0hXpt4Eqk/pubhtml) * For the details of OSM tags see [OpenStreetMap wiki](https://wiki.openstreetmap.org/wiki/Map_features) ## Attributes of other products * [Elevation](https://docs.google.com/spreadsheets/d/1PRSpeLWrFttCS7tz8rk--R7aoV_B8LuGbDuUbhLyWJg/pubhtml) * [Buildings AI](https://docs.google.com/spreadsheets/d/e/2PACX-1vRgaXygAc2KXQp-nGK2t8KcBYqCb6cttxCO6UzUkIdSafVxQmxhUBrGIV3pLjCMi64Ys0_tAwa61ZAy/pubhtml) * [Roads AI](https://docs.google.com/spreadsheets/d/e/2PACX-1vT6LtVjaJy8GAOwBGFGqjL5NX0meddQbwG0qtiZuqBPMmDsjLAxYWM4ARzFDegb2UG2vhlHaLefOP2s/pubhtml) * [Overture](https://docs.google.com/spreadsheets/d/e/2PACX-1vS2K6m2aTT-CRLZJROrAcsnBAcDPEcWJkxdh9l1dbSxpkSQ3UzusYRixNfCL8v74tXB7DFYjxltRInP/pubhtml?gid=0&single=true) * [Places](https://docs.google.com/spreadsheets/d/e/2PACX-1vTPDiDiyf4nrfY-8cER2qyzjolFPDeOo_a2qa1ZICCr8XtH5Ba4cfKb2NZd2UB9S3zbiSzOmWK6dNDw/pubhtml?gid=125713722&single=true) * [Landcover](https://docs.google.com/spreadsheets/d/e/2PACX-1vR9Uf9DzxXdxHH6h0lUnFd27bRNN6bRnsVpuVRPRnFTmIEnELZVGTAFXdtAg68zpUshCC2l1bi7F2tg/pubhtml) * [Heritage](https://docs.google.com/spreadsheets/d/e/2PACX-1vTC_wgWY28Y3QjgvJ-Q8Jmu6Doxxhpz-Hm_b3JwEjqcpk8bpQmRJq6ldwgZoHWbWxk-FC2Wi0nyjXnY/pubhtml) * [Satellite](https://data.nextgis.com/en/region/custom/sat/?format=geotiff) - three-band RGB raster, not other attributes * [Tiles](https://data.nextgis.com/en/region/custom/tiles/) - no attributes * [Printable map](https://data.nextgis.com/en/region/custom/printmap/) - no attributes, the legend is included # faq_ngmobile.html.md # Solving problem (Q&A) In this section you can find answers to the most frequently asked questions about using NextGIS Mobile (NGM). ## Application sign in ### What should the username and password be to sign in to NGM? To sign in to NGM, you need to use NextGIS ID, account you’ve created while registering at my.nextgis.com [Here](https://docs.nextgis.com/docs_ngcom/source/create.html#nextgis-id/) you can see how to get it. If you created, but forgot the password for NextGIS ID, follow [password recovery instruction](https://docs.nextgis.com/docs_ngcom/source/faq_webgis.html#q-nextgis-id/). Note that log in part is optional and only needed if you’d like extended NGM functionality. ### I sign in to NGM as administrator and the **application** shows an error. What am I doing wrong? To sign in to NextGIS Mobile, you need to use **NextGIS ID**. Administrator is a Web GIS username local to this Web GIS. You cannot sign in to NGM with this name. ### I entered mywebgis.nextgis.com as my authorization server but stil can’t sign in. What am I doing wrong? If you’re on Premium your authorization server is my.nextgis.com. If you entered something else - please remove it. Different authorization setting is for NGW installations on your own servers. ## Other issues ### Something went wrong on my device and the data is corrupted. Is there a way to restore it? Try restoring the layers in the Settings –> Map –> Restore broken layer [More details](https://docs.nextgis.com/docs_ngmobile/source/settings.html#ngmob-restore-layer). # faq_webgis.html.md # Problem Solving (Q&A) In this section you can find answers to the most frequently asked questions about using Web GIS. ## How to sign in to Web GIS ### I have a Web GIS. How do sign in? In the upper right corner press “Sign in”, then select “Sign in with NextGIS ID”. Enter the credentials of your global NextGIS account (username or email used for registration and password). If you forgot your password or login, see instructions [below](https://docs.nextgis.com/docs_ngcom/source/faq_webgis.html#ngcom_change_passwords_webgis). ### I want to let another user access my Web GIS. How can I do it? 1. The user creates an account on [my.nextgis.com](https://my.nextgis.com/). 2. The owner of the Web GIS goes to the [Team](https://docs.nextgis.com/docs_ngcom/source/teams.html#team-management) page and adds a new team member by username. 3. The user logs in with NextGIS ID. ## Access recovery and passwords ### I forgot my account password (NextGIS ID). What to do? To recover a password from *NextGIS ID*, follow these steps: 1. Go to [my.nextgis.com](https://my.nextgis.com//) 2. Select “Forgot password?” ![image](docs_ngcom/source/_static/forgot_pass_ngid_en_2.png) ### I forgot both username and password of my account. What to do? If you lost both username (email) and password from your account and can’t recover access to your Web GIS, follow these steps: 1. Write us at [support@nextgis.com](mailto:support@nextgis.com) with the address of your Web GIS. Add information that will help us identify you as the owner of this Web GIS. Agreement number or paid invoice or any other information. 2. We will let you know in a reply what your login is. 3. Use instruction above “I forgot my account password (NextGIS ID). What to do?” to recover your password and futher access to your account. ### I forgot the password for a local Web GIS user created by the administrator If you have forgotten the password for a local user, an administrator can reset it: 1. Log in to your Web GIS [https://username.nextgis.com/](https://username.nextgis.com/) as a user with **administrator** access. 2. Open the main menu in the upper right corner of the interface. 3. Go to Control Panel. 4. Open the user list. 5. Change the password in the user settings. ![image](docs_ngcom/source/_static/control_list_users_en.png)![image](docs_ngcom/source/_static/admin_change_user_password_eng.png) ## Personal data ### What personal data are stored by NextGIS services? 1. Log in with your account at [https://my.nextgis.com](https://my.nextgis.com). See FAQ sections above to restore access. 2. Go to Profile, Profile management section 3. Choose Data export, press Request data. You will receive a copy of your personal data processed by NextGIS. ### How do I completely remove all personal data stored at NextGIS? 1. Log in with your account at [https://my.nextgis.com](https://my.nextgis.com). See FAQ sections above to restore access. 2. Go to Profile, Profile management section 3. Choose Profile removal, press Delete profile. Your profile and personal data will be completely deleted. This can’t be undone. ## Two NextGIS accounts. Background NextGIS is growing fast and it has several services and products that use authorization. Web GIS is one of this services. As a rule, a typical NextGIS platform user needs 2 accounts: a global and a local one. But, for some specific tasks, it is possible that just one of them will be enough. ### Global account Most services require a **global** account NextGIS ID. This is the typical account that acts uniformly almost everywhere. It gives access to all services. This account is created by registration at [http://my.nextgis.com](http://my.nextgis.com). Email or login and password provided during registration can be used to sign in with services. ### Local account (your Web GIS account) For each Web GIS it’s possible to enable its own account system that operates locally within that Web GIS. These accounts are created in the Web GIS control panel by a user with appropriate authority (usually administrator). They are not tied to any E-mails and don’t have access to other functions of NextGIS platform, just to the Web GIS. # favorites.html.md # Favorites In NextGIS Web, you can have quick access to the most frequently used resources (groups, layers, maps and fragments of maps) through the Favorites feature. To add a resource to Favorites, navigate to its page, click on the user initials in the top panel to open the menu and press the star icon. Click on the Favorites item in the menu to open the Favorites page. ![image](docs_ngweb/source/_static/ngw_add_favorites_en.png) On the Favorites page you can edit the list of added resources and modify names of Web Map fragmets (more about managing Favorites [here](https://docs.nextgis.com/docs_ngcom/source/favorites.html)). ![image](docs_ngweb/source/_static/ngw_edit_wm_fragment_name_en.png) ## How to add Web Map fragment to Favorites You can add a Web Map to Favorites with the extent different from the initial extent chosen in the Web Map settings. To do so open the map, modify the extent, then open the “Share” tab and press the star next to the “Copy link” button. ![image](docs_ngweb/source/_static/ngw_add_wm_fragment_fav_en.png) You can set up a custom name for the fragment or keep the default (“Fragment”). ![image](docs_ngweb/source/_static/ngw_name_wm_fragment_fav_en.png) The fragment name can later be edited from the Favorites page (see below). ## Favorites list editing The Favorites page contains a list of the added resources. Above each one there is the name of the parent resource, if it’s not the Main resource group. ![image](docs_ngweb/source/_static/ngw_favorites_en.png) To open the page of a resource, press **Go to** button on the right end of the row. Press **Edit** button to modify the list. ![image](docs_ngweb/source/_static/ngw_edit_wm_fragment_name_en.png) To remove a resource from Favorites, click the bin icon on the right. No additional confirmation needed. Deleting from Favorites will not affect the resource itself. You can add it to Favorites and remove it multiple times. Also from this page you can modify the name of the added Web Map fragments. To exit the editing mode, press **Done**. See how to use Favorites in our video: Watch on [youtube](https://youtu.be/Nk42wbopjBk?si=mK0uk6t6c4lE0i-z). # feature_edit.html.md # Edit vector features You can modify **geometries and attributes** of vector features via Web interface: * [in the Feature table](https://docs.nextgis.com/docs_ngweb/source/feature_table.html) , * or on a Web Map (see below), * as well as [in QGIS desktop app](https://docs.nextgis.com/docs_ngconnect/source/edit.html). If you enable [feature versioning](https://docs.nextgis.com/docs_ngweb/source/layers_settings.html#create-vector-layer-vers-pic), all the edits are recorded in the [layer history](https://docs.nextgis.com/docs_ngweb/source/version.html#nextgis-web). Editing is available for users who have permissions to [read and modify data](https://docs.nextgis.com/docs_ngcom/source/permissions.html). The “Modify data” permission can be set for the entire resource group where the data is stored or for individual layers. [How to check user permissions](https://docs.nextgis.com/docs_ngcom/source/permissions.html#ngcom-permissions-view). ![image](docs_ngweb/source/_static/webgis_permiss_editing_en.png) By default, when a new Web Map is created, users can edit features directly on it. You can [disable feature editing on the map](https://docs.nextgis.com/docs_ngweb/source/feature_edit.html#ngw-allow-edit) in Web Map settings. ## Edit mode on a Web Map 1. Open [Web Map](https://docs.nextgis.com/docs_ngweb/source/webmaps_client.html) and select the layer with the feature you need to edit. 2. Open dropdown menu by pressing the three dots to the right of the layer name (see [Fig. 391.](#webmap-edit)), then select “Edit”. ![image](docs_ngweb/source/_static/webgis_edit_objects_en_2.png) 1. Editing toolbar will appear on the Web Map (see [Fig. 392.](#webmap-edit-panel)): ![image](docs_ngweb/source/_static/webmap_edit_panel_en.png) * ![+ in a circle](docs_ngweb/source/_static/button_maptool_add.png) [Create feature](https://docs.nextgis.com/docs_ngweb/source/feature_edit.html#ngw-create-objects) - this tool is active when you first enter the edit mode; * ![pencil](docs_ngweb/source/_static/button_maptool_edit.png) [Edit](https://docs.nextgis.com/docs_ngweb/source/feature_edit.html#webmap-edit-vertices); * ![outward arrows](docs_ngweb/source/_static/button_maptool_move.png) [Move](https://docs.nextgis.com/docs_ngweb/source/feature_edit.html#ngw-move-objects) an entire feature; * ![three lines](docs_ngweb/source/_static/button_maptool_attrib.png) [Edit attribute values](https://docs.nextgis.com/docs_ngweb/source/feature_edit.html#ngw-attributes); * ![trash can](docs_ngweb/source/_static/button_maptool_delete.png) [Delete](https://docs.nextgis.com/docs_ngweb/source/feature_edit.html#ngw-delete-objects); * ![frame with a dot](docs_ngweb/source/_static/button_maptool_snap.png) Snapping: blue = enabled, white = disabled; * ![floppy disc](docs_ngweb/source/_static/button_maptool_save.png) Stop editing and leave Edit mode; * ![U-shaped arrow](docs_ngweb/source/_static/button_maptool_undo.png) Undo the last action. Also, for polygons one more tool is available: * ![scissors](docs_ngweb/source/_static/button_maptool_hole.png) [Cut a hole](https://docs.nextgis.com/docs_ngweb/source/feature_edit.html#webmap-hole). Below you can find detailed description of these operations. Features available for editing are highlighed. You can edit multiple layers at once, each is highlighted with a different color. ## Create a new feature (point, line, polygon) 1. Enter Edit mode. The ![+ in a circle](docs_ngweb/source/_static/button_maptool_add.png) “Create” tool is active by default (the button is blue). If you used some other tool before that, click on the button to activate feature creation. ![image](docs_ngweb/source/_static/webmap_create_point_en.png) 1. A colored circle will appear nearby a mouse pointer, with it you can add new features. Click on the map to create a new feature. 2. A dialog opens where you can add attribute values. Click **OK** to finish creating a feature. To clear the attribute form, click **Reset**. ![image](docs_ngweb/source/_static/webgis_attr_new_objects_en_2.png) You can enter multiple features one after the other. When creating a line, click on the map to indicate its start and end points. While creating a polygon each new click on the map adds a new vertex. To finish creating geometry, press **Enter**, click twice on the last vertex or click ![tick](docs_ngweb/source/_static/button_maptool_confirm.png). To finish a polygon you can also click on its starting point. If you accidentally click on a wrong place, press **Backspace** to delete the last vertex and place it elsewhere. Snapping is enabled by default for lines and polygons. To disable it, click ![frame with a dot](docs_ngweb/source/_static/button_maptool_snap.png). #### NOTE If you need to create a polygon with a hole, first draw the outer ring and complete feature creation, then use ![scissors](docs_ngweb/source/_static/button_maptool_hole.png) tool to [cut the hole](https://docs.nextgis.com/docs_ngweb/source/feature_edit.html#webmap-hole). 4. To save created features to the layer, click ![floppy disc](docs_ngweb/source/_static/button_maptool_save.png) “Stop editing”. In the opened dialog select **“Save”** to save changes, “Don’t save” to discard them, or “Cancel” to stay in the edit mode: ![image](docs_ngweb/source/_static/webgis_finish_editting_en.png) ## Delete feature 1. Enter the edit mode. On the editing toolbar click on the ![trash can](docs_ngweb/source/_static/button_maptool_delete.png) “Delete” button. 2. Click on the features you want to delete. The highlighted contour of the editable features disappears. ![image](docs_ngweb/source/_static/webmap_delete_polygon_en.png) 4. To finish deleting features, click ![floppy disc](docs_ngweb/source/_static/button_maptool_save.png) “Stop editing”. In the opened dialog select “Save” to save changes, “Don’t save” to discard them, or “Cancel” to stay in the edit mode (see [Fig. 395.](#webmap-finish-edit)). ## Move feature 1. To move en etire feature, enter the Edit mode and activate ![outward arrows](docs_ngweb/source/_static/button_maptool_move.png) “Move” tool. 2. Click on the feature to select it, then drag to a new location. Both the old position (style colors) and the new position (selection color) are shown. ![image](docs_ngweb/source/_static/webmap_move_point_en.png)![image](docs_ngweb/source/_static/webmap_move_polygon_en.png) 1. Click ![floppy disc](docs_ngweb/source/_static/button_maptool_save.png) “Stop editing” and save the changes. Also you can move individual vertices of lines and polygons. ## Edit vertices 1. On the toolbar click on the ![pencil](docs_ngweb/source/_static/button_maptool_edit.png) “Edit” button. Editable features are highlighted. 1. Click on a vertex and drag it to a new position by holding the left mouse button. Snapping is active by default. To disable it, click ![frame with a dot](docs_ngweb/source/_static/button_maptool_snap.png). ![image](docs_ngweb/source/_static/webgis_edit_vertices_en.png) 1. To finish editing click ![floppy disc](docs_ngweb/source/_static/button_maptool_save.png) “Stop editing” and save the changes (see [Fig. 395.](#webmap-finish-edit)). #### NOTE You can edit several layers simultaneously. To do it enter the edit mode in every layer you want to edit. Snapping works for features of all these layers. ## Add and delete vertices To **delete** a vertice enter the Edit mode, then activate the ![pencil](docs_ngweb/source/_static/button_maptool_edit.png) “Edit” tool, hold **Shift** and click on the vertex. To **add** a vertex, click on the line between two existing vertices and drag it to the desired location. ![image](docs_ngweb/source/_static/ngw_new_vertex_en.png) ## Create holes If you need to create a polygon that has one or seleral areas cut from it: 1. First add the outer contour using the ![+ in a circle](docs_ngweb/source/_static/button_maptool_add.png) Create tool. 2. Activate the ![scissors](docs_ngweb/source/_static/button_maptool_hole.png) Cut hole tool and draw a closed boundary of the hole. ![image](docs_ngweb/source/_static/cutting_hole_en.png) 1. To finish editing click ![floppy disc](docs_ngweb/source/_static/button_maptool_save.png) “Stop editing” and save the changes (see [Fig. 395.](#webmap-finish-edit)). ## Edit feature’s attributes NextGIS Web software allows users to edit attributes of geographical features. There are several ways to open the dialog: * From the resource list: - Click on the ![table](docs_ngweb/source/_static/button_open_feature_table.png) table symbol [by the vector layer](https://docs.nextgis.com/docs_ngweb/source/admin_interface.html#feature-table-choice-from-group-pic) (or open the layer resource page and select “Feature table” in the [actions pane](https://docs.nextgis.com/docs_ngweb/source/admin_interface.html#admin-table-objects-upload)). - Feature table opens. Click on the entry in the table to select it. - Click on the **Edit** button in the table toolbar. ![image](docs_ngweb/source/_static/ngweb_editing_attributes_en.png) If you are in the Web Map ![map and magnifying glass](docs_ngweb/source/_static/button_open_web_map.png) display mode. * From the Feature table: > - In the layer’s context menu select “Feature table” and then follow the steps described above. * In the Edit mode: > - In the layer’s context menu select “Edit”. > - In the toolbar on the map select ![three lines](docs_ngweb/source/_static/button_maptool_attrib.png). > - Click on the feature on the map. * From the Identify panel: > - Click on the feature on the map. > - In the Identify panel click on the “Edit” symbol (see [Fig. 403.](#ngweb-editing-when-viewing-map)). ![image](docs_ngweb/source/_static/editing_when_viewing_map_open_en.png) Editing dialog has the following tabs: * “Attributes” tab: ![image](docs_ngweb/source/_static/ngweb_tab_attributes_eng_2.png) To edit an attribute click on the field. Numbers can be typed in or modified with arrows that appear on the right end of the field. Dates also can be typed in or selected in the calender. To open the calender click the icon on the right end of the field. Add a [Lookup table](https://docs.nextgis.com/docs_ngweb/source/create_other.html#ngw-create-lookup-table) to a field to be able to pick a value from a dropdown list. * “Attachments” tab ([more on managing attachments](https://docs.nextgis.com/docs_ngweb/source/feature_edit.html#ngw-attachments)); ![image](docs_ngweb/source/_static/ngweb_tab_attachment_eng_2.png) * “Description” tab - the description is displayed in the Identify panel when you click on a featre. ![image](docs_ngweb/source/_static/ngweb_tab_description_eng_2.png) #### NOTE If you opened the feature attributes dialog from the Feature table on a separate page, you can edit the feature’s geometry in the fourth tab. If you opened the edit dialog from a Web Map, to edit the geometry activate [Edit mode](https://docs.nextgis.com/docs_ngweb/source/feature_edit.html#edit-mode). ## Attachments NextGIS Web software supports adding photos, panoramas and other files to the features. If a feature has attachments, they will be shown along with description and attributes in the identify window (see [Fig. 407.](#attachm-tab-pic)). ![image](docs_ngweb/source/_static/attachm_tab_en.png) Files in the following formats can be viewed directly in the web client: * JPEG, PNG images. GIF format not supported. * Panoramas complying with the [specification](https://developers.google.com/streetview/spherical-metadata?hl=en). Other types of files can be added as attachments, but won’t be viewed in the interface. After a click on a photo preview a lightbox window is open (a javascript powered window in browser). Photo size is adjusted to fit the window. Photos have descriptions and user can navigate through them using left and right arrow keys on the keyboard (see [Fig. 408.](#webmap-identification-photo-lightbox)). ![image](docs_ngweb/source/_static/webmap_ident_photo_lightbox_2.png) You can zoom in and out, turn the image or save it to your device. To navigate within the panorama, use the mouse. Hold down the left mouse button to rotate the camera. Use the wheel to zoom in and out. Panorama mode can be disabled by clicking on the blue round button in the upper right corner. ![image](docs_ngweb/source/_static/panorama_opened_en.png) ### Add attachments to a feature To add an attachment to a feature, go to the edit window. There are several ways to open it: * Click on the feature on the Web Map, then in the pop-up window press the **Edit** button. * Open the feature table on the Web Map, select the feature and click **Edit** in the toolbar. * Open the feature table from the resource page, select the feature and click **Edit** in the toolbar. On the Edit page open the Attachments tab and upload the files. ![image](docs_ngweb/source/_static/add_attachment_en.png) Enter titles for the attachments and press **Save**. After uploading you can see previews of photos and panoramas on the “Attachments” tab of the identify window (see `attach_tab_pic`). #### NOTE By default attachments could be added by any user but there is an option to limit number of users who can upload photos (see [Managing access rights](https://docs.nextgis.com/docs_ngcom/source/permissions.html)). You can edit file names and descriptions of the added attachments. To delete an attachment, press the cross icon to its right. If you’ve made an error during editing, press **Reset**, all modifications will be cancelled. To delete an attachment select it on the “Attachments” tab of the edit window, click **Delete**, and then click **Save** button. See the process of adding attachments in our video: Watch on [youtube](https://youtu.be/t1c1GT2myD4?si=2SZsLHOYH_lfnNAx). ### How to use panoramas Not only photos, but also panoramas can be added as attachments. They allow to immerse explore new locations or find new details in familiar places. ![image](docs_ngweb/source/_static/identpanel_attachm_panor_en.png) Uploaded panoramic images must comply with the Google XMP Photo Sphere [specification](https://developers.google.com/streetview/spherical-metadata?hl=en). See how to work with panoramas in our video: Watch on [youtube](https://youtu.be/MeZ0jJAbZ5I?si=F6s_wScaTeEjfpPl). ### Export and import attachments To copy feature attachments between different layers or to create a backup you can save them to your device as an archive (Standard layer saving does not include attachments). Navigate to the layer resource page and select **Manage attachments**. ![image](docs_ngweb/source/_static/manage_att_select_en.png) To save the attachments, go to the **Export** tab and press **Export attachments to ZIP archive**. The resulting ZIP archive will contain all of the attachments put in directories named after feature IDs. Attachment metadata are put into a separate JSON file. ![image](docs_ngweb/source/_static/manage_att_export_en.png) The resulting archive can be imported to add the attachments to the layer features. Open the **Import** tab, click **Import attachments from ZIP archive** and select the archive on your device. An archive must contain directories named after feature IDs. Each folder can contain one or many attachments. Duplicates will be ignored. If you need to replace the current attachments, tick “Delete existing attachments”. ![image](docs_ngweb/source/_static/manage_att_import_en.png) ## Disable editing on the map By default editing of features on a Web Map is enabled. You can disable editing in the Web Map settings on the “Settings” tab. #### NOTE There are other way to edit vector layers. If you don’t want users to modify your data, configure [permissions](https://docs.nextgis.ru/docs_ngcom/source/permissions.html) for the resources. Click ![pencil](docs_ngweb/source/_static/button_edit.png) next to the Web Map name to enter [Update resource](https://docs.nextgis.com/docs_ngweb/source/edit_resource.html#ngw-update-resource) dialog. On the Settings tab in the Layers editing field select **Disable** in the dropdown menu. ![image](docs_ngweb/source/_static/webmap_no_editting_en.png) # feature_table.html.md # Managing Feature table In NextGIS Web you can manage your geodata directly, without needing to display it on a map. View, filter, create, edit and delete features using Feature table. You can open the Feature table [on a separate page](https://docs.nextgis.com/docs_ngweb/source/feature_table.html#ngw-feature-table-blank) or [on a Web Map](https://docs.nextgis.com/docs_ngweb/source/feature_table.html#ngw-feature-table-webmap). #### SEE ALSO [Edit the layer fields](https://docs.nextgis.com/docs_ngweb/source/layers_settings.html#ngw-attributes-edit) used to form the feature table. ## Feature table on a separate page Press the ![table](docs_ngweb/source/_static/button_open_feature_table.png) “Table” icon opposite the resource name or select the Table action for the vector layer in the features pane on the right. Feature table allows to perform the following operations with the selected entry (see [Fig. 370.](#admin-table-objects1-upload)): 1. [Open selected entry](https://docs.nextgis.com/docs_ngweb/source/feature_table.html#feature-view) 2. [Create new entry](https://docs.nextgis.com/docs_ngweb/source/feature_table.html#feature-create) (new feature) 3. [Edit entry](https://docs.nextgis.com/docs_ngweb/source/feature_table.html#feature-edit) 4. [Delete entry](https://docs.nextgis.com/docs_ngweb/source/feature_table.html#feature-delete) 5. [Show the total feature count](https://docs.nextgis.com/docs_ngweb/source/feature_table.html#feature-table-other-tools) 6. [Search and filter by attribute values](https://docs.nextgis.com/docs_ngweb/source/feature_table.html#table-search-filter) 7. Save as a file (choose between advanced and [quick export](https://docs.nextgis.com/docs_ngweb/source/feature_table.html#feature-export)) 8. [Refresh the table](https://docs.nextgis.com/docs_ngweb/source/feature_table.html#feature-table-other-tools) 9. Select displayed fields in the [table settings](https://docs.nextgis.com/docs_ngweb/source/feature_table.html#ngw-feature-table-fields) ![image](docs_ngweb/source/_static/feature_table_tools_en.png) Also you can open the Feature table on the Web Map. In this case there are some additional map-related tools. ## Feature table on a Web Map There is another way to open Feature table. ![map and magnifying glass](docs_ngweb/source/_static/button_open_web_map.png) open a Web Map that has the layer in question added to it. ![image](docs_ngweb/source/_static/webmap_open_from_group_en.png) A Web Map will be opened with a layer tree (left) and a map (right). To view a feature table select the required layer in layer tree and then select “Feature table” command in the Layer drop down menu at the top of layer tree [Fig. 372.](#map-and-tree-layers-pic): ![image](docs_ngweb/source/_static/map_and_tree_layers_eng_3.png) All tools of the Feature table are available, as well as some map navigation tools: ![image](docs_ngweb/source/_static/table_objects2_eng_3.png) 1. ![frame with dot](docs_ngweb/source/_static/button_go_to.png) Go to (after a click the selected feature will be displayed on the map) 2. ![inward arrows](docs_ngweb/source/_static/button_zoom_to_filtered.png) Zoom to filtered features 3. ![dash frame](docs_ngweb/source/_static/button_filter_area.png) [Filter features by area](https://docs.nextgis.com/docs_ngweb/source/feature_table.html#ngw-feature-table-filter-area) Select a row in feature table to navigate to the feature on a map, it will be highlighted (see [Fig. 374.](#ngweb-webmap-attribute-table)). For the selected feature you can open a window with its properties, edit it or delete it. In feature table tab you have an option to dynamically filter records. When user types a text the contents of the window are filtered leaving only the records that match the search text. Filter by area option is also available ([more on how to use it](https://docs.nextgis.com/docs_ngweb/source/feature_table.html#filter-layer-features-on-the-web-map-by-area)). ![image](docs_ngweb/source/_static/ngweb_webmap_attribute_table_eng_3.png) ## Search and filter Click on the header of any column to sort the table by that attribute’s values. In the top right corner you’ll find the search bar. Enter any text in it. The table contents are filtered, displaying only the features that have the search text in one of the attributes. ![image](docs_ngweb/source/_static/feature_text_search_en.png) You can also create more complicated filters. Click on the funnel icon ![funnel](docs_ngweb/source/_static/button_filter.png) next to the search bar and add filter conditions. You can use logical operators AND (select “ALL”) and OR (select “ANY”). Available conditions: * Equal / Not equal * In list / Not in list * Is NULL / Is not NULL * Matches / Does not match (ILIKE operator, case insensitive) For example, there are several roads named “Adams Street” in the Boston area, and we need to filter out the bigger ones (OSM tag “highway=tertiary” and “highway=tertiary_link”) and only inspect the smaller ones. Add two conditions: 1) NAME is Equal to “Adams Street”; 2) HIGHWAY is Not In List “tertiary”, “tertiary_link”. Select “ALL” in the top left corner, that means that both conditions should be satisfied. You can select a value from the dropdown list or start typing to find the one you need. ![image](docs_ngweb/source/_static/feature_rule_filter_en_3.png)![image](docs_ngweb/source/_static/feature_rule_filter_result_en.png) ## Filter layer features on the Web Map by area NextGIS Web has a tool in the Feature table that filters all layer features within a selected area. To choose area limits just draw them on the Web Map. Open the feature table and click on the ![funnel](docs_ngweb/source/_static/button_filter.png) button. In the dropdown menu select the geometry of the area: * circle (click twice on the map, to choose the center of the circle and its size, the radius length is shown in meters) * line (features intersected by the line will be filtered) * rectangle (click on diagonally opposite apexes) * free-hand drawn polygon (each click creates an apex, the area covered by the polygon is highlighted; to finish the shape, double-click on an apex, the polygon will be completed automatically) ![image](docs_ngweb/source/_static/ngweb_filter_by_area_geometry_en.png) Now the feature table only contains the features within the selected area. The tool button will have the current area shape on it. In the dropdown menu you can use one of the following options: * Show/Hide the outline and fill of the selected area * Zoom to the filtering area * Clear filtering geometry ![image](docs_ngweb/source/_static/ngweb_filter_by_area_actions_en.png) To set the map extent displaying all the filtered features, click ![inward arrows](docs_ngweb/source/_static/button_zoom_to_filtered.png). You can use quick export to save the filtered features in a variety of common geodata formats. Click **Save as** and in the dropdown menu select either [quick export](https://docs.nextgis.com/docs_ngweb/source/feature_table.html#feature-export) with default settings or [advanced export](https://docs.nextgis.com/docs_ngweb/source/admin_interface.html#ngw-vector-export) to modify the settings. See feature filtering in action: Watch on [youtube](https://youtu.be/q946UruxUb0?si=gXo0OMG3x-2dIsac). ## View feature entry You can view any entry of the feature table in a pop-up or on a separate page. Select the entry and click **Open**. ![image](docs_ngweb/source/_static/feature_preview_en.png) Click the ![square with arrow](docs_ngweb/source/_static/button_open_resource.png) icon next to the **Open** button to view the entry on a new page. ## Create new feature You can use the Feature table to add a new feature to the layer. Click ![+](docs_ngweb/source/_static/button_plus_layer.png) **Create**. ![image](docs_ngweb/source/_static/feature_create_attr_en.png) You can add a custom Description and Attachments on the corresponding tabs. The number of attachments is not limited. For each attached file you can add an indivisual description. ![image](docs_ngweb/source/_static/feature_create_attach_en.png) On the Geometry tab you can draw the feature’s geometry: ![image](docs_ngweb/source/_static/feature_create_geom_en.png) Click **Save** to finish creating new feature. An entry will be added to the Feature table. ## Edit features Select an entry and click ![pencil](docs_ngweb/source/_static/button_edit.png) **Edit**. In the pop-up dialog you can modify the attribute values, description and geometry and manage attachments. Tabs that have unsaved changes are marked by a blue dot. ![image](docs_ngweb/source/_static/feature_edit_descr_en.png)![image](docs_ngweb/source/_static/feature_edit_geom_en.png) Click **Save** to finish editing. All the edits are saved to the layer. You can also edit features [on a Web Map](https://docs.nextgis.com/docs_ngweb/source/feature_edit.html) or in the desktop app QGIS [via NextGIS Connect](https://docs.nextgis.com/docs_ngconnect/source/resources.html#connect-data-export) plugin. ## Delete feature You can use Feature table to delete features from the layer. Select the entry and click ![trash can](docs_ngweb/source/_static/button_delete.png) **Delete**. Confirm deletion in the pop-up dialog. ![image](docs_ngweb/source/_static/feature_delete_confirm_en.png) ## Export to file To quickly save the filtered entries to a file, click **Save as**, then in the dropdown menu select **Quick export** and choose the file format. ![image](docs_ngweb/source/_static/feature_table_quick_export_en.png) Also you can select **Advanced export** and customize the settings ([more on export settings](https://docs.nextgis.com/docs_ngweb/source/admin_interface.html#ngw-vector-export)). ## Displaying selected fields and feature edit information You can select which fields of the feature table to display. Press “Open table settings” button in the right corner and untick the fields you want to hide. ![image](docs_ngweb/source/_static/feature_table_display_set_en.png) If [feature versioning](https://docs.nextgis.com/docs_ngweb/source/layers_settings.html#create-vector-layer-vers-pic) is enabled, at the bottom of the list you’ll find an additional unticked field. It is a virtual “Last changed” field. It contains date and time of the most recent edit made to the feature as well as the username. The first change logged is the time the versioning is enabled. ![image](docs_ngweb/source/_static/feature_table_changelog_en.png) ## Other tools Click on the # hashtag button to see the current feature count. Click ![circular arrow](docs_ngweb/source/_static/button_refresh_single.png) to refresh the table so that it includes the latest changes made elsewhere. # field_combiner.html.md # Field combiner Concatenates values of several fields and writes it to the target field. Inputs: * Web GIS address. URL of your Web GIS, e.g. [https://demo.nextgis.com](https://demo.nextgis.com) and login/password if necessary; * Layer ID. Numbers at the end of the layer’s URL; * Source field 1. Name of the string field containing the 1st part, e.g. ‘id_prefix’; * Source field 2. Name of the attribute containing the 2nd part, e.g. ‘id_date’. This part can be Integer, Float or Date, it will be converted to string; * Source field 3. Name of the string field containing the 3rd part, e.g. ‘id_suffix’; * Target field. Name of the field to store the combined value, e.g. ‘id_combined’; * Order custom name. Custom name for the order (optional). Outputs: * Сhanged vector layer in Web GIS. Launch the tool: [https://toolbox.nextgis.com/t/field_combiner](https://toolbox.nextgis.com/t/field_combiner) Example: **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # field_value_changer.html.md # Change attributes in layer group The tool changes the value of the target attribute for the selected features in the layer group in the specified Web GIS resource on NextGIS platform. Features are selected according to the set value of the selected field. NextGIS Web (NGW) is a geodata managing system. You can use it for free after [signing up](https://docs.nextgis.com/docs_ngcom/source/create.html). With NextGIS Web you can store geodata, create interactive online maps, give access to them to your teammates and clients, edit features directly on the map and in the feature tables, as well as process them with specialized Toolbox tools. [More on what NGW can do](https://docs.nextgis.com/docs_ngweb/source/general.html). Inputs: * Web GIS Address — The URL of your Web GIS (for example, http(s): //mywebgis.nextgis.com) * Login - The username of the user who has the permission to write data to the specified resource * Password - Web GIS user password * Resource Group Identifier - Web GIS Resource Identifier that contains layer groups * Initial field - the name of the initial field used to search for features * Initial value - The value of the field used to select features (identifier) * Target field - The name of the target field, which values you want to change * Target Value - The attribute value, which will be applied * Start year - Starting date of the time range (optional parameter) * End year - Ending date of the time range (optional parameter) #### NOTE Start year and end year are optional parameters. These parameters allow you to limit the time range for the selected layers. To use these parameters, you must make sure that the time ranges are indicated in the names of the layers of the Web GIS resource. For example, in layer 1245_1246_rus_earl_v.1.0 1245 and 1246 the years are indicated. If these parameters are in use, you need to enter three or four digit values. Other parameters are **mandatory**. Outputs: * A CSV file that contains data about the initial and target fields, the identifier value, the previous and new values ​​of the target field, as well as a list of hyperlinks to features that have been changed. Launch the tool: [https://toolbox.nextgis.com/t/field_value_changer](https://toolbox.nextgis.com/t/field_value_changer) **Try it out using our sample:** Download [input dataset](https://nextgis.com/data/toolbox/field_value_changer/field_value_changer_inputs.zip) to test the instrument. Step-by-step instructions included. Get the [output](https://nextgis.com/data/toolbox/field_value_changer/field_value_changer_outputs.zip) to additionally check the results. # file_upload.html.md # File upload ## Single file upload Execute folowing request to upload a file: ### POST /api/component/file_upload/ File upload request. * **Form Parameters:** * **file** – file data * **name** – file name * **Status Codes:** * [200 OK](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/200) – no error Next multipart POST request follow. Request includes following form parameters: name = “file name” **Example request**: ```http POST /api/component/file_upload/ HTTP/1.1 Host: ngw_url Accept: */* file=\tmp\test.file&name=testfile ``` Response in JSON format with file details returned on success: **Example response body**: ```json { "upload_meta": [ { "id": "0eddf759-86d3-4fe0-b0f1-869fe783d2ed", "mime_type": "application/octet-stream", "name": "ngw1_1.zip", "size": 2299 } ] } ``` Also you can create attachment using PUT method, in this case you do not need to set file name **Example add attachment to feature on Python**: ```python import requests from contextlib import closing import json url_dst = 'https://sandbox.nextgis.com' ngw_creds = ('administrator', 'demodemo') feature_dst = '/api/resource/' + '3605' + '/feature/' #layer id new_id = '2' #feature id #Get file from internet, optionally with auth with closing(requests.get('https://nextgis.ru/wp-content/themes/nextgisclean_wptheme/main-assets/img-en/header/logo.png', auth=ngw_creds, stream=True)) as f: #upload attachment to nextgisweb req = requests.put(url_dst + '/api/component/file_upload/', data=f.content, auth=ngw_creds) req.raise_for_status() #on some servers needed data=f.content instead attach_data = {} attach_data['file_upload'] = req.json() attach_data['name'] = 'Picture.png' #add attachment to nextgisweb feature url=url_dst + feature_dst + str(new_id) + '/attachment/' req = requests.post(url, data=json.dumps(attach_data), auth=ngw_creds) req.raise_for_status() ``` **Example of forming multipart POST body in Qt**: ```c++ QHttpMultiPart *multipart = new QHttpMultiPart(QHttpMultiPart::FormDataType); QHttpPart part; part.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"file\"; filename=\"form.ngfp\"")); part.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("application/octet-stream")); part.setBody(file_contents); // pass QByteArray reference multipart->append(part); ``` ## Multiple file upload For multiple file upload execute the following request: ### POST /api/component/file_upload/ Multiple files upload request * **Form Parameters:** * **name** – must be “files[]” In `name` field must be file name and path (multipart POST request). Response in JSON format with files details returned on success: **Example response body**: ```json { "upload_meta": [ { "id": "b5c02d94-e1d7-40cf-b9c7-79bc9cca429d", "mime_type": "application/octet-stream", "name": "grunt_area_2_multipolygon.cpg", "size": 5 }, { "id": "d8457f14-39cb-4f9d-bb00-452a381fa62e", "mime_type": "application/x-dbf", "name": "grunt_area_2_multipolygon.dbf", "size": 36607 }, { "id": "1b0754f8-079d-4675-9367-36531da247e1", "mime_type": "application/octet-stream", "name": "grunt_area_2_multipolygon.prj", "size": 138 }, { "id": "a34b5ab3-f3a5-4a60-835d-318e601d34df", "mime_type": "application/x-esri-shape", "name": "grunt_area_2_multipolygon.shp", "size": 65132 }, { "id": "fb439bfa-1a63-4384-957d-ae57bb5eb67b", "mime_type": "application/x-esri-shape", "name": "grunt_area_2_multipolygon.shx", "size": 1324 } ] } ``` # filter.html.md # Search and filter In NextGIS Connect you can [search resources by name](https://docs.nextgis.com/docs_ngconnect/source/filter.html#ngc-search-name), [url](https://docs.nextgis.com/docs_ngconnect/source/filter.html#ngc-search-url) or [metadata](https://docs.nextgis.com/docs_ngconnect/source/filter.html#ngc-filter-metadata) or [filter](https://docs.nextgis.com/docs_ngconnect/source/filter.html#ngc-filter-expression) the resource tree using expressions. To open the search/filter bar, press ![funnel](docs_ngconnect/source/_static/button_filter.png) button in the plugin toolbar. ## Search by name To search by name, enter word(s) or symbol(s) that are part of the resource name (use part of the word if you’re not sure what form it is in). The resource tree will be filtered to only display the resources that have the entered symbol combination in their names and paths to those resources in the tree. The search results are marked in bold. Keep in mind that letters with diacritical signs, such as é or ü are considered separate symbols. To find all the variations of the spelling used in the Web GIS, enter a part of the name or use an [expression with wildcards](https://docs.nextgis.com/docs_ngconnect/source/filter.html#ngc-filter-expression). To find the exact match, enclose the search words in quotation marks. ## Search by URL If you have a link to a Web GIS resource you can find it in the NextGIS Connect resource tree by pasting the URL into the search bar. The layer tree will display the path to the resource. ![image](docs_ngconnect/source/_static/ngc_search_url_en.png) If you know the resource ID, you can find it in the layer tree by using an [expression](https://docs.nextgis.com/docs_ngconnect/source/filter.html#ngc-filter-expression) or by adding it to the Web GIS URL, following the template `https://mywebgis.nextgis.com/resource/id`, e.g. [https://experiments.nextgis.com/resource/200](https://experiments.nextgis.com/resource/200). ## Filter by expression To filter the resource tree by parameters other than the resource name (see the full list below) use expressions with conditions `=, IN, ILIKE`. As for logical operators `AND` and `OR`, you can use either of them several times in an expression, but not combined with the other. Examples of expressions: `@type ILIKE "wfs%" OR @name ILIKE "%wfs%"`. The Connect panel will show all the WFS connections, layers and services as well as resource that have “wfs” in their name (e.g. a Web Map called “WFS demo”). ![image](docs_ngconnect/source/_static/ngc_filter_example_wfs_en.png) `@owner = 4 AND @type = "raster_layer"`. The Connect panel will show all raster layers owned by the user with ID=4. ![image](docs_ngconnect/source/_static/ngc_filter_example_user_raster_en.png) You can filter resources by: * `@id` – identification number of the resource. You can also use it to [search by URL](https://docs.nextgis.com/docs_ngconnect/source/filter.html#ngc-search-url); * `@owner` – all resources owned by the user with the entered ID; * `@parent` – identification number of the parent resource, all its direct subresources will be displayed (e.g. all resources in a group or all styles and forms of a layer), to filter the other levels of subresources too use @root; * `@root` - identification number of the resource, all its subresources, their subresource and so on, will be displayed. ![image](docs_ngconnect/source/_static/ngc_filter_parent_root_en.png) Values for the above expressions are entered as numbers, no quotation marks. [Where to find these numbers.](https://docs.nextgis.com/docs_ngconnect/source/filter.html#ngc-find-id) Administrators also can enter usernames for search by owner. * `@type` – resource type (resource group, vector layer, lookup table etc), see the full list of possible values below * `@name` – resource name, similar to [search by name](https://docs.nextgis.com/docs_ngconnect/source/filter.html#ngc-search-name), but can be combined with other parameters. `@name = "text"` searches for exact matches, while the simple name search uses the expression `@name ILIKE "%text%"` * `@keyname` – resource key Values of these parameters are strings, they should be enclosed in quotation marks or apostrophes. Also you can add one of the wildcards: `_` – any symbol or `%` – any number of any symbols. As an example, see how it works for the expression @name ILIKE … * `'%s'` – any string that ends with the letter S, for example “Track**s**” * `'s%'` – any string that starts with the letter S, for example “**S**entinel” * `'l%s'` – any string that starts with a the letter L and ends with the letter S, for example “**L**as Vega**s**” or “**L**ake**s**” * `'_s%'` – any string that has the letter S in the second position, for example “O**s**lo” ![image](docs_ngconnect/source/_static/ngc_filter_endletter_en.png)![image](docs_ngconnect/source/_static/ngc_filter_startletter_en.png)![image](docs_ngconnect/source/_static/ngc_filter_start_end_en.png)![image](docs_ngconnect/source/_static/ngc_filter_2ndletter_en.png) ## Metadata search NextGIS Connect also allows search by metadata. To activate it, press the downward arrow next to the filter icon ![funnel](docs_ngconnect/source/_static/button_filter.png) and select “By metadata”. Metadata is entered as a key-value pair, in two separate fields. ![image](docs_ngconnect/source/_static/ngc_filter_metadata_en.png) You can pre-enter a list of metadata keys to choose from in the [Settings](https://docs.nextgis.com/docs_ngconnect/source/ngc_settings.html#ngc-set-search). ## Resource types Use the following values for the resource type search: * Basemap – baselayers * Collector project – collector_project * Demo project – demo_project * File bucket- file_bucket * Form – formbuilder_form * Lookup table – lookup_table * MapServer style – mapserver_style * OGC API – Features service – ogcfserver_service * PostGIS connection – postgis_connection * PostGIS layer – postgis_layer * QGIS raster style – qgis_raster_style * QGIS vector style – qgis_vector_style * Raster layer – raster_layer * Raster style – raster_style * Resource group – resource_group * SVG marker library – svg_marker_library * Tileset – tileset * TMS connection – tmsclient_connection * TMS layer – tmsclient_layer * Tracker – tracker * Trackers group – trackers_group * Vector layer – vector_layer * Web Map – webmap * WFS connection – wfsclient_connection * WFS layer – wfsclient_layer * WFS service – wfsserver_service * WMS connection – wmsclient_connection * WMS layer – wmsclient_layer * WMS service – wmsserver_service ## How to find identification numbers ID of a resource, as well as user ID, can be found in the URL while viewing a Web GIS in a browser. To find out the ID of resource, open its page (you can do it from the Connect panel context menu or from the Layers panel if the resource is added to QGIS). The number at the end of the URL is the resource ID. ![image](docs_ngconnect/source/_static/ngw_resource_id_en.png) To learn user ID, in the Web GIS go to the [Control panel](https://docs.nextgis.com/docs_ngweb/source/admin_interface.html#ngw-control-panel), open [Users](https://docs.nextgis.com/docs_ngweb/source/users.html) section, find the user you need and enter the Edit mode (or just hover the cursor over the pencil icon to see the link without opening the page, if your browser allows it). ![image](docs_ngconnect/source/_static/ngw_user_id_en.png)![image](docs_ngconnect/source/_static/ngw_user_id_list_en.png) # fix_geometries.html.md # Fix geometries Fixes incorrect geometries in vector files. To find out if a vector file has invalid geometries, use [Check geometries](https://toolbox.nextgis.com/t/check_geometries). Inputs: * ZIP archive with vector files. Only single-file formats are supported (Geopackage, GeoJSON, etc., but **not** ESRI Shapefile). Outputs: * File with fixed geometries in the same format as input. Launch the tool: [https://toolbox.nextgis.com/t/fix_geometries](https://toolbox.nextgis.com/t/fix_geometries) ![image](docs_toolbox/source/_static/fix_geometries_input.png)![image](docs_toolbox/source/_static/fix_geometries_result.png) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # flatten.html.md # Strip ZM from vector layer The tool converts vector file to same format stripping ZM measurements. E.g., converts geometries from PolygonZ into Polygon. Input: * Source data - vector file in GeoPackage or GeoJSON format. Geometries could contain Z and/or M measurements. Output: * GeoPackage or GeoJSON file without ZM coordinates in geometry. Launch the tool: [https://toolbox.nextgis.com/t/flatten](https://toolbox.nextgis.com/t/flatten) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # flood_analysis.html.md # Flood Susceptibility Analysis Terrain-based flood susceptibility analysis using TWI, log-transformed flow accumulation, inverse slope, inverse stream distance, and inverse TPI. Produces a Flood Susceptibility Index (FSI) scaled 0-100 with 5-level classification. Inputs: * Terrain Analysis Package (ZIP). ZIP file from [Comprehensive Terrain Analysis](https://toolbox.nextgis.com/t/terrain_analysis) containing DEM, slope, TWI, flow accumulation, TPI, streams, flow direction, and manifest.json * Weight: TWI. Weight for the Topographic Wetness Index indicator (default: 0.30) * Weight: Flow Accumulation. Weight for the log-transformed flow accumulation indicator (default: 0.25) * Weight: Slope (inverted). Weight for the inverted slope indicator — flat areas have higher flood risk (default: 0.20) * Weight: Stream Distance (inverted). Weight for the inverted stream distance indicator — closer to streams means higher risk (default: 0.15) * Weight: TPI (inverted). Weight for the inverted TPI indicator — depressions have higher flood risk (default: 0.10) * Hotspot Threshold. FSI value above which areas are classified as flood hotspots (default: 70) * Spectral Indices Package (ZIP). Optional ZIP from spectral_indices with vegetation index aggregates. When provided, a vegetation indicator is added to the weighted overlay. * Weight: Vegetation Index. Weight for the vegetation index indicator (default: 0.10). Only used when spectral_zip is provided. Other weights are scaled down proportionally. Outputs: * Flood Analysis Package (ZIP). ZIP archive with flood susceptibility rasters, vectors, statistics, and manifest * Summary. Human-readable summary of the flood analysis results * Manifest JSON. JSON manifest string describing all outputs Launch the tool: [https://toolbox.nextgis.com/t/flood_analysis](https://toolbox.nextgis.com/t/flood_analysis) Example: ![image](docs_toolbox/source/_static/analysis_input_en.png)![image](docs_toolbox/source/_static/flood_analysis_result_en.png) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # forestplots_field.html.md # Create forestplots scheme for Garmin The tool generates forest field plots in KMZ format ready to upload to Garmin devices. Areas located closer than 10 m from the plot border are discarded. A buffer zone is added around the plot at a distance of 50 m. Inputs: * Input polygon dataset. Supported formats are zipped shapefile, MapInfo TAB or OGR-compatible file. Must contain only one feature without rings. * Step between points. Distance between plots in meters. Default 55 meters. Outputs: * KMZ file with forest field plots ready to upload to Garmin devices. * Separate JPG file with forest plots scheme. Launch the tool: [https://toolbox.nextgis.com/t/forestplots_field](https://toolbox.nextgis.com/t/forestplots_field) ![image](docs_toolbox/source/_static/forest-circular-plots.jpg) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # form_elements.html.md # Form elements In the form editing interface on the left there is a toolbar that contains all the elements that can be added to a form. ![image](docs_ngweb/source/_static/form_elements_en.png) To create a new form in the online builder, drag the elements from the list on the left to the middle field representing the device screen. You’ll find detailed descriptions of all the elements below. Form design elements: * [Label](https://docs.nextgis.com/docs_ngweb/source/form_elements.html#form-label)- text of the form interface: field names, instructions on entering data etc; * [Spacer](https://docs.nextgis.com/docs_ngweb/source/form_elements.html#form-spacer) - a blank space that separates parts of the form; * [Tabs](https://docs.nextgis.com/docs_ngweb/source/form_elements.html#form-tabs) - instead of scrolling up and down a single long form, you can divide it into tabs and switch between them. Data entering elements: * [Text box](https://docs.nextgis.com/docs_ngweb/source/form_elements.html#text); * [Check box](https://docs.nextgis.com/docs_ngweb/source/form_elements.html#checkbox); * [Date and time](https://docs.nextgis.com/docs_ngweb/source/form_elements.html#datetime); * [Coordinates](https://docs.nextgis.com/docs_ngweb/source/form_elements.html#coordinates); * [Distance meter](https://docs.nextgis.com/docs_ngweb/source/form_elements.html#distance); * [Average calculator](https://docs.nextgis.com/docs_ngweb/source/form_elements.html#average); * [Photo](https://docs.nextgis.com/docs_ngweb/source/form_elements.html#photo); * [System field](https://docs.nextgis.com/docs_ngweb/source/form_elements.html#sytem); * [Dropdown](https://docs.nextgis.com/docs_ngweb/source/form_elements.html#dropdown); * [Dual dropdown](https://docs.nextgis.com/docs_ngweb/source/form_elements.html#dual_dropdown); * [Radio group](https://docs.nextgis.com/docs_ngweb/source/form_elements.html#radio); * [Dependent dropdowns](https://docs.nextgis.com/docs_ngweb/source/form_elements.html#dependet_dropdown). ## Label This element allows you to add text to the form interface: field names, instructions on entering data etc. Properties: * **Label** - edit the text displayed on the form. ![image](docs_ngweb/source/_static/form_label_en.png) Label is not linked to any field of the layer. ## Spacer Spacer allows you to add blank spaces between parts of the form. ## Tabs Tabs are used to group other elements. You can add multiple tab sets to a form and manage the number of tabs in each of them. In a form, some elements can be in tabs while others are outside tab sets. To add a tab set, drag “Tabs” element to the form. In the “Properties” section you can set the name of each tab. To add a new tab, click on the ![button_plus_layer](docs_ngweb/source/_static/button_plus_layer.png) symbol. To delete a tab, click on the X next to its name. ![image](docs_ngweb/source/_static/form_tabs_en.png) The current tab is underlined in blue. ### Adding elements to tabs To add an element to a tab, drag it to it. The element will be added to the active tab marked in blue. Make sure that the element is within the tab set. ![image](docs_ngweb/source/_static/form_tabs_insideout_en.png) A form can have multiple tab sets as well as elements outside sets. ![image](docs_ngweb/source/_static/form_tabs_example_en.png) Elements placed in the tab that is not currently active are hidden. To edit them, switch to that tab. ## Text edit An element for entering simple text or numbers. Properties: * **Field** - select the field of the vector layer where the data from this element is to be recorded. * **Max. lines** - Maximum number of lines for this text field. Integer, between 1 and 256. * **Initial value** - the text added to the field by default. * **Remember last value** - if activated, inserts the value added for the previous feature. ![image](docs_ngweb/source/_static/form_text_numbers_en.png) ## Checkbox An element which allows user to pick from two values: true or false. Properties: * **Field** - select the field of the vector layer where the data from this element is to be recorded. * **Label** - text displayed next to the check box. * **Initial value** - if this box is checked, the check box in the form is checked by default. * **Remember last value** - if activated, inserts the value added for the previous feature. ![image](docs_ngweb/source/_static/form_checkbox_en.png) ## Date and time This elements allows to enter date, time or date+time. Properties: * **Field** - select the field of the vector layer where the data from this element is to be recorded. * **Type** - date only, time only or date and time. * **Initial value** - by default the Date and Time field enters the current date and time. You can set a different initial value using the calendar widget. * **Remember last value** - if activated, inserts the value added for the previous feature. ![image](docs_ngweb/source/_static/form_datetime_en.png) ## Coordinates This element automatically saves current position of the data collector in string format. Contains two fields: latitude and longitude. Properties: * **Longitude field** - select the field of the vector layer where the longitude data is to be recorded. * **Latitude field** - select the field of the vector layer where the latitude data is to be recorded. * **Hide** - the element will not be visible in the form, but the coordinates will be saved anyway. ![image](docs_ngweb/source/_static/form_coordinates_en.png) ## Distance meter This element automatically measures distance between data collector and the entered point. To be able to calculate distance, enable geolocation. Properties: * **Field** - select the layer field to store the data from this element. ![image](docs_ngweb/source/_static/form_distance_en.png) ## Average calculator An element which calculates the average value from some amount of entered values. For example, you can measure the trunk width of ten trees growing in the area, enter these numbers and click **Count**. The calculated average is recorded to the layer field. Includes an interactive **Count** button. Properties: * **Field** - select the field of the vector layer where the data from this element is to be recorded. * **Number of samples** - how many values should the data collector enter to calculate an average value. ![image](docs_ngweb/source/_static/form_average_en.png) ## Photo An element which allows to take photos with the camera of the device or to add them from the gallery. Properties: * **Max number** - maximum number of photos that can be added to a feature, (1-20). * **Comment** - text under the added photo(s). ![image](docs_ngweb/source/_static/form_photo_en.png) ## System field This element allows to automatically record the NextGIS ID or username of the user editing the layer. Properties: * **Field** - select the field of the vector layer where the data from this element is to be recorded. * **Type** - you can store the username chosen either in NextGIS ID or within Web GIS. ![image](docs_ngweb/source/_static/form_ngid_en.png) ## Dropdown A dropdown menu to select one value from a predetermined list. Properties: * **Field** - select the field of the vector layer where the data from this element is to be recorded. * **Remember last value** - if activated, inserts the value added for the previous feature. * **Enable search** - user can start typing to search in available options. * **Allow free input** - data collector can enter text that is not in the list of options. * **Options** - a list of possible field values. Click **Edit** to enter the values. ![image](docs_ngweb/source/_static/form_dropdown_en.png)![image](docs_ngweb/source/_static/form_edit_dropdown_en.png) Options are entered as a table. You can eter them manually or [import from CSV](https://docs.nextgis.com/docs_ngweb/source/form_elements.html#import-csv). To **add an option** type in the value that is stored in the layer attribute and the label displayed in the form dropdown (can be the same as the value). #### IMPORTANT Make sure to fill in both columns, or you won’t be able to save the form. The right end of the row has the following buttons: * Initial - set this option as the default; * Clone - makes a copy of the row, it’s handy if you only need to modify a part of the value; * Delete. ## Dual dropdown Dropdown list with predetermined items split into two parts. For instance, showing a place name in two different languages. Properties: * **Field** - select the field of the vector layer where the data from this element is to be recorded. * **Remember last value** - if activated, inserts the value added for the previous feature. * **First label** - text displaed above the left part of the dropdown. * **Second label** - text displayed above the second part of the dropdown. * **Options** - a list of possible field values. Click **Edit** to enter the values. ![image](docs_ngweb/source/_static/form_dual_dropdown_en.png)![image](docs_ngweb/source/_static/form_edit_dual_dropdown_en.png) Options are entered as a table. You can eter them manually or [import from CSV](https://docs.nextgis.com/docs_ngweb/source/form_elements.html#import-csv). To **add an option** type in the value that is stored in the layer attribute and two labels displayed in the form dropdown. #### IMPORTANT Make sure to fill in all the columns, or you won’t be able to save the form. The right end of the row has the following buttons: * Initial - set this option as the default; * Clone - makes a copy of the row, it’s handy if you only need to modify a part of the value; * Delete. ## Radio group A list of predetermined values (data collector chooses only one item from the list). You can see all the options of the radiogroup, unlike the dropdown that you need to click to view the list. Properties: * **Field** - select the field of the vector layer where the data from this element is to be recorded. * **Remember last value** - if activated, inserts the value added for the previous feature. * **Options** - a list of possible field values. Click **Edit** to enter the values. ![image](docs_ngweb/source/_static/form_radio_en.png) Options are entered as a table. You can eter them manually or [import from CSV](https://docs.nextgis.com/docs_ngweb/source/form_elements.html#import-csv). ![image](docs_ngweb/source/_static/form_radio_edit_en.png) To **add an option** type in the value that is stored in the layer attribute and the label displayed in the form dropdown (can be the same as the value). #### IMPORTANT Make sure to fill in both columns, or you won’t be able to save the form. The right end of the row has the following buttons: * Initial - set this option as the default; * Clone - makes a copy of the row, it’s handy if you only need to modify a part of the value; * Delete. ## Dependent dropdowns A pair of drop-down lists with predefined items. The item list of the secondary dropdown (bottom) depends on the items of the primary dropdown (top). **Example:** * Main list - a list of regions (1. Centre-Val de Loire; 2. Grand Est) * Dependent list - departments of the regions (1.1. Eure-et-Loir, 1.2. Indre; 2.1. Ardennes, 2.2. Marne) Properties: * **Primary field** - select the field of the vector layer where the data from the first dropdown is to be recorded. * **Secondary field** - select the field of the vector layer where the data from the second dropdown is to be recorded. * **Remember last value** - if activated, inserts the value added for the previous feature. * **Options** - a list of possible field values. Click **Edit** to enter the values. ![image](docs_ngweb/source/_static/form_dependent_dropdown_en.png) Options are entered as a table. You can eter them manually or [import from CSV](https://docs.nextgis.com/docs_ngweb/source/form_elements.html#import-csv). ![image](docs_ngweb/source/_static/form_edit_dependent_dropdown_en.png) To **add an option** type in the value that is stored in the layer attribute and the label displayed in the form dropdown (can be the same as the value). #### IMPORTANT Make sure to fill in both columns, or you won’t be able to save the form. The right end of the row has the following buttons: * Initial - set this option as the default; * Clone - makes a copy of the row, it’s handy if you only need to modify a part of the value; * Delete. ## Import options If you need to add a long list of options to an element that allows picking one from a pre-set list (i.e. [Dropdown](https://docs.nextgis.com/docs_ngweb/source/form_elements.html#combobox); [Dual dropdown](https://docs.nextgis.com/docs_ngweb/source/form_elements.html#split_cb); [Radio group](https://docs.nextgis.com/docs_ngweb/source/form_elements.html#radio); [Dependent dropdowns](https://docs.nextgis.com/docs_ngweb/source/form_elements.html#dependet_cb).), you can import it from a CSV file. Select the element, in the Properties panel click **Edit** next to the Options field. ![image](docs_ngweb/source/_static/options_edit_open_en.png) A dialog for options editing is opened. Click **Import**. ![image](docs_ngweb/source/_static/options_edit_import_en_2.png) ## Import options from CSV In the options editing dialog select Import - From file. In the next dialog, upload a CSV file from your device. ![image](docs_ngweb/source/_static/options_edit_upload_en.png) Import settings dialog opens. ![image](docs_ngweb/source/_static/options_csv_preview_en_2.png) Select the table columns for: * Value - what is recorded in the layer attribute; * Label - what is displayed in the interface; * Initial - column where the row that is to be used as the initial value is marked. You can also set up: * Delimiter; * Quote character; * Escape character; * Encoding. Once you’re satisfied with the result, click **Import**. ![image](docs_ngweb/source/_static/options_imported_en.png) After the import you can pick the initial value, add more rows manually or delete some and rearrange the list. The options set up in this dialog can be exported as CSV. Click **Done** to complete the editing. ### Import from Lookup table If the list you need is already uploaded to your Web GIS as a [Lookup table](https://docs.nextgis.com/docs_ngweb/source/create_other.html#lookup-table), you can use it for the form element options. In the options editing dialog select Import - From lookup table. A resource picker appears. ![image](docs_ngweb/source/_static/options_lookup_select_en.png) Tick the lookup table and click **Pick selected**. ![image](docs_ngweb/source/_static/options_imported_lookup_en.png) After the import you can pick the initial value, add more rows manually or delete some and rearrange the list. The options set up in this dialog can be exported as CSV. Click **Done** to complete the editing. # form_syntax.html.md # General This page describes the syntax of “form.json” file which is a part of NextGIS Formbuilder project file (with “.ngfp” extension). The file uses the JSON specification rules and is encoded in UTF-8. # Syntax Example of the “form.json” file which represents a form with two elements for entering person’s name: ```json [ { "attributes" : { "text" : "Person" }, "type" : "text_label" }, { "attributes" : null, "type" : "space" }, { "attributes" : { "field" : "researcher", "last" : true, "max_string_count" : 1, "ngid_login" : false, "ngw_login" : false, "only_figures" : false, "text" : "John Smith" }, "type" : "text_edit" } ] ``` All elements are always arranged vertically on the form in a strict order, so the root of the file is an array of objects. * ** Watch on [youtube](https://www.youtube.com/watch?v=O3T3eiHigp4). To create a gallery navigate to the resource group (folder) in which to add it. Click **Create resource** button and select **Gallery**. ![image](docs_ngweb/source/_static/ngw_create_gallery_en.png) On the first tab you can enter a custom **name** for your gallery. It will be displayed in the resource list. On the second tab add the gallery items by clicking the + buttons. Available items: * Resource; * Link; * Group - resources and links can be organized in groups within the gallery. Drag to change the order of the items. To add an item to a group, drag it onto the group title. After adding some items you can click **Create** and view the gallery. You can customize the general look of the gallery and its items. ## Gallery items After adding an item click on it to view the properties panel on the right. Each type of item has specific settings. ### Resource * Title: displayed on the item card (does not have to be the same as the resource name); * Resource: name of the resource and link to its page; * Action: what happens when you click on the item in the gallery. Variable options – depend on resource type: > * **Go to resource** - for all types; > * **Update resource** - for all types; > * **Display resource** - for Web Maps and resource galleries. * Cover: image used as background on the item card instead of the standard resource type icon. Max 5.0 MiB. Recommended ratio: 3:2 for grid, 5:4 for list. * Description displayed when hovering over the item or to the right of the cover in the list. Formatting is supported. ![image](docs_ngweb/source/_static/ngw_gallery_webmap_en.png) ### Link * Title; * Link: by default, the link to the Web GIS itself is used, but you can change it to any other URL; * Cover; * Description. ![image](docs_ngweb/source/_static/ngw_gallery_link_en.png) ### Group * Title; * Description; * Layout: > * Grid > * List > * Rows > * Columns > * Masonry If you don’t set a layout here, the default layout selected on the Settings tab is applied. Initially it’s grid. ![image](docs_ngweb/source/_static/ngw_gallery_layout_grid_en.png)![image](docs_ngweb/source/_static/ngw_gallery_layout_list_en.png)![image](docs_ngweb/source/_static/ngw_gallery_layout_rows_en.png)![image](docs_ngweb/source/_static/ngw_gallery_layout_columns_en.png)![image](docs_ngweb/source/_static/ngw_gallery_layout_masonry_en.png) ## Gallery settings ![image](docs_ngweb/source/_static/ngw_gallery_settings_en.png) On the Settings tab you can set up: * Default **layout**, it is applied to all the groups that do not have a different layout set on the Gallery tab; * Display or hide Web GIS header. You can also add description and metadata on the corresponding tabs. Gallery description is displayed both on the resource page and in the gallery itself, below its title. ![image](docs_ngweb/source/_static/ngw_gallery_desc_en.png) Click **Create** to finish the process. After the gallery is successfully created you are redirected to its resource page. Click ![button_open_gallery](docs_ngweb/source/_static/button_open_gallery.png) **Open** to view the gallery. You can select a gallery as the [homepage of your Web GIS](https://docs.nextgis.com/docs_ngweb/source/look.html#ngw-homepage). # gbif_download.html.md # GBIF species observations to geodata Launch the tool: [https://toolbox.nextgis.com/t/gbif_download](https://toolbox.nextgis.com/t/gbif_download) Downloads species observations from the public GBIF API for a given bounding box, optionally filtered by taxon (scientific name), kingdom, quality grade, wildness and observation date. Hard limit: 10 000 records per run. Inputs: * Bounding box - draw your area of interest on the map or enter coordinates in decimal degrees (West, South, East, North in WGS84). * Country code (ISO 3166-1 alpha-2) - two-letter country code (e.g. ‘DE’, ‘FR’, ‘US’). Filters by the country where the occurrence was recorded. Combined with ‘Bounding box’ if both are set (AND). * Taxon name - scientific name (e.g. `Bubo bubo`). Leave empty to download all species in the area. * Kingdom. Select one iconic taxon group (Birds, Plants, Insects, Fungi, Mammals, etc). Combines with ‘Taxon name’ if both are set. Options: - Animalia - Archaea - Bacteria - Chromista - Fungi - Plataea - Protozoa - Viruses * Record type - which categories of GBIF records to include. ‘Wild observations & specimens’ (default) covers the typical ecological use case — it excludes zoo/botanical-garden (LIVING_SPECIMEN) records. * Observation date from - Lower bound of observation date. Format: YYYY-MM-DD. * Observation date to - Upper bound of observation date. Format: YYYY-MM-DD. * Only with photo - restrict to records that have at least one image attached (mediaType=StillImage). Default: off. * Only commercially reusable licences - restrict to records licensed CC0 or CC-BY (excludes CC-BY-NC). Default: off (all licences). * Exclude records with geospatial issues - exclude records that GBIF has flagged with geospatial quality issues (hasGeospatialIssue=false). Default: on. Outputs: * GeoPackage with one point layer ‘observations’; * Report; * JSON. Example: ![image](docs_toolbox/source/_static/gbif_download_result_en.png) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. #### SEE ALSO * [iNaturalist species observations to geodata](https://toolbox.nextgis.com/t/inaturalist_download?from-related-tools=1) * [Download Sentinel-2 and Landsat-C2L2 satellite data](https://toolbox.nextgis.com/t/download_and_prepare_l8_s2?from-related-tools=1) * [KML to geodata](https://toolbox.nextgis.com/t/kml2geodata?from-related-tools=1) # general.html.md # General Information NextGIS Web is a web mapping application designed to store, manage access and visualize geographic data. NextGIS Web is [open source](../../glossary.md#term-Open-Source) software. NextGIS Web supports Open Geospatial Consorcium ([OGC](http://www.opengeospatial.org/)) open data exchange protocols and meets the modern requirements for application architecture implemented on the basis of free software ([Open Source](../../glossary.md#term-Open-Source)). NextGIS Web allows: 1. Creation and display of maps. 2. Map navigation (zooming, shifting). 3. Manage the map through web-interface. 4. Vector ([ESRI Shape](../../glossary.md#term-ESRI-Shape), [PostGIS](../../glossary.md#term-PostGIS) etc) and raster data import. 5. Use of standart protocols ([WMS](../../glossary.md#term-WMS), [WFS-T](../../glossary.md#term-WFS-T), [TMS](../../glossary.md#term-TMS)). 6. Manage access rights for layers, groups of layers, maps and other resources. 7. Interaction through API. Watch on [youtube](https://youtu.be/dsx-xo3McIo?si=Oo7lX8_FXiCdM2Nz). NextGIS Web has server and client sides. Server side stores and renders geodata. It’s written in Python using Pyramid framework. Client side is a user interface for interactive [geodata](../../glossary.md#term-geodata) management as maps and separate resources. Client is written in JavaScript. System’s configuration is stored in a PostgreSQL database with a [PostGIS](../../glossary.md#term-PostGIS) extension. Page markup for user interface is written using HTML. Style for user interface is added using cascading style sheets – CSS. Queries to databases use SQL language. NextGIS Web is a modular system with several core modules and extensions. Extensions could be enabled or disabled at the application configuration step. NextGIS Web components communicate with each other using internal API methods. NextGIS Web is designed to operate in Linux operating system environment (Debian-based distributives are recommended, e.g. Ubuntu Server). Read more in section [Recommended software versions](#ngw-soft-req). NextGIS Web client-side works in all modern browsers. User interface with a published Web Map is shown on [Fig. 279.](#webmap-sample). ![image](docs_ngweb/source/_static/webmap_sample2_eng_2.png) ## Key features of NextGIS Web NextGIS Web has the following key features: ### Data layers * Creation of raster and vector layers and data upload for them using web interface. * Creation of [WMS](../../glossary.md#term-WMS) and [TMS](../../glossary.md#term-TMS) layers and connections to existing services. * Creation of [PostGIS](../../glossary.md#term-PostGIS) layers and connection to layers in external databases. * A set of standard basemaps: OpenStreetMap and others from [QuickMapServices](https://qms.nextgis.com/). * WFS service. * WMS service. * Dictionary (with extension). * File set. * “Key-value” function, support for metadata. * Export to various formats (see [full list here](https://docs.nextgis.com/docs_ngcom/source/data_export.html#how-to-export-data)). ### Access management * Detailed settings of access rights for each connected layer. * Setting of access rights for resources and resource groups. ### Rendering and symbology * Symbology import from QGIS with automated conversion “for renderer”. * Pluggable renderers: [MapServer](../../glossary.md#term-MapServer), [QGIS](../../glossary.md#term-QGIS) (import a project from desktop software NextGIS QGIS with the same layers, styles etc.). * Several symbology options for the single data layer. ### Web Maps * Own set of layers and layer tree management for each map. * Reuse of the same layer representation in different maps. ### User interface * Layer tree. * Layer groups. * Navigation tools panel. * Search by attributes. * Bookmarks for fast access to some regions of the map. * Layer description view. * Feature table view for layer with fast switch between a table and a map. * Annotations. ### Editing * Editing of feature attributes. * Editing of layer description. * Adding of photos and other attachments. * Editing features with WFS-T. ## Minimum hardware Minimum hardware requirements for NextGIS Web software: * 4 vCPU * 8 GiB of RAM * 250 GB HDD (SSD would be much better) ## Recommended software versions Recomended browsers are: * Google Chrome (version 118 or newer) * Mozilla Firefox (version 115 or newer) * Edge (version 116 or newer) * Safari (version 17 or newer) * Opera (version 104 or newer) Microsoft Internet Explorer browser is not suppoted. #### WARNING NextGIS Web would probably work with other versions, but this is not garanteed. Technical requirements for on-premise installations are listed [here](https://docs.nextgis.com/docs_ngweb_dev/doc/admin/install.html#system-requirements). # generalization.html.md # Advanced vector generalization Simplification of vector layer features to reduce data volume. Inputs: * Vector layer. Layer in GeoPackage, GeoJSON or ESRI Shapefile (ZIP-archived) format * Merge nodes closer than. The value (in coordinate system units) at which geometry nodes are merged. Default is -1 meaning no merging. Optional * Number of iterations. An integer indicating the number of iterations of the simplification, smoothing, or shifting procedure. Optional * Method of generalization. Choose a generalization method: douglas, douglas_reduction, lang, reduction, reumann, boyle, sliding_averaging, distance_weighting, chaiken, hermite, snakes, displacement; * Max tolerance value (threshold). Number between 0 and 1000000000. If the method does not refer to this parameter, specify any number * Number of points. An integer that specifies the number of points used in some methods. Optional. The default value is 7 * Reduction. A number from 0 to 100. In the simplification algorithm, it characterizes the percentage of points that are preserved relative to the original number of points. An optional parameter. The default value is 50 * Slide. A number from 0 to 1, characterizes the shift of the obtained point relative to the original. Optional parameter. The default value is 0.5. * Minimum angle. A number from 0 to 180. Specifies the minimum angle between two consecutive line segments. Optional. The default value is 3 * Alpha. Number, parameter for the Snakes method. Optional. The default value is 1 * Beta. Number, parameter for the Snakes method. Optional. The default value is 1 [More on options for various algorithms](https://grasswiki.osgeo.org/wiki/V.generalize_tutorial) Output: * GeoPackage file with simplified features (geometries) in a ZIP archive. Launch the tool: [https://toolbox.nextgis.com/t/generalization](https://toolbox.nextgis.com/t/generalization) Example: ![image](docs_toolbox/source/_static/generalization_result.png) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # geocodetable.html.md # Geocode table The tool processes addresses from a CSV file and adds its coordinates back to the file. A relevant geocoding license is needed. Inputs: * Source data - CSV file with a list of addresses. First row should contain field names. File should be in UTF-8 encoding. * Field with address - name of the field that contains addresses in a source CSV file. * Geocoder - specify one of the available geocoder providers. Note that only Nominatim is free, for others you need a license. * API key - API key to run the chosen geocoder. For Nominatim leave empty. #### NOTE **How to get a geocoder API key** > Google Geocoding API - [https://developers.google.com/maps/documentation/geocoding/usage-and-billing](https://developers.google.com/maps/documentation/geocoding/usage-and-billing) Outputs: * CSV file, containing two additional columns with latitude and longitude besides original data. Launch the tool: [https://toolbox.nextgis.com/t/geocodetable](https://toolbox.nextgis.com/t/geocodetable) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # geodata2pmtiles.html.md # Geodata to PMTiles Generate PMTiles from vector or raster file. PMTiles is a single-file archive format for tiled data. A PMTiles archive can be hosted on a commodity storage platform such as S3, and used in web applications via HTTP queries. Inputs: * Input file. Vector or raster layer. * Minimum zoom. 0-19 * Maximum zoom. 0-19 Outputs: * PMTiles file Launch the tool: [https://toolbox.nextgis.com/t/geodata2pmtiles](https://toolbox.nextgis.com/t/geodata2pmtiles) Example: ![image](docs_toolbox/source/_static/geodata2pmtiles_input_en.png)![image](docs_toolbox/source/_static/geodata2pmtiles_result_en.png) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # geom_paster.html.md # Geometry Paster #### NOTE Qt6 compatible With this plugin you can copy geometry from one feature and assign it to a different one. Source and target features can be in one layer or in different layers. This way you get a “duplicate” of the feature keeping its style and attribute values intact. 1. Install plugin ![image](docs_ngqgis/source/_static/geom_paster_plugin_install_en.png) 1. Copy feature from the source layer. 2. Enable editing for the target layer. 3. Select the target feature and in the Edit menu select “Paste geometry”. Alternatively you can press ![button_geom_paster](docs_ngqgis/source/_static/button_geom_paster.png) button in the toolbar. ![image](docs_ngqgis/source/_static/geom_paster_paster_en.png) On step 4 you can select multiple features. In that case the geometry is added to each of them. Check out how the plugin works in our video: Watch on [youtube](https://youtu.be/NMs5hDf5ndE?si=20Rwhy-2fluYzafT). # geometry_changer.html.md # Change geometries in layer groups The tool changes the geometry of features in all the layers of a group in Web GIS on NextGIS platform. NextGIS Web (NGW) is a geodata managing system. You can use it for free after [signing up](https://docs.nextgis.com/docs_ngcom/source/create.html). With NextGIS Web you can store geodata, create interactive online maps, give access to them to your teammates and clients, edit features directly on the map and in the feature tables, as well as process them with specialized Toolbox tools. [More on what NGW can do](https://docs.nextgis.com/docs_ngweb/source/general.html). Three modes are available: * **Delete** - the tool deletes the selected features. The selection is based on the specified values of a layer’s attribute field; * **Add** - the tool adds new features from the uploaded ESRI Shapefile. The structures of the file and the layer must match. Otherwise, the tool will not be able to add new features; * **Change** - the tool replaces the geometry value for features with the geometries from the uploaded Shapefile. The selection is based on the specified values of a layer’s attribute field. The attribute name in the SHP file and the Web GIS layer must match. Inputs: * Web GIS address. Example: [https://sandbox.nextgis.com](https://sandbox.nextgis.com). * Login. NextGIS ID or login of a user who has write access to the resource group; * Password of that user; * Group resource ID. ID of the Web GIS resource that contains the layer group; * Source field. The name of the source field by which objects are searched. * Mode. Select `DELETE`, `ADD` or `CHANGE`; * Initial value. The value of the field by which objects are selected. If you need to specify multiple values, use a comma as a separator. The parameter is required in the Delete and Change modes. * First year. Start of time range (optional). * Last year. End of time range (optional parameter). * Select SHP file. File upload is required in Add and Change modes. #### NOTE Start year and end year are optional parameters. These parameters allow you to limit the time range for the selected layers. To use these parameters, you must make sure that the time ranges are indicated in the names of the layers of the Web GIS resource. For example, in layer 1245_1246_earl_v.1.0 1245 and 1246 the years are indicated. If these parameters are in use, you need to enter three or four digit values. Other parameters are **required**. Outputs: * A CSV file that contains data on the selected mode, the source field and its value, a list of hyperlinks to features that have been changed. If there are errors, they will also be indicated in this file. ![image](docs_toolbox/source/_static/geometry_changer_result.png) Launch the tool: [https://toolbox.nextgis.com/t/geometry_changer](https://toolbox.nextgis.com/t/geometry_changer) **Try it out using our sample:** Download [input dataset](https://nextgis.com/data/toolbox/geometry_changer/geometry_changer_inputs.zip) to test the instrument. Step-by-step instructions included. Get the [output](https://nextgis.com/data/toolbox/geometry_changer/geometry_changer_outputs.zip) to additionally check the results. # geopandas.html.md # How to load data in GeoPandas * [Order data](https://data.nextgis.com/en/) for your area of interest in GeoPackage format. * Go to the [orders](https://data.nextgis.com/en/orders/actual/) page and download the archive when it’s complete. * **Unpack** the archive. * Find out a name and a path to the target layer. For example: municipal boundaries (boundary-polygon-lvl6) * Install and import geopandas in Python. Showing the map: ```python import geopandas boundaries = geopandas.read_file("/tmp/data/boundary-polygon-lvl6.shp") boundaries.plot(column="oktmo") ``` ![image](docs_data/source/_static/geopandas_map.png) Calculate areas: ```python boundaries["AREA"] = boundaries.to_crs("EPSG:32637").area / 10 ** 6 boundaries[["NAME_EN", "AREA"]].dropna() ``` ![image](docs_data/source/_static/geopandas_table.png) # glossary.html.md # Glossary API : A set of protocols, tools and procedures that an application (software or web service) provides for the use by external software. Web services API is typically a description of possible HTTP requests. Basemap baselayers : Background of the map. All other layers are displayed on top of it. [How to add a basemap](https://docs.nextgis.com/docs_ngweb/source/webmaps_admin.html#ngw-map-basemaps) Collector project collector_project : Type of resource in NextGIS Web, a project for data collection. Users connect to it via NextGIS Collector app to enter data in the field. [How to create](https://docs.nextgis.com/docs_ngcom/source/collector.html#collector-create-project) Connection PostGIS connection TMS connection WMS connection WFS connection postgis_connection tmsclient_connection wfsclient_connection wmsclient_connection : Type of resource in NextGIS Web, a connection to a remote server using standard protocols: PostGIS, TMS, WFS, WMS. CORS Cross-origin resource sharing : A mechanism that allows a web page to access restricted resources from a server on a domain different than the domain that served the web page. See more in [Cross-origin resource sharing](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing). CSS Cascading Style Sheets : Style sheet language used for specifying the presentation and styling of a document written in a markup language such as HTML or XML. [How to use CSS to change the look of your Web GIS](https://docs.nextgis.com/docs_ngweb/source/look.html) CSV : A format for storage of tabular data in plain text. The file contains a set of rows where columns are separated with commas or semicolons. The format is used for data exchange between programs if they can not read more complex formats. CSV could be used to store geodata: columns may store coordinates for points or geometry description in WKT or WKB formats. Demo project demo_project : Examples showcasing NextGIS Web functionality. [How to use Demo projects](https://docs.nextgis.com/docs_ngcom/source/demoprojects.html). detached layer : Layer downloaded from Web GIS, stored locally and synchronized with the server. DXF AutoCAD DXF : An open data file format developed by Autodesk to enable CAD data exchange and interoperability between AutoCAD on different computing platforms. EPSG IOGP’s EPSG Geodetic Parameter Dataset : Public registry of geodetic datums, spatial reference systems, Earth ellipsoids, coordinate transformations and related units of measurement, originated by a member of the European Petroleum Survey Group. Catalog is available on [https://epsg.io/](https://epsg.io/). Most common codes are EPSG:4326 - WGS 84, EPSG:3857 - Mercator projection. ESRI Shape ESRI Shapefile Shapefile Shape : Popular format for geodata files developed and supported by Esri company for interoperability between products of Esri and other software. Extent : The coordinate of the map’s boundary, usually 4 numbers. Extent identifies the area shown on the map. fid : Field containing the unique feature ID. File bucket file_bucket : Special resource type available in Extended NextGIS on-premise. A storage for files of any kind. [How to create](https://docs.nextgis.com/docs_ngweb/source/create_other.html#ngw-create-file-bucket) Form formbuilder_form : Subresource of a vector layer, a user-friendly interface for entering and editing data used in mobile apps NextGIS Mobile and NextGIS Collector. The file has \*.ngfp extension. [How to create a form.](https://docs.nextgis.com/docs_ngweb/source/collector.html#collector-create-form) geographical feature spatial feature geofeature geodata : Digital model for material or abstract feature of real or virtual world with assigned identifier, coordinates and attributes. geographical information system GIS : Information system that operates with geographical data (geodata). GeoJSON : An open standard format designed for representing simple geographical features, along with their non-spatial attributes, based on JavaScript Object Notation. The features include points, linestrings & polygons and multi-part collection of these types. GeoPackage : Open, standards-based, platform-independent, portable, self-describing, compact format for transferring geospatial information. GeoTIFF : Open geodata format for raster data representation in a TIFF format with metadata about georeferencing. Uses TIFF 6.0 specification, and adds some types of geotags that defines a type of cartographic projection, geographical coordinate system, geoid, datum and all other information required for precise spatial orientation of satellite image. GLONASS Global Navigation Satellite System : Satellite navigation system. It provides an alternative to Global Positioning System (GPS) and is the second navigational system in operation with global coverage and of comparable precision. GML Geographic Markup Language : XML grammar defined by the Open Geospatial Consortium ([OGC](https://www.ogc.org/standards/gml)) to express geographical features. GPS Global positioning system : One of the global navigation satellite systems that provide geolocation and time information. GPX : GPS Exchange Format is an XML schema designed as a common GPS data format for software applications. HEX : 6-digit representation of the [RGB](#term-RGB) color model in the hexadecimal numeral system. The code starts with # followed by two digits representing red, two digits for green and two for blue. E.g. #f5df4d, a shade of yellow. HSB Hue, Saturation, Brightness : A representation of RGB colors through three parameters: hue, saturation, brightness. instance : A single Web GIS with its unique URL. integer int bigint integral data type : Data type that represents some range of mathematical integers. The ranges of values are: Int - signed: between -2147483648 and 2147483647; unsigned: between 0 and 4294967295. Bigint - signed: between -9223372036854775808 and 9223372036854775807; unsigned - between 0 and 18446744073709551615. KML Keyhole Markup Language : The file [format](https://www.ogc.org/standards/kml/) used to display geographic data in an Earth browser such as Google Earth. KMZ : KMZ files are [KML](#term-KML) archived into ZIP. LA label attribute : The values of the field marked as “label attribute” are used as feature labels on the map. [How to configure](https://docs.nextgis.com/docs_ngweb/source/layers_settings.html#ngweb-admin-layers-attr) Lookup table lookup_table : Type of resource in NextGIS Web, a list of key-value pairs that can be connected to a field of a vector layer. [How to create](https://docs.nextgis.com/docs_ngweb/source/create_other.html#ngw-create-lookup-table) MapInfo MIF/MID : Map and database exchange file format of MapInfo software product. MIF-file contains Block with the description of attributive Data-columns and Blocks that stores Geomentry Objects. MID-file is CSV-like format to store the attributive Data. Each line in MID-file is related with the same order Geometry Block (Geometry Object) in MIF-file. MapInfo TAB : Geospatial vector data format for geographic information systems software. It is developed and regulated by Precisely as a proprietary format. Used in MapInfo Pro. Mapnik : Open source map renderer. Written on C++ and Python. Uses a AGG library and has a function of smoothing of features with high acuracy. It can read from ESRI formats, PostGIS, TIFF, .osm files, and also supports for any GDAL or OGR formats. MapServer : Server geographical information system with open source that is launched through CGI interface. MapServer style mapserver_style : Subresource of a vector layer, necessary to display the data on a Web Map or in an app. See also QGIS vector style. [How to create](https://docs.nextgis.com/docs_ngweb/source/mapstyles.html#mapserver) MVT Mapbox Vector Tiles : Vector tile standard. Uses PBF container for tiles. NGID : Account on the NextGIS platform with the email address used as login. NGIDOP NextGIS ID on-premise : Authorization and user management server for NextGIS software deployed in local networks isolated from the Internet. OAuth : (Short for open authorization) is an open standard for access delegation, commonly used as a way for internet users to grant websites or applications access to their information on other websites but without giving them the passwords. OGC API Features OGC API - Features OGC API — Features : [OGC](https://www.ogc.org/standards-overview/) standard for publishing vector data with geometries, attributes and query filtering. Open data : Open data is data that can be freely used, re-used and redistributed by anyone - subject only, at most, to the requirement to attribute and sharealike. Open Source : Software with open source code. Source code of such software is available for view, study and update. This allows a user to participate in a process of development of open source software, to use a code for creation of new software and debugging — through borrowing of source code if that is allowed by license compatibility, or to study of used algorithms, data structures, technologies, methods and interfaces (as source code could essentially complete documentation or be a kind of documentation if there is no one). PostGIS : Extension for relational DBMS PostgreSQL for storage of geodata in a database. PostGIS has a support for spatial indexes R-Tree/GiST and geodata processing functions. PostGIS layer postgis_layer : Layer added using a connection to a PostGIS data base on a remote server. QGIS : A user-friendly geographical information system with open source code, distributed under GNU General Public License. QGIS is a project of Open Source Geospatial Foundation. It works on Linux, Unix, Mac OSX, Windows and Android, supports for various vector, raster formats, databases and has a variety of functions. QGIS raster style qgis_raster_style : Subresource of a raster layer necessary to display data on a Web Map or in QGIS desktop app. QGIS vector style qgis_vector_style : Subresource of a vector layer, necessary to display the data on a Web Map or in an app. The file extension is \*.qml. See also MapServer style. [How to create QGIS style](https://docs.nextgis.com/docs_ngweb/source/mapstyles.html#ngw-qgis-style-file). QML : The main language for describing map styles in the NextGIS QGIS software. Vector and raster styles are edited in QGIS and saved to a file with QML extension. Internal representations is XML. Map styles in QML format are supported by NextGIS Web. Raster layer raster_layer : Type of resource in NextGIS Web that stores geodata as regular pixel grid. The file format is GeoTIFF. [How to create](https://docs.nextgis.com/docs_ngweb/source/layers.html#ngw-create-raster-layer) Raster style raster_style : Subresource of a raster layer necessary to display data on a Web Map. resource : A component of NextGIS Web: a layer, a map, a service etc. Resource group resource_group : In NextGIS Web it’s a folder/directory in the resource structure. [How to create](https://docs.nextgis.com/docs_ngweb/source/create_resource.html#ngw-resourses-group) RGB : An additive color model in which the red, green, and blue primary colors of light are added together in various ways. Each color can have a value between 0 and 255. There are also [HEX](#term-HEX) color codes for HTML, CSS, SVG, and other computing applications. SDK software development kit : Collection of software development tools in one installable package. Service ogcfserver_service wmsserver_service wfsserver_service : Type of resource in NextGIS Web, an interface for requesting geo-registered map images using standard protocols: OGC API – Features, WMS etc. SLD Styled Layer Descriptor : An XML schema specified by the Open Geospatial Consortium (OGC) for describing the appearance of map layers. A typical use of SLDs is to instruct a Web Map Service (WMS) or Web Feature Service (WFS) how to render a specific layer. SRID : Spatial Reference Identifier, unique identification number of a spacial reference system. EPSG code is often used. SRS Spacial Reference System CRS coordinate system : A way for description of point location relative to selected axes. SSL Secure Sockets Layer : Security protocol that provides privacy, authentication, and integrity to Internet communications. SVG : Scalable Vector Graphics (SVG) is an XML-based vector image format for defining two-dimensional graphics. In GIS systems is used to store icons used as map symbols. SVG Marker Library svg_marker_library : Type of resource in NextGIS Web that stores SVG icons used in QGIS vector styles to display data on Web Maps, if the icons are not embedded in the style. [How to create](https://docs.nextgis.com/docs_ngweb/source/mapstyles.html#ngw-create-svg-marker-lib) team : A unit of user grouping in NextGIS. A Premium plan holder can share the Premium functionality with up to four other users by [adding them to the team](https://docs.nextgis.com/docs_ngcom/source/teams.html#ngcom-team-management) and setting up [permissions](https://docs.nextgis.ru/docs_ngcom/source/teams.html#ngcom-auth-id-webgis) for them in the Web GIS. Tile Tiles : Square images displaying part of a map split by a grid, often have the size of 255 X 255 and PNG format. Tileset : File or Web GIS resource containing map data split into standardized squares. TMS Tile Map Service : A specification for Web Maps displayed by seamlessly joining dozens of individually requested image files over the internet. [OSGeo](http://www.osgeo.org/) standard that describes an access to representation of geodata through the Internet/Intranet without an access to geodata itself. The difference between [XYZ](#term-XYZ) and TMS is that the Y coordinate is flipped. TMS layer tmsclient_layer : Layer containing tiles served via TMS protocol. Tracker : 1. Type of resource in NextGIS Web that creates a connection between a tracking device and the Web GIS. 2. Mobile app NextGIS Tracker that records tracks and sends them to Web GIS. Trackers group trackers_group : In NextGIS Web it’s a folder containing tracker resources. [How to create](https://docs.nextgis.ru/docs_ngcom/source/tracking.html#tracking-create). URL Uniform Resource Locator : A Uniform resource locator (description of location). Previously called Universal Resource Locator (URL). URL is a standardized way to record a resource address in the Internet. Vector layer vector_layer : A type of geodata that stores information as a set of points, lines or polygons as well as the attribute data of the features. versioning : A mechanism that tracks all changes made to the vector layer features. [Learn more](https://docs.nextgis.com/docs_ngweb/source/version.html) Web Map webmap : Type of resource in NextGIS Web that visualizes data from various sources in a Web client. WFS Web Feature Service WFS-T WFS service : A web service that represents data in a vector GML format. Client gets both attributes and geometry. There are standard extensions:
> Transactional (WFS-T) - allows clients to send to WFS > server new and updated data; > Gazetteer (WFS-G) - a draft of a standard that adds a search and a query > of items by dictionary of geographical names. Initially developed by USGS; > Temporal - a draft of a standard that adds a temporal measurement; > Versioning (WFS-V, WFSV) - allows to work with different versions of data > (particular development of GeoServer project, not standardized by OGC). WFS Layer wfsclient_layer : Layer added using WFS protocol. WMS Web Map Service : A standard protocol for serving of georeferenced images through the Internet that are generated on server on a basis of data from a gis database. The standard was developed and initially published by international organization [OGC](http://www.opengeospatial.org/) (Open Geospatial Consortium) in 1999. WMS layer wmsclient_layer : Raster layer that displays data stored on a remote server and served via WMS protocol. WMTS Web Map Tile Service : [OSGeo](http://www.osgeo.org/) standard protocol for serving pre-rendered or run-time computed georeferenced map tiles over the Internet. XLSX : A zipped, XML-based file format for representing spreadsheets, charts, in Office Open XML standard. Spreadsheets in this format can be used as geodata sources. XYZ Raster Tile Map : Slippy map (in OpenStreetMap terminology) or Tiled Web Map is a map displayed by seamlessly joining dozens of individually requested image files over the internet. X, Y & Z denotes the numbering scheme to serve the images. The images are commonly of the size 256 X 256 in PNG format. The difference between XYZ and [TMS](#term-TMS) is that the Y coordinate is flipped. # google_mymaps.html.md # How to upload data to Google maps * [Order data](https://data.nextgis.com/en/) for your area of interest, e.g. in GeoJSON (QGIS) format. * Go to the [orders](https://data.nextgis.com/en/orders/actual/) page and download the archive when it’s complete. * **Unpack** the archive. * Convert the desired layer or layers to KML format. For conversion, you can use any online converter, for example, [GeoConverter](https://geoconverter.hsr.ch/vector). * Import the resulting KML file into the map in Google My Maps. ![image](docs_data/source/_static/google_mymaps1.png)![image](docs_data/source/_static/google_mymaps2.png) * Data is added to the map. ![image](docs_data/source/_static/google_mymaps3.png) # gpkg2etab.html.md # GeoPackage to MapInfo Enhanced TAB Convert GeoPackage (GPKG) to Enhanced TAB (NativeX) for MapInfo Pro 15.2 and above. If you have geodata with global coverage containing attribute values in a variety of languages, converting it in GDAL or QGIS may pose problems because Unicode characters are not supported for the format. This tool allows you to preserve the correct symbols. The output encoding is UTF-8. Inputs: * Single GeoPackage file with one vector layer. Outputs: * ZIP archive with MapInfo Enhanced TAB (NativeX) result file. Launch the tool: [https://toolbox.nextgis.com/t/gpkg2etab](https://toolbox.nextgis.com/t/gpkg2etab) Example: ![image](docs_toolbox/source/_static/gpkg2etab_result_en_2.png) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # gpx2exif.html.md # Geotag photos using GPX track Use timing information to assign coordinates to photos matching them with a GPX track. Coordinates are added to EXIF tags. If your camera doesn’t store coordinates or does so incorrectly, you can match photos made while recording a track by using timestamps. Input: * GPX file * ZIP with photos The tool can process photos with or without EXIF tags. Existing tags will be replaced with new ones. Output: * ZIP with photos that have new EXIF tags Launch instrument: [https://toolbox.nextgis.com/t/gpx2exif](https://toolbox.nextgis.com/t/gpx2exif) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # gpxanimation.html.md # GPS track animation for social media Generate video dinamically drawing the line of your track on a map for posting in social networks like Instagram and TikTok. Video is designed for simplicity: it has vertical aspect ratio and does not have labels. You will be able to overlay markers or labels while posting on social media. Inputs: * GPX file with track Outputs: * MP4 video Launch the tool: [https://toolbox.nextgis.com/t/gpxanimation](https://toolbox.nextgis.com/t/gpxanimation) Example: ![image](docs_toolbox/source/_static/gpxanimation_input_en_2.png)![image](docs_toolbox/source/_static/gpxanimation_result.gif) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # gpxclipbbox.html.md # Clip GPX file by bounding box Clip one GPX file by rectangular area to remove errors from signal bouncing or just trim the data to the exact area of interest. Inputs: * One GPX file or ZIP archive with one GPX file. Subdirectories are allowed; * Extent bounding box - you can mark it on a map, draw it and then correct the numbers or enter the extent manually following the format ‘xmin, xmax, ymin, ymax’. Enter coordinates in WGS 84 (EPSG:4326), for example `139.75282797783194,35.62931134243268,139.77938217891602,35.677314929949524`. Outputs: * Clipped GPX file. Launch the tool: [https://toolbox.nextgis.com/t/gpxclipbbox](https://toolbox.nextgis.com/t/gpxclipbbox) Example: ![image](docs_toolbox/source/_static/gpxclipbbox_input_en.png)![image](docs_toolbox/source/_static/gpxclipbbox_result_en.png) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # gpxdailysplit.html.md # Split GPX file by days Splits a GPX file tracks and waypoints by days (cut by midnight) and saves each day’s data to a separate GPX file. Inputs: * GPX file. Needs to be a single file. If you have several files, first merge them using [gpxmerge tool](https://toolbox.nextgis.com/t/gpxmerge); * Time zone. GPX tracks store time in UTC. To split tracks at midnight, provide the time difference from UTC, ex. `+09:00`. Outputs: * ZIP archive containing GPX files, one for each day. Launch the tool: [https://toolbox.nextgis.com/t/gpxdailysplit](https://toolbox.nextgis.com/t/gpxdailysplit) ![image](docs_toolbox/source/_static/gpxdailysplit_result_en.png) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # gpxmerge.html.md # Merge GPX files Merge multiple GPS logs in GPX format to one. Most programms open tracks one by one. With this instrument you don’t have to know in advance what day the information for a certain area was collected, all tracks will be viewed at once. ![image](docs_toolbox/source/_static/gpxmerge_output_en_2.png) Additionaly, This instrument fixes GPX files damaged by power down. Input: * ZIP archive with GPX files. Subdirectories of several leverls are allowed. You can have files with the same name in different folders, the tool can process them anyway; * Mode - select from the menu: > * **Strict**: merge all content of GPX files using gpsbabel, may take long if there are many files. > * **Quick**: concat XML code as string, remove GPX extensions, quick, data is simplified. #### IMPORTANT Archives inside the archive are not supported. Output: * Merged GPX. Resulting GPX file with all tracks merged. * Skipped files. List of skipped/invalid files (if any). Launch instrument: [https://toolbox.nextgis.com/t/gpxmerge](https://toolbox.nextgis.com/t/gpxmerge) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # gpxtracksplit.html.md # Split GPX into individual tracks Split a GPX file into separate GPX files with one track in each file Inputs: * One GPX file. You can merge multiple GPX fies into one using [Merge GPX Tracks](https://toolbox.nextgis.com/t/gpxmerge) tool. Outputs: * ZIP-archive containing split GPX tracks. Launch the tool: [https://toolbox.nextgis.com/t/gpxtracksplit](https://toolbox.nextgis.com/t/gpxtracksplit) Example: ![image](docs_toolbox/source/_static/gpxtracksplit_result_en.png) **Try the tool in action by downloading our example:** **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # grid.html.md # Meter grid ![image](docs_toolbox/source/_static/grids_multi.png) The tool generates a grid within the boundaries of features of a vector layer or a bounding box. The grid size is set in meters. Features can be anywhere in the world. Inputs: * Step. Grid cell size in meters; * Mode. Squares or points. Default: points; * Clip. How to clip the grid: 1) By feature boundaries, 2) Keeping all grid cells that intersect boundaries, 3) Keeping all grid cells in the extent; * Boundary polygon vector file in Geopackage format. Multipolygons are supported. Calculation time depends on the number of nodes in the boundary layer; * Extent. Set the extent on the map or upload as file; * Grid alignment. Mode of clipping edges of grid. 1) Vertical - the grid looks vertical in WGS 84 (EPSG:3857) projection, but angles and distances may be distorted.; 2) Precise - a grid with more precizely matching angles and distances, however it will look tilted in EPSG:3857. Output: * GeoPackage containing the grid. Each cell/point of the grid has the following attributes: number (cells are numbered vertically, top to bottom, left to right, starting with the first left column even if it doesn’t reach the top), row_index and col_index. To display the numbers, enable lables in the layer style settings and select the desired attribute. ![image](docs_toolbox/source/_static/grid_numbers.png) Resulting grids with different settings: ![image](docs_toolbox/source/_static/grid_rect_all.png)![image](docs_toolbox/source/_static/grid_rect_touches.png)![image](docs_toolbox/source/_static/grid_rect_intersection.png)![image](docs_toolbox/source/_static/grid_point_all.png)![image](docs_toolbox/source/_static/grid_point_intersection.png) Launch the tool: [https://toolbox.nextgis.com/t/grid](https://toolbox.nextgis.com/t/grid) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # grunt.html.md # Convert data about burial of sea bottom soil Tool converts data from [catalog](https://rpn.gov.ru/opendata/7703381225-grunt?sphrase_id=1181168) into vector file. Input: * XLSX file - Contains coordinates of burial places Output: * GPKG file in WGS-84 Launch the tool: [https://toolbox.nextgis.com/t/grunt](https://toolbox.nextgis.com/t/grunt) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # hello.html.md # Hello, World! Allows to test Toolbox service. Returns greeting string for a given name. Input: * Name - please, type, how you want to be greeted. * Delayed start - set a delay for the tool’s run in seconds. Optional field. Output: * String with greeting “Hello, (your name)” Launch the tool: [https://toolbox.nextgis.com/t/hello](https://toolbox.nextgis.com/t/hello) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # help.html.md # Toubleshooting ## Styles compatibility between QGIS and NextGIS Web Since original QGIS libraries do render layers in this extension, most styling and rendering options work well. However, there is a big difference between QGIS and NextGIS Web in how they compose layers. QGIS renders layers together and places labels on top of all layers. NextGIS Web, on the other hand, renders layers one-by-one (or even tile-by-tile) and stacks them together on a client side. That’s why NextGIS Web rendering of QGIS styles may differ in the following ways: * Blending options don’t work; * Labels from diffenent layers may overlap; * Expression-driven SVG markers don’t work; * Masking doesn’t work at all, as it part of a project, not of a layer. To check what version of QGIS is currently used for rendering in the Web GIS, see the [System information](https://docs.nextgis.com/docs_ngweb/source/infowebgis.html#ngw-system-info) section of the [Control panel](https://docs.nextgis.com/docs_ngweb/source/admin_interface.html#ngw-control-panel). ## How to get help or send a bug report If you haven’t found an answer to your question in this tutorial try [full documentation](http://docs.nextgis.com/docs_ngweb/source/index.html). You can send bug-reports to [info@nextgis.com](mailto:info@nextgis.com). Direct support and more functionality are available under Premium plan ([details](http://nextgis.com/nextgis-com/plans)). Informal support and discussions regarding the service are available in the public channel [NextGIS](https://t.me/nextgis_talks) # highcharts.html.md # How to vizualize data with Highcharts Maps (highcharts.js) * [Order data](https://data.nextgis.com/en/) for your area of interest in GeoJSON format. * Go to the [orders](https://data.nextgis.com/en/orders/actual/) page and download the archive when it’s complete. * **Unpack** the archive. * Select a layer. * To add a layer to Highcharts Maps you need to host it first (i.e. put it in a place, accessible via hyperlink) and specify it’s location: ```javascript Highcharts.getJSON('https://cdn.jsdelivr.net/gh/highcharts/highcharts@v7.0.0/samples/data/germany.geo.json', function (geojson) ``` * There are a lot of [examples of data usage](https://www.highcharts.com/demo/maps/geojson) in Highcharts Maps documentation, source code is also available. * The example of NextGIS Data usage is presented below, see [live example](https://jsfiddle.net/rendrom/nhv4mu5z/) as well. ![image](docs_data/source/_static/highcharts.png) #### NOTE Highcharts Maps library handles well fast visualization of spatial data statistics. However such libraries as Mapbox GL JS, Openlayers and Leaflet are better for interactive mapping. Examples of data upload from json files to forementioned libraries can be found here: [https://jsfiddle.net/rendrom/a1xf63bk/](https://jsfiddle.net/rendrom/a1xf63bk/) and [https://jsfiddle.net/rendrom/yg6xz9kj/](https://jsfiddle.net/rendrom/yg6xz9kj/). [NextGIS Frontend](https://github.com/nextgis/nextgis_frontend) libraries are used for these examples. #### HINT For faster and better data rendering performans on the web, additional generalization, thinning and modification of initial data can be needed. The resulting file would be smaller in size, having less nodes in polygons and lines and wouldn’t contain unnecessary attributes. # hospital.html.md # How to select all of my city’s hospitals on the map * [Order data](https://data.nextgis.com/en/) for your area of interest, e.g. in GeoPackage format. * Go to the [orders](https://data.nextgis.com/en/orders/actual/) page and download the archive when it’s complete. * **Unpack** the archive. * Open a preset GIS project in [QGIS](https://qgis.org/en/site/forusers/download.html). * Hospitals are a part of the “Buildings” layer. In the attribute table of this layer, the “Building” field contains information about the purpose of the building. Almost all possible types of buildings are shown in this article. From here we learn that hospitals are referred to as “hospital”. ![image](docs_data/source/_static/hospital_build_table_en.png) * In the attribute table of the layer the “ADDR_CITY” field also contains information about the settlement within which a particular object is located. #### WARNING However this field is not always filled in, since it may be assumed that the belonging to a settlement can be determined from the location of the object on the map. Therefore, use this field to filter objects in the attribute table with caution. * In this example we want to find all hospitals in the city of Newry. To do this, in the menu bar of the attribute table, click “Select / filter features using form”. ![image](docs_data/source/_static/hospital_open_filter_en.png) * In the changed window in the “Building” field enter “hospital”, in the “ADDR_CITY” field - “Newry”. On the right, opposite to the fields, select “Equal to (=)” in the drop-down list, then click “Select features”. ![image](docs_data/source/_static/hospital_filter_en.png) * Objects that meet the filter criteria will be selected both in the attribute table and on the map. For comfortable viewing , click on the “Switch to table view” button and select “Move selection to top”. ![image](docs_data/source/_static/hospital_filter_selected_en.png) # howtos.html.md # How to… * [How to add NextGIS Web elements to Favorites](https://docs.nextgis.com/docs_ngweb/source/favorites.html) * [How to change Fonts](https://docs.nextgis.com/docs_ngweb/source/look.html#ngw-fonts) * [How to manage Spacial Reference Systems](https://docs.nextgis.com/docs_ngweb/source/ngw_srs.html) * [How to hide the ability to export data](https://docs.nextgis.com/docs_ngweb/source/look.html#ngw-res-export) * [How to set up Address Search](https://docs.nextgis.com/docs_ngweb/source/webmap_set.html#ngw-contr-panel-webmap-search) * [How to enable CORS for your Web GIS](https://docs.nextgis.com/docs_ngweb/source/cors.html) * [How to change the look of your Web GIS](https://docs.nextgis.com/docs_ngweb/source/look.html) * [How to change the homepage address](https://docs.nextgis.com/docs_ngweb/source/look.html#ngw-homepage) * [How to restore your Web GIS from backup](https://docs.nextgis.com/docs_ngweb/source/infowebgis.html#backup-policy) * [How to manage data storage](https://docs.nextgis.com/docs_ngweb/source/create_resource.html#ngw-resource-group) * [How to use any layer in your Web GIS as a basemap](https://docs.nextgis.com/docs_ngweb/source/webmaps_admin.html#how-to-use-any-layer-in-your-web-gis-as-a-basemap) * [How to set up legend visibility](https://docs.nextgis.com/docs_ngweb/source/webmaps_admin.html#ngw-legend) * [How to copy a Web Map](https://docs.nextgis.com/docs_ngweb/source/webmap_clone.html) * [How to enable caching](https://docs.nextgis.com/docs_ngweb/source/mapstyles.html#ngw-create-tile-cache) * [How to enable Web Map annotations](https://docs.nextgis.com/docs_ngweb/source/annotation.html) * [How to move resources within Web GIS](https://docs.nextgis.com/docs_ngweb/source/edit_resource.html#ngw-move-resource) * [How to delete data](https://docs.nextgis.com/docs_ngweb/source/edit_resource.html#ngw-delete-resource) * [How to add descriptions and metadata for resources](https://docs.nextgis.com/docs_ngweb/source/edit_resource.html#ngw-update-info-metada) * [How to edit data](https://docs.nextgis.com/docs_ngweb/source/feature_edit.html) * [How to add photos, panoramas and manage attachments](https://docs.nextgis.com/docs_ngweb/source/feature_edit.html#ngw-add-photos) * [How to export data on a Web Map](https://docs.nextgis.com/docs_ngweb/source/admin_interface.html#ngw-vector-export) * [How to optimize Web Map performance](https://docs.nextgis.com/docs_ngweb/source/webmaps_admin.html#ngw-webmap-optimize) * [How to print a Web Map](https://docs.nextgis.com/docs_ngweb/source/print.html) * [How to change Web GIS domain](https://docs.nextgis.com/docs_ngweb/source/domain.html) * [How to enable Google Analytics](https://docs.nextgis.com/docs_ngweb/source/analytics.html) * [How to enable the monitoring of moving objects (tracking)](https://docs.nextgis.com/docs_ngcom/source/tracking.html) * [How to begin data collection in your Web GIS](https://docs.nextgis.com/docs_ngcom/source/collector.html) # i18n.html.md # Internationalization and localization Internationalization and localization of NextGIS Web is built on top of [gettext](http://www.gnu.org/software/gettext) and [babel](http://babel.pocoo.org/) libraries. The workflow for working with messages is standard for projects based on gettext: 1. Extract messages to translate from sources to `.pot` file (`extract`) 2. Create or update `.po` files from `.pot` files (`update`) 3. Compile `.po` files into `.mo` files (`compile`) Each NextGIS Web component becomes an independent domain in terms of the gettext library. As a result, there is no way to internationalize messages that do not belong to any component. To be able to extract messages for translation, they must be marked up appropriately. Below is described how to do this, as well as how to ensure the display of already translated messages. All operations on messages are performed using the `nextgisweb-i18n` command line utility. To update translation in `nextgisweb_foo` you can do the following: ```bash $ nextgisweb-i18n update --locale ru nextgisweb_foo $ nano package/nextgisweb_foo/nextgisweb_foo/locale/ru.po $ nextgisweb-i18n compile nextgisweb_foo ``` The following standard gettext-like functions are supported for backend and frontend: - `gettext(message)` - `ngettext(singular, plural, n)` - `pgettext(context, message)` - `npgettext(context, singular, plural, n)` In addition, each of these functions has a formatter variant with the `f` suffix: `gettextf`, `ngettextf`, `pgettextf` and `npgettextf`. They return callables that perform string interpolation using Python string format placeholders. For example: ```python >>> print(gettextf("Hello, {}!")("Arthur")) Hello, Arthur! ``` Template strings may contain one of the following: - One anonymous placeholder: `Hello, {}!` - Named placeholders: `Hello, {first} {last}!` - Index-based placeholders: `Hello, {0} {1}!` ## Server side ### Python Since Python code is executed on a server, the same application instance must be able to serve users with different locales, it is necessary to use a two-step work with messages: first, a message is marked as requiring translation, then before displaying it to the user, it’s translated according to the user’s preferences. ```python from nextgisweb.env import gettext @view_config(renderer='json') def view(request): tr = request.localizer.translate return tr(gettext("Some message for translation")) ``` #### NOTE Formatting with `gettext("Hello, {}!").format("Arthur")` and `gettext("Hello, %s!") % "Arthur"` works but deprecated. #### NOTE Python formatting modifiers are not supported. To format numbers, convert arguments to a string first. Some formatting examples: ```python from nextgisweb.env import gettextf def user_info_message(tr, user): return tr(gettextf("Your login is {kn} and full name is {dn}.")( kn=user.keyname, dn=user.display_name )) def percent_left_message(tr, percent): return tr(gettextf("{} left.")("{:.2f}%".format(percent))) ``` ### Mako Some of the strings that require translation are also contained in Mako templates. In fact, the work of mako templates is not much different from Python. You don’t need import anything as it’s imported behind the scene. Consider the following example: ```mako
${tr(gettext("Another message for translation"))}
``` #### NOTE Unfortunately, it isn’t possible use this function as a modifier `${expression | tr}`. In this case, the result of the standard modifier `n`, that is `markupsafe.Markup` gets into the function. In order to track that all strings requiring translation were translated when outputting in the template in debug mode (setting `debug` of the component `core`) a special modifier is added to the standard modifier `n`, which checks whether the translation was performed using `request.localizer` and if not, then the corresponding warning is displayed in the log. ## Client side When executing client-side code, user preferences are already known and there is no need for two-step processing. Translation and marking strings for translation are combined into one function. ### JavaScript and TypeScript Simple messages with `gettext`: ```javascript import { gettext } from "@nextgisweb/pyramid/i18n"; const msgTranslated = gettext("Some message for translation"); console.log("Localized message: " + msgTranslated); ``` Some formatting examples: ```javascript import { gettextf } from "@nextgisweb/pyramid/i18n"; const msgHelloFmt = gettextf("Hello, dear {}!"); const msgFromToFmt = gettext("A message from {from} to {to}.") function sayHello(name) { const msgTranslated = msgHelloFmt(name); console.log("Localized message: " + msgTranslated); }; function noteTitle(sender, receiver) { return msgFromToFmt({from: sender, to: receiver}); }; ``` Formatted messages with plural can be translated with `ngettextf`: ```javascript import { ngettextf } from "@nextgisweb/pyramid/i18n"; function countSheepAndWolves(sheep, wolves) { const msgSheep = ngettextf("{} sheep.", "{} sheep", sheep)(sheep); const msgWolves = ngettextf("{} wolf", "{} wolves", wolves)(wolves); console.log(msgSheep); console.log(msgWolves); } ``` You can translate React elements with `Translated`: ```javascript import { gettextf } from "@nextgisweb/pyramid/i18n"; import { Translated } from "@nextgisweb/pyramid/i18n/translated"; import { OpenInNewIcon } from "@nextgisweb/gui/icon"; const msgCommandTipFmt = gettextf("For {command} click {icon} icon."); function CommandTip({ command }) { return ( }} /> ); } ``` # identifyplus.html.md # IdentifyPlus Plugin interacts with layers imported from Web GIS. IdentifyPlus allows viewing objects’ attributes, including attached files, e.g. photos. After plugin installation it will appear in menu Plugins > IdentifyPlus. Plugin’s icon will also appear in the panel. ![image](docs_ngqgis/source/_static/identifyplus1.png) As a first step you should import target layer from Web GIS via NextGIS Connect plugin. Then, after activation of IdentifyPlus by clicking on the icon, it is possible to select any object from the imported layer. Pop-up window with two tabs, “Base options” and “Photos (ngw)”, emerges. In the first tab you can edit attributes. In the tab “Photos (ngw)” you can: 1) Download all attached images; 2) Select particular images for download; 3) Upload new images; 4) Select particular images for deletion. ![image](docs_ngqgis/source/_static/identifyplus2.png) Since plugin is synchronized with Web GIS automatically, all changes appear in cloud immediately. See how the plugin works in our video: Watch on [youtube](https://youtu.be/iLzpa0jv_9Q?si=kpAMedq0cID3Y1Sq). # image_classification.html.md # Image classification Performs automatic classification of an image (e.g. satellite image) based on a vector layer with training polygons. Random Forest algorithm is used. You’ll need to input two files: * Image in GDAL-compatible format (preferably GeoTIFF). It can contain any number of bands, all of which will be used for classification. * Polygon vector layer with training objects. Any OGR-compatible vector format (preferably GeoPackage) is supported. Each polygon should have a field with object class number in its attributes. Set up the parameters: * Name of the attribute that describes the class number for each object in the training polygons layer. The attribute must be an integer. * The number of trees in the decision forest. Leave blank to use the default value (100). * Maximum tree depth. Leave blank to not limit the tree depth. Output: * Classified raster. * Classification report. It records the overall quality of the classification, the number of misclassified pixels in each class (and indicates the classes to which they were put instead). Watch the video on [youtube](https://youtu.be/S7APVbtR-5s). Launch instrument: [https://toolbox.nextgis.com/t/image_classification](https://toolbox.nextgis.com/t/image_classification) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # image_clustering.html.md # Image clustering Performs automatic clustering of an image (e.g. satellite image) into a specified number of classes. K-Means algorithm is used Input: * Image in GDAL-compatible format (preferably GeoTIFF). It can contain any number of bands, all of which will be used for cluster calculation. Parameters that can be set up: * Number of clusters into which the original image will be divided. * Method of K-Means initialization. Select ‘k-means++’ or ‘random’. ‘k-means++’ selects initial cluster centroids so as to make them furhter apart. This technique speeds up convergence. * Maximum number of iterations of the k-means algorithm for a single run. Leave empty to use default value (300). The necessary number of iterations depends on many factors including centroid characteristics and number of clusters. Usually between several dozens and several hundreds iterations are enough. * K-means algorithm to use. Select ‘lloyd’ or ‘elkan’. Lloyd’s algorithm is the classical EM-style algorithm. The “elkan” variation can be more efficient on some datasets with well-defined clusters, by using the triangle inequality. However it’s more memory intensive. Output: * Clustered image. Watch the video on [youtube](https://youtu.be/Ib9bwQPGLro). Launch the tool: [https://toolbox.nextgis.com/t/image_clustering](https://toolbox.nextgis.com/t/image_clustering) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # imagesearch.html.md # Copernicus Sentinel image search The tool generates a list of Sentinel scenes in the Copernicus archive that match the specified parameters. Inputs: * **Image search area** `Required field` - GeoJSON file with one polygon covering the area of interest; * **Start date**, pick in the calender or enter in yyyy-mm-dd format - scenes produced before that date won’t be included; * **End date**, pick in the calender or enter in yyyy-mm-dd format - scenes produced after that date won’t be included; * **Service username** `Required field` - your username on [https://scihub.copernicus.eu](https://scihub.copernicus.eu) website; * **Service password** `Required field` - your password for [https://scihub.copernicus.eu](https://scihub.copernicus.eu) website; * **Mission** `Required field` - Enter one of the mission names: `Sentinel-1`, `Sentinel-2`, `Sentinel-3`; * **Product type** - depends on the chosen mission: * For Sentinel-1 choose from: `RAW`, `SLC`, `GRD`, `OCN`; * For Sentinel-2: `RAW`, `S2MSI1C`, `S2MSI2A`, `S2MSI2Ap`; * For Sentinel-3: `RAW`, `OL_1_EFR___`, `OL_1_ERR___`, `SR_1_SRA___`, `SR_1_SRA_A_`, `SR_1_SRA_BS`, `SR_2_LAN___`, `SL_1_RBT___`, `SL_2_LST___`, `SY_2_SYN___`, `SY_2_V10___`, `SY_2_VG1___`, `SY_2_VGP___`, `OL_2_LFR___`, `OL_2_LRR___`; * **Polarisation mode** - Only for Sentinel-1, enter one of the following: `HH, VV, HV, VH, HH+HV, VV+VH`. For Sentinel-2 or Sentinel-3 leave this field empty; * **Sensor mode** - Only for Sentinel-1, enter one of the following: `SM, IW, EW, WV`. For Sentinel-2 or Sentinel-3 leave this field empty; * **Cloud cover** - Only for Sentinel-2. Specify acceptable range of cloud cover with two numbers (min and max percentage), separated by comma. E.g. `0, 20`. Outputs: * XLSX file containing a list of scene IDs. Launch the tool: [https://toolbox.nextgis.com/t/imagesearch](https://toolbox.nextgis.com/t/imagesearch) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # import_dwg.html.md # DWG to DXF Converts DWG file into DXF that can be opened in QGIS. Input: * DWG file; * Output format. Choose output encodings (Default is UTF-8): - UTF-8 (utf-8) - UTF-16 (utf-16) - Windows-1251 / CP1251 (windows-1251) - Windows-1252 / CP1252 (windows-1252) - ISO-8859-1 / Latin-1 (iso-8859-1) Output: * DXF file. Launch the tool: [https://toolbox.nextgis.com/t/import_dwg](https://toolbox.nextgis.com/t/import_dwg) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # import_dwg_libdxfrw.html.md # DWG to DXF (libdxfrw) Converts DWG file into DXF using [libdxfrw](https://github.com/codelibs/libdxfrw). Inputs: * Source file in AutoCAD DWG format * Output format. Choose output encodings (Default is UTF-8): - UTF-8 (utf-8) - UTF-16 (utf-16) - Windows-1251 / CP1251 (windows-1251) - Windows-1252 / CP1252 (windows-1252) - ISO-8859-1 / Latin-1 (iso-8859-1) Outputs: * DXF file. Launch the tool: [https://toolbox.nextgis.com/t/import_dwg_libdxfrw](https://toolbox.nextgis.com/t/import_dwg_libdxfrw) Example: **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # import_egrn.html.md # EGRN data import Convert official cadaster documents from EGRN into geodata package. Supports batch mode. Supported formats: KPT (cadastral register): extract_cadastral_plan_territory_v01 and KPT_v10, KVZU (cadastral excerpt): KVZU_v07, construction: KVOKS_v03. Inputs: * Source file - XML file or ZIP archive, containing a batch of XML. Subarchives are supported. * Source CRS (optional) - proj4, WKT or EPSG code string. * Data format - output data format, GPKG, GeoJSON, ESRI Shapefile or MapInfo TAB. If left blank, GPKG will be used. * Identifier - Prefix for output files. * Target crs (optional) - proj4, WKT or EPSG code string. * Merge datasets - Merge layers of same type derived from different XML files (initial result of conversion will also be preserved). We do not recommend this option for MapInfo TAB format. * Merge not recognized CRS - if ticked, merges all layers of the same geometry type with unrecognized CRS into one. * Ignore objects without geometry - Skip entries in the XML documents that don’t have geometry (coordinates). * Remove empty attributes - Attributes that have no data even for a one object will be removed. * Convert additional data - Sometimes XML docs have a special section ReestrExtract, containing additional information, e.g. ownership. If the option is enabled, such data will be added to separate layers without geometry. Outputs: * ZIP archive, containing converted files. Launch the tool: [https://toolbox.nextgis.com/t/import_egrn](https://toolbox.nextgis.com/t/import_egrn) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # import_glr.html.md # GLR data converter Convert National Forest Registy XML file to geodata. Input: * single XML file or ZIP archive containing XML files; * Create points layer - optional, creates a point layer in addition to polygon layer. Output: * GPKG file If the SRS of the input data is other than EPSG:4326, you’ll need to select it manually in QGIS. After that the layer can be display in the project. Launch the tool: [https://toolbox.nextgis.com/t/import_glr](https://toolbox.nextgis.com/t/import_glr) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # improvedem.html.md # Improve DEM Improves Digital Elevation Model, makes the resulting contour lines smoother and simpler. Input, all fields are required: * **Raster file** - DEM file in TIFF format downloaded from NextGIS Data; * **Interpolation method** used to enhance the DEM file. Available methods: - Nearest neighbor (nearest) - Bilinear (bilinear) - Cubic (cubic) - Cubic spline (cubicspline) - Lanczos (lanczos) - Linear (average) - RMS (rms) - Mode (mode); * **Interval between contours** - Vertical step of the contour lines in meters; * **Simplification step** for the contour lines. Integer (for example, 2), decimal separated by a dot (for example, 0.02) or exponential notation (for example, 2e-2) * **Refinement, %** - Improvement of the DEM file resolution, in percents. Shows how much the pixel size should increase/decrease. For example, a value of 1000 % will result in 10 times smaller pixels Output: * TIFF file of the refined DEM; * GeoPackage file of the contour lines. ![image](docs_toolbox/source/_static/improvedem_input.png)![image](docs_toolbox/source/_static/improvedem_result.png) Launch the tool: [https://toolbox.nextgis.com/t/improvedem](https://toolbox.nextgis.com/t/improvedem) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # inaturalist_download.html.md # iNaturalist species observations to geodata Launch the tool: [https://toolbox.nextgis.com/t/inaturalist_download](https://toolbox.nextgis.com/t/inaturalist_download) Downloads species observations from the public iNaturalist API for a given bounding box, optionally filtered by taxon (scientific name), iconic group, quality grade, wildness and observation date. Hard limit: 10 000 records per run. Inputs: * Bounding box - draw your area of interest on the map or enter coordinates in decimal degrees (West, South, East, North in WGS84). * Taxon name - ccientific or common taxon name (e.g. `Bubo bubo` or `Eagle-owl`). Leave empty to download all species in the area. * Iconic taxon group. Select one iconic taxon group (Birds, Plants, Insects, Fungi, Mammals, etc). Combines with ‘Taxon name’ if both are set. Options: - Animalia - Actinopterygii - Amphibia - Arachnida - Aves - Chromista - Fungi - Insecta - Mammalia - Mollusca - Plantae - Protozoa - Reptilia * Observation quality. iNaturalist quality grade filter. Options: - Research Grade (research) - Needs ID (needs_id) - Casual (casual) * Only wild. Exclude captive / cultivated observations. Default: all observation types. * Observation date from. Lower bound of observation date. Format: YYYY-MM-DD. * Observation date to. Upper bound of observation date. Format: YYYY-MM-DD. Outputs: * GeoPackage with one point layer ‘observations’; * Report; * JSON. Example: ![image](docs_toolbox/source/_static/inaturalist_download_result_en.png) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. #### SEE ALSO * [GBIF species observations to geodata](https://toolbox.nextgis.com/t/gbif_download?from-related-tools=1) * [Download Sentinel-2 and Landsat-C2L2 satellite data](https://toolbox.nextgis.com/t/download_and_prepare_l8_s2?from-related-tools=1) * [KML to geodata](https://toolbox.nextgis.com/t/kml2geodata?from-related-tools=1) # infowebgis.html.md # Web GIS information ## System information Through the control panel, the administrator can view information about the system and the current version of the platform (see [Fig. 683.](#admin-system-info-rus-eng)). Using the icon in the upper right corner, you can copy all this data to the clipboard. ![image](docs_ngweb/source/_static/admin_system_info_eng_2.png)![image](docs_ngweb/source/_static/admin_system_info1_rus_eng.png) For NextGIS Web on-premise you can also see if there are [updates available](https://docs.nextgis.com//docs_ngweb/source/infowebgis.html#onpremise-updates). ## Plan and features #### NOTE This functionality is only available for cloud-based Web GIS. To access the section, select it in the ![button_main_menu](docs_ngweb/source/_static/button_main_menu.png) Main menu On this page you can check the current subscription plan of the Web GIS owner and go to your [account](https://docs.nextgis.com/docs_ngcom/source/subscription.html) to upgrade it. Below that is a list of platform features and limits available on the [current subscription plan](https://nextgis.com/pricing-base/). * Number of layers that can be created on the current plan (15 on Free, you can increase this number by [switching to Premium](https://my.nextgis.com/subscription/) ); * Storage limit - used and overall available storage in GiB; * User limit - number of users added to the Web GIS and max number available (the limit [can be increased](https://nextgis.com/pricing-base/#users)); * Use on other websites (CORS) - yes/no; * GPS trackers - number of added trackers and max number available; * Access management - is this functionality available: yes/no; * Custom SRS - can you add more SRS to the Web GIS: yes/no; * Custom domain and branding - is [customizing the look](https://docs.nextgis.com/docs_ngweb/source/look.html#ngweb-css-logo) of the Web GIS available: yes/no; * Tile caching - is this functionality available: yes/no; * Improved performance - is this functionality available: yes/no; * Maximum file upload - max file size in MiB; * Maximum raster layer size in MiB; * Technical support - is this functionality available: yes/no; * [On-demand backup restore](https://docs.nextgis.com/docs_ngweb/source/infowebgis.html#backup-policy) - is this functionality available: yes/no. If the subscription is cancelled, then after it expires the Web GIS may be blocked. On this page you can check if your Web GIS fits the limits of the Free plan and make changes to prevent it from being blocked. ## Storage #### NOTE This functionality is only available for cloud Web GIS The “Storage” section contains information about the volume of data loaded into Web GIS depending on their type. The space usage estimate is located below the main table. The administrator can forcibly recalculate the amount of storage (for example - immediately after loading big data, if the system has not yet recalculated the occupied space on its own). ![image](docs_ngweb/source/_static/admin_storage_panel_settings_eng.png) ## Available updates #### NOTE This functionality is available only for [on-premise](https://nextgis.com/pricing/) Web GIS. For NextGIS Web on-premise on the System information page you can check for available updates. If an update is available, you’ll see a message at the top of the page. Click on “Show details” to view the list of changes. ![image](docs_ngweb/source/_static/ngwop_update_details_en.png) If an update is available, you’ll also get a notification a short while after opening your Web GIS. A green dot on the main menu icon indicates that there’s a notification. ![image](docs_ngweb/source/_static/ngwop_update_marker_en.png) After opening the menu you’ll see the mesage: “Updates are available”. Click on it to go to the System information page and check the details. ![image](docs_ngweb/source/_static/ngwop_update_message_en.png) To install the update, contact the system administrator. ## Backup policy Data backups are performed for every Web GIS (any plan). The frequency depends on total data volume and Web GIS use activity (once or several times per month). #### NOTE Restoring data from backups is available for [Premium](https://nextgis.com/pricing-base/) users only. For other plans Web GIS backups are made to mitigate possible infrastructure risks not related to user actions. If you are on Premium and need a restore - send us a request to [support@nextgis.com](mailto:support@nextgis.com). We’ll let you know which dates are available. Additionally, you can see the last backup date under System information section of your Web GIS’ Control panel (subsection Platform - Last backup). ## Backups In this section you can see a list of available NextGIS Web backups, as well as download any of them. The process of creating backups and restoring for developers is described in [this section](https://docs.nextgis.com/docs_ngweb_dev/doc/admin/backup_restore.html). #### NOTE This functionality is available only for [on-premise](https://nextgis.com/pricing/) Web GIS. ## User activity log #### NOTE This functionality is available only for [on-premise Web GIS Extended Edition](https://nextgis.com/pricing/?utm_source=nextgis&utm_medium=products&utm_campaign=nextgis-web&utm_content=en#ngwextended). User requests to the Web GIS are logged in a journal. It can be found in the **Info** section of the Control panel of the Web GIS ([Fig. 689.](#control-panel-audit-pic)). ![image](docs_ngweb/source/_static/control_panel_audit_en.png) The log is presented in a form of a table that has a set of filters above it ([Fig. 690.](#user-activity-log-pic)). Every user action is registered in the journal. The entry contains the following details: * Timestamp * Request (includes [response status codes](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status) and [request method](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods) ) * IP address * User * Route name * Context (type and ID of the resource) ![image](docs_ngweb/source/_static/user_activity_log_en.png) You can filter the journal entries by time period and user performing the action ([Fig. 691.](#audit-filter-pic)). The table, filtered or otherwise, can be exported as a CSV file. ![image](docs_ngweb/source/_static/audit_filter_en.png) To view the complete text of the request click on the corresponding entry ([Fig. 692.](#audit-log-entry-pic)). ![image](docs_ngweb/source/_static/audit_log_entry_en.png) # install.html.md # Installation NextGIS Collector mobile application can be installed from the [Google Play Store](https://play.google.com/store/apps/details?id=com.nextgis.collector&hl=en). > ![image](docs_collector/source/_static/ngc-user-01.png) Run app after installation, skip information and grant permissions to NextGIS Collector: > ![image](docs_collector/source/_static/ngc-user-02.png)![image](docs_collector/source/_static/ngc-user-03.png)![image](docs_collector/source/_static/ngc-user-04.png)![image](docs_collector/source/_static/ngc-user-05.png)![image](docs_collector/source/_static/ngc-user-06.png) ## Hardware and software requirements To launch NextGIS Mobile you need a device (smartphone, tablet, etc.) with Android **8.0** or higher. To be able to use all NextGIS Mobile features the device should have the following hardware: * [GPS](../../glossary.md#term-GPS) and/or [GLONASS](../../glossary.md#term-GLONASS) sensor; * digital compass; * cellular module; * rear camera. If any of these items are missing from the device, the related functions will not be available. NextGIS Mobile does not impose specific system requirements regarding memory. However, the amount of system memory and storage space can limit the size of uploaded geodata. # install.html.md # Installation NextGIS Mobile can be installed: * using an APK file [nextgismobile.apk](http://nextgis.com/nextgis-mobile/); * from [Google Play](https://play.google.com/store/apps/details?id=com.nextgis.mobile). To install “NextGIS Mobile” from the APK file first allow installation of apps from unknown sources (“Settings” -> “Privacy” -> “Unknown sources”). After installation you can deactivate this option. To install application from Google Play launch Google Play app, enter “NextGIS Mobile” in the search bar and install the application. To launch NextGIS Mobile use a shortcut created automatically during its setup (see [Fig. 940.](#ngmobile-launch-shortcut-pic)). ![image](docs_ngmobile/source/_static/nextgismobile1.png) # install.html.md # Installation The NextGIS Tracker mobile app can be installed from the Google Play app store. Enter the app name in the search bar, select it and tap “Install”. # install.html.md # Installation NextGIS Web is modular software and this instruction covers only installation of the core package called `nextgisweb`. Other packages, such as `nextgisweb_qgis` and `nextgisweb_mapserver` can require additional steps to install. ## System requirements - Modern Linux distribution like Ubuntu Linux 24.04: - We expect that NextGIS Web can be installed on most modern Linux distributions. But we run it under LTS-version of Ubuntu Linux, and this instruction was tested on Ubuntu Linux 24.04. - We don’t provide community support for running NextGIS Web on other distributions. So if you any installation-related issue, please try to reproduce a problem on Ubuntu Linux 24.04 before you report them. - Python >= 3.12. - GDAL >= 3.8. - Node.js 22.x or higher and pnpm package manager via Corepack. We recommend using NodeSource package repository. - PostgreSQL database with PostGIS extension enabled: - The minimum required versions are PostgreSQL 12 and PostGIS 3.0. - PostgreSQL user must be owner of database and PostGIS system tables `spatial_ref_sys`, `geography_columns`, `geometry_columns`, `raster_columns` and `raster_overviews`. - PostgreSQL database shouldn’t be used by other software or for other purposes. NextGIS Web modifies `spatial_ref_sys` table and attaches some triggers on it. - PostgreSQL and PostGIS installation is out-of-scope for this instruction. But for testing purpose you can use snippet bellow to install PostgreSQL and PostGIS on Ubuntu Linux 24.04 as `root` user: ```none # apt install postgresql postgresql-contrib postgis # su postgres -c psql postgres=# CREATE ROLE nextgisweb LOGIN PASSWORD 'changeme'; postgres=# CREATE DATABASE nextgisweb OWNER nextgisweb postgres-# ENCODING 'UTF-8' LC_COLLATE 'C.UTF-8' LC_CTYPE 'C.UTF-8'; postgres=# \connect nextgisweb nextgisweb=# CREATE EXTENSION postgis; nextgisweb=# ALTER TABLE spatial_ref_sys OWNER TO nextgisweb; nextgisweb=# ALTER TABLE geography_columns OWNER TO nextgisweb; nextgisweb=# ALTER TABLE geometry_columns OWNER TO nextgisweb; nextgisweb=# \quit ``` Now you can connect `nextgisweb` database on `localhost` with `nextgisweb` username and `changeme` password. - Hardware requirements very depend on amount of data and usage, but we recommend start from 4 vCPU, 8GB RAM and 250GB HDD (but SSD is much better). ## Installation process First you need to install required packages: ```none # apt install curl git # curl --silent https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | apt-key add - # add-apt-repository --yes --no-update "deb https://deb.nodesource.com/node_22.x nodistro main" # apt update # apt install python3 python3-dev python3-virtualenv # apt install build-essential libssl-dev libgdal-dev libgeos-dev \ gdal-bin libxml2-dev libxslt1-dev zlib1g-dev libjpeg-turbo8-dev \ postgresql-client libmagic-dev nodejs # corepack enable pnpm ``` It’s recommended to use separate user (`ngw` for example) for NextGIS Web installation. So let’s create it: ```none # useradd --create-home --home-dir /srv/ngw --shell /bin/bash ngw ``` Now you can login with this user and go to home (`/srv/ngw`) directory: ```none # su ngw $ cd ``` All commands given bellow with `$` command prompt should be executed under `ngw` user. Now create a virtualenv directory and activate virtualenv: ```none $ virtualenv -p /usr/bin/python3 env $ . env/bin/activate ``` Create a `package` directory and clone NextGIS Web repository here: ```none $ mkdir package $ cd package $ git clone https://github.com/nextgis/nextgisweb.git ``` Keep in mind that `master` default branch is development and unstable. So if you are going to install NextGIS Web in production environment you should use the latest tagged version: ```none $ cd nextgisweb $ git checkout $(git tag -l '*.*.*' | tail -1) $ git describe --tags 4.3.2 $ cd .. ``` Now install `nextgisweb` python package into virtualenv in editable mode and compile i18n translations: ```none $ export SETUPTOOLS_ENABLE_FEATURES=legacy-editable $ pip install -e nextgisweb/ $ nextgisweb-i18n -p nextgisweb compile ``` Additional NextGIS Web packages such as `nextgisweb_qgis` or `nextgisweb_mapserver` should be installed into virtualenv here. But they can have additional system requirements. Now go to the home directory and create directory structure: ```none $ cd $ mkdir config data ``` Create `config/config.ini` with following contents: ```ini [core] # Database connection settings database.host = [database host] database.name = [database name] database.user = [database user] database.password = [database password] # File system storage settings sdir = /srv/ngw/data # To use Russian translation by default uncomment following line # locale.default = ru ``` Then set up `NEXTGISWEB_CONFIG` environment variable which points to NextGIS Web configuration file (instructions about persistent setting are given at the end of this section): ```none $ export NEXTGISWEB_CONFIG=/srv/ngw/config/config.ini ``` After that, set up Node.js and pnpm project environment with workspaces, and build necessary files: ```none $ nextgisweb jsrealm install $ mkdir dist $ pnpm run build ``` Now you should initialize database structure with the following command: ```none $ nextgisweb initialize_db ``` After that, you can run builtin HTTP server: ```none $ nextgisweb server ``` Check that your web browser can open `http://localhost:8080`, and then log in using the default username `administrator` with password `admin`. Then press `Ctrl + C` to halt HTTP server. NextGIS Web is installed and should work properly, but builtin HTTP server is not suitable for production purposes. You may also check `nextgisweb maintenance` command, which is required to run periodically. This command cleans up unused data, such as old file uploads. ```none $ nextgisweb maintenance ``` To simplify subsequent steps add virtualenv initialization to `.bashrc` file for `ngw` user: ```none $ echo ". ~/env/bin/activate" >> ~/.bashrc $ echo "export NEXTGISWEB_CONFIG=~/config/config.ini" >> ~/.bashrc ``` ## uWSGI You can use NextGIS Web with any other WSGI-server like `gunicorn` but we use uWSGI in most of deployments. So install to the virtualenv: ```none $ pip install uwsgi ``` Then create `config/uwsgi.ini` with following contents: ```ini [uwsgi] http = 0.0.0.0:8080 master = true processes = 4 lazy-apps = true enable-threads = true paste = config:%p env = NEXTGISWEB_CONFIG=%d/config.ini [app:main] use = egg:nextgisweb ``` And run uWSGI web server: ```none $ uwsgi --ini config/uwsgi.ini ``` Now you should be able to connect `http://localhost:8080/` with your web browser. Then press `Ctrl + C` to halt HTTP server. Complete setup of uWSGI for real world production usage is subject for a separate article, so read uWSGI documentation. ## Systemd To start NextGIS Web with your system you can use systemd-service. Under `root` create service file `/etc/systemd/system/ngw.service` with the following contents: ```ini [Unit] Requires=network.target After=network.target [Service] WorkingDirectory=/srv/ngw ExecStart=/srv/ngw/env/bin/uwsgi --ini config/uwsgi.ini User=ngw Group=ngw Restart=on-failure KillSignal=SIGQUIT Type=notify NotifyAccess=all [Install] WantedBy=multi-user.target ``` Also, you may want to periodic execution of `nextgisweb maintenance`. To achieve this, create service (`/etc/systemd/system/ngw-maintenance.service`) and timer (`/etc/systemd/system/ngw-maintenance.timer`) files: ```ini [Unit] Description=NextGIS Web maintenance task Wants=ngw-maintenance.timer [Service] Type=simple WorkingDirectory=/srv/ngw Environment="NEXTGISWEB_CONFIG=/srv/ngw/config/config.ini" ExecStart=/srv/ngw/env/bin/nextgisweb maintenance User=ngw Group=ngw [Install] WantedBy=multi-user.target ``` ```ini [Unit] Description=NextGIS Web maintenance timer Requires=ngw-maintenance.service [Timer] OnCalendar=Mon *-*-* 00:30:00 Unit=ngw-maintenance.service [Install] WantedBy=multi-user.target ``` Then reload systemd configuration, enable and start service and timer: ```none # systemctl daemon-reload # systemctl enable ngw.service ngw-maintenance.timer # systemctl start ngw.service ngw-maintenance.timer ``` Now NextGIS Web will start with your system. # install_plugin.html.md # Install plugins You should be connected to the Internet. To install or update plugin select Plugins ‣ Manage and Install Plugins. If you want to install plugin, start typing its name into Search field. ![image](docs_ngqgis/source/_static/plugins.png) Select target plugin from the list and press Install Plugin button. Plugins can be installed but not active: if the box next to the plugin from the list is unchecked, this plugin wouldn’t function. To activate plugin you should check the box next to it. If you typed the plugin’s name correctly, but can’t find it in the list, please, perform following steps: 1. Check the Settings tab: repositories should be marked as green. If the mark is red, it means problems with Internet connection or with server. 2. Try to check the box with Show also experimental plugins. 3. The plugin you are searching for can be located in some special repository, find out about it from the person who recommended that plugin. # installngqgis.html.md # Installation **NextGIS QGIS** is installed with the aid of a universal installer. You can download installer for your OS using [this link.](http://nextgis.com/nextgis-qgis/) #### NOTE Installer not requiring Internet connection is only available for users on [Mini and Premium](http://nextgis.com/nextgis-com/plans) subscription plans. ## Installation process The installes is a step-by-step wizard. The first page (see `ngqgis_installPage01`) welcomes you to the installation process. ![image](docs_ngqgis/source/_static/install_wizard_welcome_en.png) On the next page (see `ngqgis_installPage02`) select the target folder for the program. We recommend using the default path suggested by the wizard. ![image](docs_ngqgis/source/_static/install_wizard_path_en.png) On the third page (see `ngqgis_installPage03`) you can unmark the components you don’t need. ![image](docs_ngqgis/source/_static/install_wizard_components_en.png) On the fourth page (see `ngqgis_installPage04`) you need to read the License Agreements and agree to them. ![image](docs_ngqgis/source/_static/install_wizard_license_en.png) On the fifth page (see `ngqgis_installPage05`) select a name for the Start menu folder. ![image](docs_ngqgis/source/_static/install_wizard_start_folder_en.png) The sixth page (see `ngqgis_installPage06`) is the message that the installation process is ready to start. ![image](docs_ngqgis/source/_static/install_wizard_ready_en.png) After you press **Install**, the wizard will start unpacking and installing files. When this task is completed a final page will appear, announcing the successful installation of the programm. ## System requirements ### Minimal PC parameters required * OS Windows 7 or higher, 64 bit * Intel Core i3 at least 2 MHz (2 cores) or an equivalent processor * RAM 4 GB min * motherboard fit for the selected processor with integrated graphics card * HDD 40 GB min * mouse * keyboard * LCD 14” with 1024x768 resolution ### Recommended PC parameters * OS Windows 10 or higher, 64 bit * Intel Core i5 at least 2.8 MHz (4 cores) or an equivalent processor * RAM 16 GB min * motherboard fit for the selected processor * discrete graphics with video memory 4 GB min * HDD or SSD 500 GB min * mouse * keyboard * Uninterruptible power supply 800 VA min * LCD 24”, with resolution 2560x1440 # intersect_layers.html.md # Intersection registry The tool intersects a polygonal layer with another vector layer (any type of geometry) and outputs the result as a set of CSV files. Inputs: * Shapefile with a layer to intersect. ESRI Shapefile (ZIP-archive) with any type of geometries. Objects from this layer are meant to be intersected with the objects from the polygonal layer * Shapefile with a polygonal layer. ESRI Shapefile (ZIP-archive) with a polygonal layer. Intersection status with another layer will be traced for each object from this layer * Field name for CSV files. Field name from the polygonal layer. Values from this field will be used to name CSV files. If this field is blank, CSV file names will be generated automatically. Outputs: * Zipped CSV files, each of which describes one of the objects of the polygonal layer. If an object from a polygon layer has an intersection with an object from another layer, the CSV file will contain the coordinates of the center and the WKT description of the polygon. Launch the tool: [https://toolbox.nextgis.com/t/intersect_layers](https://toolbox.nextgis.com/t/intersect_layers) ![image](docs_toolbox/source/_static/intersect_layers_result.png) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # intro.html.md # Introduction **NextGIS GeoServices on-premise** is a specialized web application deployed on the company’s server. It gives users access to various highly loaded tile services. It allows to create and manage basemaps using data from OpenStreetmap and NextGIS Web in raster or vector formats. The application has its own system for managing, authorization and logging. Menu on left has three main blocks: * Overview * Services * Settings In [Services](https://docs.nextgis.com/docs_geoserv_prem/source/services.html) you can find all services added to the app (basemaps etc) and add new ones. Services can be divided into groups (managed by the Administrator in Settings -> Service groups). [Settings](https://docs.nextgis.com/docs_geoserv_prem/source/settings.html) - here users manage their profile, other users, user groups, map settings and logs. **Overview** shows general information about created services. # intro.html.md # Introduction [NextGIS GeoServices](https://geoservices.nextgis.com/) is a platform where you can create basic spacial data services and use them in external apps. # intro.html.md # Intro Welcome! In this quickstart tutorial we’ll describe main features of your [Web GIS](description.md#ngcom-description) created at [nextgis.com cloud service](https://nextgis.com/) and show you the fastest way to start managing your geodata with it. # intro.html.md # Introduction This guide provides a general description of NextGIS ID (NGID) software that can be deployed on your local server. This software provides user access management with a system of access permissions for third-party organizations. NGID is a part of NextGIS Web [Standard/Extended](https://nextgis.com/pricing/) package and is installed with the NextGIS Web software. # intro.html.md # Introduction ## About NextGIS Mobile **NextGIS Mobile** is a mobile for Android OS. NextGIS Mobile allows to: * create and display a multi-layered map; * perform map navigation (panning, zooming in and out); * add vector data in [GeoJSON](../../glossary.md#term-GeoJSON) format; * add raster data as a tile cache; * add online tile sources ([XYZ](../../glossary.md#term-XYZ) and [TMS](../../glossary.md#term-TMS)); * add raster and vector layers from [nextgis.com](https://my.nextgis.com/signup/?next=/webgis/) and [NextGIS Web](http://nextgis.com/nextgis-web/); * create and modify vector [geodata](../../glossary.md#term-geodata) (geometries and attributes); * browse the attributes of selected geometry through identify dialog; * modify vector layer attributes with customizable input forms; * share vector geodata using standard Android tools; * record the tracks and manage their display parameters, remove selected or all tracks; * display device coordinates, velocity, altitude on the map, as well as a source of geographical coordinates and amount of satellites used for georeferencing (when [GPS](../../glossary.md#term-GPS) is in use); * collect [geodata](../../glossary.md#term-geodata) and transmit it to [nextgis.com](https://my.nextgis.com/signup/?next=/webgis/) or [NextGIS Web](http://nextgis.com/nextgis-web/) in background mode (when internet connection is on). NextGIS Mobile is open source (license [GPL v3](appendix.md#ngmobile-gplv3)). Some icons used in NextGIS Mobile are from: * [Icons8.com](http://icons8.com/android-icons) distributed on [CC BY-ND 3.0](http://creativecommons.org/licenses/by-nd/3.0/); * [romannurik.github.io](http://romannurik.github.io/AndroidAssetStudio/icons-launcher.html) - [CC BY 3.0](http://creativecommons.org/licenses/by/3.0/). This documentation describes NextGIS Mobile 2.5. ## Hardware and software requirements To launch NextGIS Mobile you need a device (smartphone, tablet, etc.) with Android **8.0** or higher. To be able to use all NextGIS Mobile features the device should have the following hardware: * [GPS](../../glossary.md#term-GPS) and/or [GLONASS](../../glossary.md#term-GLONASS) sensor; * digital compass; * cellular module; * rear camera. If any of these items are missing from the device, the related functions will not be available. NextGIS Mobile does not impose specific system requirements regarding memory. However, the amount of system memory and storage space can limit the size of uploaded geodata. # intro.html.md # NextGIS QGIS **NextGIS QGIS** is a fully functional desktop based on QGIS that can create, manage, edit and analyze data, create maps and atlases, perform analytical operations and publish maps on the Internet. The following manual contains detailed information on how to install NextGIS QGIS, use QGIS project to exchange resources with Web GIS or **NextGIS Web**, quickly add basemaps to QGIS projects, create models for maps and atlases, create, edit and analyze collected data (work with vector and raster layers, geometries of those layers and their attributes), use modules allowing the user to add a lot of new functions to the QGIS app. This documentation is distributed under the terms of cc-by-sa 3.0. [http://creativecommons.org/licenses/by-sa/3.0/](http://creativecommons.org/licenses/by-sa/3.0/) The documentation is developped based on QGIS documentation: [http://www.qgis.org/en/docs/index.html](http://www.qgis.org/en/docs/index.html), cc-by-sa 3.0. # intro.html.md # What the app is for **NextGIS Tracker** is a mobile application designed to record tracks and send them to the Web GIS (cloud-based or on-premise). With **NextGIS Tracker** you can: * record tracks; \* send them to the Web GIS (cloud-based or on-premise); * export tracks in GPX format; * configure track recording (min detected changes in distance or time); * configure sending tracks to Web GIS. # intro.html.md # Introduction This document is a user manual for a **NextGIS Web** version 3.0 Web GIS. The manual covers general information about the software installation, configuration and usage, description of administrator interface, and an overview of basic user and administrator tasks. # intro.html.md # Introduction The manual contains a general description of NextGIS Web software and basic user operations for working with 3D data and 3D scenes. Watch on [youtube](https://youtu.be/rAy5HJWTHHs?si=CJD6JjBdJy_eOJvv). #### IMPORTANT This functionality is available only in NextGIS Web on-premise [Extended](https://nextgis.com/pricing/#ngwextended). # intro.html.md # Introduction ## Purpose **NextGIS Toolbox** is a collection of tools. Watch on [youtube](https://youtu.be/MKzXvaPbGJY?si=ShgXA0GqrC3C65Tx). ## Installation and running You don’t need to install anything to run NextGIS Toolbox tool. All tools can be run via browser. ## Authorization To log in to the service use your [NextGIS ID](https://docs.nextgis.com/docs_ngcom/source/create.html). Click **Sign in** in the top right corner and enter the email address you used to sign up, then your password. ![image](docs_toolbox/source/_static/ngid_signup_signin_en.png) If you don’t have a NextGIS ID, click **Sign up** and [create an account](https://docs.nextgis.com/docs_ngcom/source/create.html#how-to-create-account-nextgis-id). # intro.html.md # Overview **NextGIS Toolbox on-premise** is a specialized web application deployed on the company’s server. It gives users access to various tools for on-line data processing. Each tool performs one specific task, e.g. converts vector data format or calculates spectral albedo. Some of the tools are integrated with Web GIS. There are also highly specialized tools created to solve a specific problem on a specific data set. # ios_demos.html.md # SDK demo projects ## Simple map with points In this project created mobile application with one fullscreen map. Map consists of two layers: * OpenStreetMap base map * Vector layer with few points The application screenshot is below. ![image](ngmobile_dev/source/_static/simple_app.png) The demo project [github page](https://github.com/nextgis/ios.mobile.demo). # join_by_field.html.md # Join layer and table by field The tool combines data from a table and a layer using a given field. The tool involves the use of two different join types: one-to-one - finds the first matching element of the table and attaches its attributes; one-to-many - connects all elements of the table for which the given field matches, the geometry of the feature is duplicated for each element. Inputs: * Web GIS URL - address of the Web GIS on NextGIS Web platform in the following format: `https://example.nextgis.com`; * Resource ID - numbers at the end of the source layer URL; * CSV file for join; * Key field in WebGIS layer - the name of the field in the Web GIS layer; * Target field in CSV - field name in the table; * Join type - select one-to-one or one-to-many. Outputs: * layer in ESRI Shapefile format, which is in an archive (zip) Launch the tool: [https://toolbox.nextgis.com/t/join_by_field](https://toolbox.nextgis.com/t/join_by_field) Usage example: **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # joinlines.html.md # Join lines Permanently joins two intersecting or snapped lines. The little “extra” bits are cut off. After installation the plugin will appear in the Vector toolbar. Select the two lines you want to join, then press ![button_join_lines](docs_ngqgis/source/_static/button_join_lines.png). ![image](docs_ngqgis/source/_static/join_lines_input.png)![image](docs_ngqgis/source/_static/join_lines_crossing.png)![image](docs_ngqgis/source/_static/join_lines_processed.png)![image](docs_ngqgis/source/_static/join_lines_result.png) See the plugin at work in our video: Watch on [youtube](https://youtu.be/KJqZnNwJisE?si=i23aoOFz7eiwTxTX). # jsrealm.html.md # Modern JavaScript Previously NextGIS Web client-side was based on Dojo 1.x framework and AMD modules, but now everything is based on up-to-date JavaScript with ES modules and Webpack. The key points: 1. Each NextGIS Web component may own one (or more) corresponding Node package, which belongs to the `@nextgisweb` scope (true for NextGIS Web extension packages like `nextgisweb_qgis`). These packages are located under `nodepkg` subdirectories of corresponding components. 2. These packages are joined into one big pnpm workspace root, and Node packages become pnpm workspaces. It looks like working with monorepository on multiple libraries but in multiple source code repositories. 3. There is a modular Webpack config on top of that. Some Node packages can have their modules, but most of them use the `main` Webpack module. On the NextGIS Web side, the `jsrealm` component manages this enviroment and provides some tools to work with it. ## Setup and directory layout Workspaces feature depends on directory layout. In the examples below, we assume that NextGIS Web is installed into home directory of `ngw` user with the following layout (some files are not shown): ```text 🗁 ~ngw ├── 🗀 env ├── 🗀 data ├── 🗀 config └── 🗁 package ├── 🗀 nextgisweb └── 🗁 nextgisweb_foo ├── 🗁 nextgisweb_foo │ └── 🗀 bar └── 🗎 setup.py ``` ## Working with packages Let’s say we have the following directory structure for component `bar`: ```text 🗁 ~ngw/package/nextgisweb_foo/nextgisweb_foo/bar └── 🗎 __init__.py ``` To add `bar` package you should create `bar/nodepkg` directory and `bar/nodepkg/package.json` file with the following content: ```json { "name": "@nextgisweb/bar", "version": "0.0.0", "type": "module" } ``` NextGIS Web component identifiers use `snake_case`, but `kebab-case` is preferred in the JavaScript ecosystem and we shouldn’t break this convention. So if a component identifier consists of two or more words, it should be converted in Node package name. Thus `file_upload` NextGIS Web component becomes `@nextgisweb/file-upload` in Node package. #### NOTE Version `0.0.0` may seem strange, but any Node package is required to have a version. Versions are managed on NextGIS Web package level and we don’t plan to publish this package on NPM. After that it will look like this: ```text 🗁 ~ngw/package/nextgisweb_foo/nextgisweb_foo/bar ├── 🗁 nodepkg │ └── 🗎 package.json └── 🗎 __init__.py ``` Let’s include this package into pnpm workspace root configuration: ```bash $ cd ~ngw $ nextgisweb jsrealm install ``` And now you can add some external dependency for this package, for example: ```bash $ cd ~ngw $ pnpm --filter "@nextgisweb/bar" add faker ``` Then you can see that dependency was added to `package.json` and now `bar/nodepkg/package.json` looks like this: ```json { "name": "@nextgisweb/bar", "version": "0.0.0", "type": "module", "dependencies": { "faker": "^5.5.3" } } ``` Now let’s add an entrypoint and use the `faker` library from it. Create file `bar/nodepkg/entrypoint.js` with the following content: ```javascript /** @entrypoint */ import faker from "faker"; export function greet() { console.log(`Hello, ${faker.name.findName()}!`); } export function lorem() { console.log(faker.lorem.paragraph()); } ``` The most important thing in the example is the `/** @entrypoint */`, which tells the `main` Webpack module to create a separate library from this file. Now build Webpack bundles and start development webserver: ```bash $ cd ~ngw $ pnpm run build $ nextgisweb server ``` Then go to `http://localhost:8080/` open console in web developer tools and execute the following expression: ```javascript ngwEntry("@nextgisweb/bar/entrypoint").then(function (entrypoint) { entrypoint.greet(); entrypoint.lorem(); }) ``` And you will see something like this: ```text Hello, Stephen Hagenes! Nobis porro officiis natus id ex hic blanditiis commodi tenetur. Sint sed et voluptatibus ratione non quo natus. Odio dolorem ipsum sapiente dolores autem modi. Deleniti eos possimus minima vitae dolore. ``` If you look at network requests, you will see how the browser loads entrypoint and their chunks: ```text GET .../main/@nextgisweb/bar/entrypoint.js [HTTP/1.1 200 OK 2ms] GET .../main/chunk/vendors-...-eb4fd9.js [HTTP/1.1 200 OK 3ms] GET .../main/chunk/vendors-...-faker_index_js.js [HTTP/1.1 200 OK 27ms] ``` ## Webpack modules The `main` Webpack module which collects entrypoints from NextGIS Web component packages provides the following features: 1. Compilation of modules to browser-compatible format using the Babel and CoreJS libraries. 2. Support of CSS imports like `import "./resource.css"`. The `stylesheet` module delivers compiled Less stylesheets and some fonts which are installed from NPM registry. Previously fonts were also included in the source tree. It’s possible to provide additional Webpack modules. They can be declared under `nextgisweb.webpackConfigs` in `package.json`. Here is the example from `@nextgisweb/stylesheet` Node package: ```json { "nextgisweb": { "webpackConfigs": { "stylesheet": "webpack.stylesheet.cjs" } } } ``` ## Writing modules All modules should be written as ES modules. ES versions of libraries should be preferred in dependencies. For example, use `lodash-es` instead of `lodash`: ```javascript // Right way import { set } from "lodash-es"; set(...); // Wrong way import lodash from "lodash"; lodash.set(...); ``` ### Dynamic imports In general dynamic imports work correctly and on-demand chunks are created. Then this code will produce an additional on-demand chunk: ```javascript async function doSomething() { const dynamic = await import("./some-module"); } ``` But it works until demanded module becomes an entrypoint. After that, it starts being a required chunk, not on-demand. This issue can be solved with the auxiliary module `@nextgisweb/jsrealm/entrypoint`, which uses AMD require machinery and also supports expressions in module names: ```javascript import entrypoint from "@nextgisweb/jsrealm/entrypoint"; async function doSomething() { // NOTE: This method doesn't support relative entrypoint names! const dynamic = await entrypoint("@nextgisweb/bar/some-module"); } ``` # kml2geodata.html.md # KML to geodata Convert KML, KMZ to structured geodata (GeoJSON). This tool can work with attachments (photo) and can parse structured tables added to description of the KML feature. Inputs: * Source data - KML or KMZ file; * Field names - Fields of the table from the description section which should be processed. Comma-separated list, no spaces; * Only files in the archive - If checked, the resulting GeoJSON will mention only the files that are present in the archive; * Ignore KML extended data - If checked, lc:attachment will be ignored; * Keep Z coordinate - If checked, Z coordinate will be preserved and PointZ/LinestringZ etc geometries will be created. Outputs: * ZIP-compressed GeoJSON with attachments (if any) in a folder. Launch the tool: [https://toolbox.nextgis.com/t/kml2geodata](https://toolbox.nextgis.com/t/kml2geodata) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # kmldae2footprints.html.md # Projection (Dae, Collada) to Shapefile Get footprints of COLLADA files. Inputs: * ZIP archive with DAE and KMZ files. Outputs: * GeoJSON file. Launch the tool: [https://toolbox.nextgis.com/t/kmldae2footprints](https://toolbox.nextgis.com/t/kmldae2footprints) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # kotlin_api.html.md # API Documentation # kpt2geo.html.md # Convert EGRN KPT to geodata ![image](docs_toolbox/source/_static/kpt2geo.png) The tool converts one or several Rosreestr KPT from XML format into a convenient geodata format with a GIS project. Inputs: * Zip archive with zip archives of Rosreestr downloads (archive of archives with the name format Response-80-105152635.zip) * Output geodata format - GeoJSON, ESRI Shape, MapInfo TAB Outputs: * zip archive with the QGIS project and geodata The archive contains directories: a geodata directory in the original coordinate system, a geodata directory in EPSG: 4326 (wgs) and a project for QGIS with data in EPSG: 4326 with the design. A description of the layers is given at [https://data.nextgis.com/en/cadastre/#region-layers](https://data.nextgis.com/en/cadastre/#region-layers) Launch the tool: [https://toolbox.nextgis.com/t/pkk_kpt](https://toolbox.nextgis.com/t/pkk_kpt) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # kptbatch_validator.html.md # Check batch of KPT This tool analyzes XML files with KPT (cadastre data) in order to reveal duplicates and rejected requests. A report upon analysis will be formed as CSV file. Inputs: * KPT set - ZIP-archive containing several XML files. * Create archive - if the box is checked, besides CSV new archive with sorted files will be created. * Rename - If creation of an archive is chosen, files in the new archive will be renamed. Assigned name will be made of cadastre number and initial name of the file. Outputs: * CSV file with report. * Optional - ZIP-archive containing sorted XML files. Launch the tool: [https://toolbox.nextgis.com/t/kptbatch_validator](https://toolbox.nextgis.com/t/kptbatch_validator) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # label.html.md # Customize UI Elements (White label) #### NOTE This functionality is only available [on-premise](https://nextgis.com/pricing/) White label is a special module that allows you to remove or replace NextGIS logos and names with your company logos and names. The module is purchased and installed separately. The module adds a new section to the Control Panel (see [Fig. 704.](#control-panel-whitelabel)), which allows you to disable or override various interface elements mentioning NextGIS. ![image](docs_ngweb/source/_static/Control_panel_whitelabel.png) ## Company logo on Web Map In Control Panel, you can upload your logo in PNG format (see in [Fig. 705.](#logo-whitelabel-en)) to display in the lower right corner of the map. ![image](docs_ngweb/source/_static/logo_whitelabel_en.png) If the file is not loaded, there is no logo (see in [Fig. 706.](#web-map-logo)). ![image](docs_ngweb/source/_static/web-map_logo.png) ## Company URL You can assigned a new hyperlink for a company website to a just added logo (see [Fig. 707.](#url-logo-en)) ![image](docs_ngweb/source/_static/url-logo_en.png) ## Help page By default, help leads to [http://nextgis.com/help/](http://nextgis.com/help/). You can set a different hyperlink (see in [Fig. 708.](#help-whitelabel-en)) to ‘Help’. ![image](docs_ngweb/source/_static/help_whitelabel_en.png)![image](docs_ngweb/source/_static/help_link_en_2.png) ## Support URL Also you can set URL for the technical support page (see in [Fig. 710.](#tech-support)). This link will appear on error messages: ![image](docs_ngweb/source/_static/tech_support.png) ## Other items * The default Web GIS name is specified without mentioning NextGIS. * In WMS and WFS services resources, **NextGIS QGIS** is replaced with **QGIS** (see [Fig. 711.](#wms-wfs-whitelabel)). ![image](docs_ngweb/source/_static/WMS_WFS_whitelabel.png) * The social networks preview mentioning NextGIS is removed (see [Fig. 712.](#preview-maplinks)). ![image](docs_ngweb/source/_static/Preview_maplinks.png) # label_lang.html.md # How to change the language of labels in OSM data * [Order data](https://data.nextgis.com/en/) for your area of interest in Geopackage (QGIS) format. * Go to the [orders](https://data.nextgis.com/en/orders/actual/) page and download the archive when it’s complete. * **Unpack** the archive. * Download and install [QGIS](https://qgis.org/en/site/forusers/download.html). * Launch QGIS and open the project file data.qgs. * Select the layer where you want to change the label language or enable labels if they are not displayed. * Double click the layer or use context menu to open Layer Properties. Open the **Labels** section. In the “Value” field select from a dropdown menu the correct attribute for the labels. ![image](docs_data/source/_static/label_field_en.png) In the OSM data structure the attributes are: * NAME - name in the local language, i.e. the most common language of the area. For example, Greek for Greece. * NAME_EN - name in English If the local name is in English itself, the other attribute may be empty. # landsat_search.html.md # Search and save Landsat-L2C2 scene previews Search Landsat-L2C2 scenes id list and donwload previews as GeoPackage. Inputs: * WRS2 tile index(es) - single ID or comma-separated list e.g. `131026` or `131026,132026` - max 50 IDs; * Year(s) - single, list or range e.g. `2016,2020,2021-2024`; * Month(s) - single, list or range e.g. `1,5,9-12`; * Max cloud - Max cloud %, int or float e.g. `10` or `10.5`; * No preview - tick to download only vector footprints. Outputs: * GeoPackage with previews or footprints, contains: * QGIS project; * Tile boundary; * Search area boundary; * Raster previews. * List of scene IDs. Launch the tool: [https://toolbox.nextgis.com/t/landsat_search](https://toolbox.nextgis.com/t/landsat_search) Example: ![image](docs_toolbox/source/_static/landsat_search_result_en.png) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. #### SEE ALSO * [Download Sentinel-2 satellite data](https://toolbox.nextgis.com/t/download_and_prepare_l8_s2?from-related-tools=1) * [Search and save Sentinel-2 scene previews](https://toolbox.nextgis.com/t/s2_search?from-related-tools=1) * [Search & download Planetary Computer](https://toolbox.nextgis.com/t/planetary_search?from-related-tools=1) * [Image clustering](https://toolbox.nextgis.com/t/image_clustering?from-related-tools=1) # landsat_to_radiance.html.md # Landsat radiometric calibration The tool converts the Landsat raw data into radiation intensity (ToA Radiance). Inputs: * Landsat band initial File Processing level L1 file from the original Landsat data archive. The name can be anything. Data can be pre-trimmed, etc. * Band number The band number corresponding to the downloaded file. Usually a number, for ETM + it can also be 6_VCID_1 and 6_VCID_2 * Landsat Metadata File Text file from the original Landsat data archive. Depending on the data type, it is a \* MTL.txt or \* .MTL file. Outputs: * The radiation intensity of the corresponding band in the GeoTIFF format Radiometric calibration is necessary for time series analysis, calculation of derivative products (for example, index images). Supported data: * Landsat 8 (OLI, TIRS) * Landsat 7 (ETM+) * Landsat 5 (TM) * Landsat 4 (TM) Launch the tool: [https://toolbox.nextgis.com/t/landsat_to_radiance](https://toolbox.nextgis.com/t/landsat_to_radiance) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # landsat_to_reflectance.html.md # Landsat reflectance calculation The tool recalculates the ToA Radiance of Landsat data into reflectivity with the possibility of applying atmospheric corrections, using the DOS method. Inputs: * The file with the radiation intensity of one of the Landsat bands - The result of radiometric calibrations of the Landsat source data, for example, using the tool [https://toolbox.nextgis.com/t/landsat_to_radiance](https://toolbox.nextgis.com/t/landsat_to_radiance); * Band number - The band number corresponding to the downloaded file. Usually a number, for ETM + it can also be 6_VCID_1 and 6_VCID_2; * Landsat Metadata File - Text file from the original Landsat data archive. Depending on the data type, it is a \* MTL.txt or \* .MTL file; * Processing Result Type: > - Default reflectance calculation (0), > - Application of DOS atmospheric correction (1). Outputs: * Spectral albedo of the corresponding band in GeoTIFF format. Spectral albedo is the main type of information that should be used in the analysis of remote sensing data. It is best suited for time series analysis. The ability to apply atmospheric corrections also improves data quality. Supported data: * Landsat 8 (OLI, TIRS) * Landsat 7 (ETM+) * Landsat 5 (TM) * Landsat 4 (TM) Launch the tool: [https://toolbox.nextgis.com/t/landsat_to_reflectance](https://toolbox.nextgis.com/t/landsat_to_reflectance) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # landslide_analysis.html.md # Landslide Susceptibility Analysis Heuristic landslide susceptibility index (after Anbalagan 1992) using sigmoid-transformed slope, combined curvature, TWI, dual-scale TPI, TRI, and parabolic elevation risk profile. Produces an LSI scaled 0-100 with 5-level classification. Inputs: * Terrain Analysis Package (ZIP). ZIP file from [Comprehensive Terrain Analysis](https://toolbox.nextgis.com/t/terrain_analysis) containing DEM, slope, curvature, TWI, TPI, TRI rasters and manifest.json * Weight: Slope (sigmoid). Weight for the sigmoid-transformed slope indicator (default: 0.30) * Weight: Curvature. Weight for the combined curvature indicator (default: 0.15) * Weight: TWI. Weight for the Topographic Wetness Index (default: 0.20) * Weight: TPI. Weight for the dual-scale TPI indicator (default: 0.10) * Weight: TRI. Weight for the Terrain Ruggedness Index (default: 0.15) * Weight: Elevation Risk. Weight for the parabolic elevation risk profile (default: 0.10) * Critical Slope Angle (degrees). Slope angle at the sigmoid inflection point in degrees (default: 25.0). Above this angle landslide risk increases sharply. * Hotspot Threshold. LSI value above which areas are classified as hotspots (default: 70) * Spectral Indices Package (ZIP). Optional ZIP from spectral_indices with vegetation index aggregates. When provided, a vegetation indicator is added to the weighted overlay. * Weight: Vegetation Index. Weight for the vegetation index indicator (default: 0.10). Only used when spectral_zip is provided. Other weights are scaled down proportionally. Outputs: * Landslide Analysis Package (ZIP). ZIP archive with landslide susceptibility rasters, vectors, statistics, and manifest * Summary. Human-readable summary of the landslide analysis results * Manifest JSON. JSON manifest string describing all outputs Launch the tool: [https://toolbox.nextgis.com/t/landslide_analysis](https://toolbox.nextgis.com/t/landslide_analysis) Example: ![image](docs_toolbox/source/_static/analysis_input_en.png)![image](docs_toolbox/source/_static/landslide_analysis_result_en.png) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # layer_settings.html.md # Layer settings Map is a set of raster and vector layers. Layers tree panel is designed to display the content of a map and to control visibility and hierarchy of map layers. To change the hierarchy of map layers long-press the layer which is to be moved up or down. Layers tree panel will switch to Edit mode. Keep pressing and move the selected layer to its new position. For turning layer visibility on/off tap on Layer visibility button (item 3 in [Fig. 944.](main.md#ngmobile-layer-tree-pic)). Additional operations with layers are available from a separate layer contextual menu (item 5 in [Fig. 944.](main.md#ngmobile-layer-tree-pic)). For example, contextual menu for a vector layer includes following items: 1. Zoom to extent 2. Attributes 3. Share 4. Send to NextGIS 5. Edit 6. Delete 7. Settings #### NOTE Contextual menu depends both on layer type and geodata source. Raster layers have different contextual menus than Vector layers. Raster layers created from tile cache have different contextual menus than raster layers created from external geoservices. ## Vector layer settings ### Style settings Open layer contextual menu and tap on “Settings”. Vector layer style settings will open as shown in [Fig. 1025.](#ngmobile-style-vector-pic) below. ![image](docs_ngmobile/source/_static/style_vector.png) Vector layer style settings depend on the selected Render type - Simple or Rule (item 4 in [Fig. 1025.](#ngmobile-style-vector-pic)). #### Simple rendering [Fig. 1025.](#ngmobile-style-vector-pic) shows Simple Render style settings. If you select this Render type, all the features in the layer will have the same shape, color, size, etc. For example, for a point/multipoint layer you can select features shape by using “Type” menu (see item 6 in [Fig. 1025.](#ngmobile-style-vector-pic)) using the following options: * Point * Circle * Diamond * Cross * Triangle * Box * Edit circle * Crossed box You can also set point size (see item 5 in [Fig. 1025.](#ngmobile-style-vector-pic)), fill and stroke color (see item 7 in [Fig. 1025.](#ngmobile-style-vector-pic)) and stroke width (see item 8 in [Fig. 1025.](#ngmobile-style-vector-pic)). In linestring/multilinestring layers you can select line type (solid, dash or edge solid), as well as fill and stroke color and stroke width. In polygon/multipolygon layers you can select stroke color and width. Also you can select to display polygons as filled or empty (the semi-opaque stroke color will be applied if “Filled” is selected). For any vector layer you can also choose to show Labels for each feature on a map. To do this tick “Text” checkbox and either enter the label text yourself or select the attribute field which will be used to label features on a map (item 9 in [Fig. 1025.](#ngmobile-style-vector-pic)). #### Rule-based rendering You can also use the advanced styling option for your vector layer, and set different shapes, colors, sizes, etc. for layer features based on their attribute values. For advanced styling of vector layer select “Rule” in the Render. It will open different style settings as shown in [Fig. 1026.](#ngmobile-style-vector-rulebased-pic) below. ![image](docs_ngmobile/source/_static/style_vector_rulebased.png) To adjust rule-based style settings first select the attribute field - its values will be used to create rules (see item 2 in [Fig. 1026.](#ngmobile-style-vector-rulebased-pic)). Then tap on “Create new rule” button (item 3 in [Fig. 1026.](#ngmobile-style-vector-rulebased-pic)). It will open a list of all the unique values from the attribute field you have selected earlier. Select the value and tap “OK” to open Style settings dialogue as shown below in [Fig. 1027.](#ngmobile-style-vector-rulebased-item-pic). ![image](docs_ngmobile/source/_static/style_vector_rulebased_item.png) Here you can select and apply the same style settings as described above in [Simple rendering](#ngmobile-simple-rendering) (rule-based style settings are also dependent on vector layer type). Select “OK” when finished. In this way you can create rule-based render styles for every value in the selected attribute field. ### Fields settings You can select which attribute field will be used to provide Feature ID for Edit screens, etc. To do this tap on “FIELDS” tab (see item 3 in [Fig. 1025.](#ngmobile-style-vector-pic)) and select one of the fields as shown in [Fig. 1028.](#ngmobile-style-select-field-pic) ![image](docs_ngmobile/source/_static/style_select_field.png) #### WARNING The selected field will not be used for rendering features labels on the map. For label settings see [Style settings](#ngmobile-style-settings). ### General settings “GENERAL” settings tab shows such information about vector layer as its local path, layer name & zoom levels to show on the map (it is possible to display the layer within certain zoom levels only). See [Fig. 1029.](#ngmobile-style-vector-general-pic) below. ![image](docs_ngmobile/source/_static/style_vector_general.png) Using this tab you can change layer name and zoom levels to show. ### Cache settings Using “CACHE” settings tab you can execute “Rebuild cache” command to optimize the layer creation process with the ability to save and cancel changes. ## Raster layer settings Raster layer contextual menu includes the following items (see [Fig. 1030.](#ngmobile-raster-layer-menu-pic)): * Zoom to extent * Delete * Settings ![image](docs_ngmobile/source/_static/raster_layer_menu.png) #### NOTE Raster layer created from external geoservice will have the option “Download tiles” instead of “Zoom to extent”. See [Caching of tile service data](load_geodata.md#ngmobile-tile-cache) for details. ### Style settings Open layer contextual menu and tap on “Settings”. Raster layer style settings will open as shown in [Fig. 1031.](#ngmobile-style-raster-pic) below. ![image](docs_ngmobile/source/_static/style_raster.png) Here you can set the values for: 1. **Opacity.** The value of layer opacity determines how intensive it hides or displays the contents of the underlying layer. Raster layer with 1% opacity is almost transparent. Completely opaque raster layer has an opacity of 100%. 2. **Contrast.** 3. **Brightness.** You can also apply to Raster layer the option “Make grayscale” - the layer will be displayed in shades of gray instead of original colors. ### General settings “GENERAL” settings tab shows such information about raster layer as its local path, layer name & zoom levels to show on the map (it is possible to display the layer within certain zoom levels only). See [Fig. 1032.](#ngmobile-style-raster-general-pic) below. ![image](docs_ngmobile/source/_static/style_raster_general.png) Using this tab you can change layer name and zoom levels to show. ### Cache settings Using “CACHE” settings tab you can set TMS in-memory cache size for a raster layer from these options: * No cache * 1 screen * 2 screens (recommended) * 3 screens You can also clear in-memory cache for this layer from this settings tab. # layers.html.md # Add layers Raster and vector geodata are uploaded to [Web GIS](../../docs_ngcom/source/description.md#ngcom-description) by creating [Raster layer](https://docs.nextgis.com/docs_ngweb/source/layers.html#raster-layer), [Vector layer](https://docs.nextgis.com/docs_ngweb/source/layers.html#vector-layer-from-file) and [Tileset](https://docs.nextgis.com/docs_ngweb/source/layers.html#ngw-tile-set) resources. The size limit for uploaded files depends on the [selected plan](https://nextgis.com/pricing-base/). For **Premium** - 50 GiB, for **Free** - 5 GiB and **Mini** - 10 GiB. On Free you can create up to 15 layers, if you need more, you can [upgrade to Premium](https://my.nextgis.com/subscription/) in your NextGIS ID account or [deploy NextGIS Web on-premise](https://nextgis.com/pricing/). If you have an external S3 storage, you can use it to store your rasters by creating a [Raster layer storage](https://docs.nextgis.ru/docs_ngweb/source/layers.html#raster-storage) resource. See other data requirements for [raster](https://docs.nextgis.com/docs_ngweb/source/layers.html#ngw-raster-requirements) and [vector](https://docs.nextgis.com/docs_ngweb/source/layers.html#input-data-requirements) layers below. ## Vector layer In NextGIS Web you can create vector layers based on variours [formats](https://docs.nextgis.com/docs_ngweb/source/layers.html#input-data-requirements), use [PostGIS connection](https://docs.nextgis.com/docs_ngweb/source/postgis_details.html#vector-layer-from-postgis) or create an [empty vector layer](https://docs.nextgis.com/docs_ngweb/source/layers.html#empty-vector-layer) that has attribute structure but no features. ### Input data requirements Source files could be in the following formats: * [ESRI Shapefile](../../glossary.md#term-ESRI-Shapefile) * [GeoJSON](../../glossary.md#term-GeoJSON) * [KML](../../glossary.md#term-KML) * [GML](../../glossary.md#term-GML) * [GeoPackage](../../glossary.md#term-GeoPackage) Point layers can also be created from CSV and XLSX files, the coordinates should be in the ‘lat’ and ‘lon’ columns. Watch the process of creating such a layer in the video: Watch on [youtube](https://youtu.be/-Yb4_GQugfQ?si=_6akhHxlIURO6AEL). Use NextGIS Connect if you need to upload data in other formats. #### NOTE In case of ESRI Shapefile, all components (dbf, shp, shx, prj and other files) should be compressed to a zip-archive. File size limits depend on your [subscription plan](https://nextgis.com/pricing-base/). #### WARNING Avoid using Unicode symbols in data field names. While such data can be uploaded to the Web GIS and displayed on Web Maps, you can experience problems working with it in NextGIS Mobile or visualization (especially if labels are using such fields). Use plain Latin for field names and set up field aliases to show Unicode names. If input data layer contains fields named id (ID) or geom (GEOM), they will be renamed on import. If id has meaningful identifiers, they will automatically be turned into internal FIDs. ### Create layer from file #### HINT **Don’t have the data?** [Access geodata](https://data.nextgis.com/en/) for any place on Earth on NextGIS Data Navigate to the resource group (folder) in which to create a vector layer. Click **Create resource** button and select **Vector layer** (see [Fig. 323.](#ngweb-admin-layers-create-vector-layer)). ![image](docs_ngweb/source/_static/ngweb_create_vector_layer_en.png) In the opened tab you need to upload a geodata file in [ESRI Shapefile](../../glossary.md#term-ESRI-Shapefile) (zip-archive), [GeoJSON](../../glossary.md#term-GeoJSON), [KML](../../glossary.md#term-KML), [GML](../../glossary.md#term-GML) or [GeoPackage](../../glossary.md#term-GeoPackage) format. For [CSV](../../glossary.md#term-CSV) and [XLSX](../../glossary.md#term-XLSX) only points are supported, coordinates must be put in lat and lot columns. The upload dialog indicates the maximum file size allowed on your subscription plan ([Fig. 324.](#ngweb-admin-layers-create-vector-layer-upload)). Web GIS can process multi-layer datasets. If an archive contains several layers, then after it is uploaded, you will be asked to select which layer will be used for creating Vector layer resource. Below it is proposed to define advanced options for creating a vector layer. Depending on the quality of the data you can define how to handle geometry errors when uploading a file, select the type of geometry, the presence/absence of multigeometries, Z-coordinates and the source of the FID (FID field, determine automatically or indicate from a particular field). [More about advanced options](https://docs.nextgis.com/docs_ngweb/source/vect_layer_upload_params.html). ![image](docs_ngweb/source/_static/ngw_create_vector_layer_upload_en.png) In the “Resource” tab enter the name of the vector layer ([Fig. 325.](#ngweb-admin-layers-create-vector-layer-resourse-name)). It will be displayed in the admin interface. The “Key” field is optional. ![image](docs_ngweb/source/_static/ngw_vector_layer_resourse_name_en.png) Also you can add [Description and metadata](https://docs.nextgis.com/docs_ngweb/source/edit_resource.html#ngw-update-info-metada). After uploading the file and specifying the parameters, click the **Create** button. Then you can [create a style](https://docs.nextgis.com/docs_ngweb/source/mapstyles.html#qgis) that will later visualize the data layer on a [Web Map](https://docs.nextgis.com/docs_ngweb/source/webmaps_admin.html#ngw-map-create). You can also create a [form or data collection](https://docs.nextgis.com/docs_ngweb/source/collector.html#collector-create-form). ### Empty vector layer Creating an empty vector layer allows you to start a data base in your WebGIS without using a desktop app. Navigate to the resource group (folder) in which to create a vector layer. Click **Create resource** button and select **Vector layer**. ![image](docs_ngweb/source/_static/ngweb_create_vector_layer_en.png) In the opened window use the dropdown menu to select “Create empty layer”. In the field below select geometry type for the layer. By default, a point layer will be created. ![image](docs_ngweb/source/_static/ngw_create_vector_layer_blank_en.png) **Points, lines and polygons** are supported. For any of these geometry types you can select an option with **multigeometries** and/or **Z-coordinate**. On the Fields tab add the necessary fields (attributes). ![image](docs_ngweb/source/_static/empty_vector_layer_fields_en_2.png) Click ![button_plus_layer](docs_ngweb/source/_static/button_plus_layer.png) **Add**. A field is created. Click on it to open the properties dialog. Select the data type for the field (numbers: INTEGER, BIGIN, REAL, text: STRING, date and/or time: DATE, TIME, DATETIME, logical: BOOLEAN). You can also change the display name of the field and other settings ([more on field parameters](https://docs.nextgis.com/docs_ngweb/source/layers_settings.html#ngw-attributes-edit)). ![image](docs_ngweb/source/_static/vector_layer_field_settings_en_2.png) Click ![button_hide_details](docs_ngweb/source/_static/button_hide_details.png) **Hide detaild** to return to the list of fields. ![image](docs_ngweb/source/_static/vector_layer_field_list_en_2.png) On the “Resource” tab enter the name of the vector layer. It will be displayed in the resource list. By default the resource type is used as its display name. Click **Create**. Now you can create a [style](https://docs.nextgis.com/docs_ngweb/source/mapstyles.html#qgis) that will later visualize the data layer on a [Web Map](https://docs.nextgis.com/docs_ngweb/source/webmaps_admin.html#ngw-map-create). To add features to the newly created layer you can use the [editing toolbar](https://docs.nextgis.com/docs_ngweb/source/feature_edit.html). ### Copy layer You can duplicate an existing layer within your Web GIS. It can be handy if you want to: * modify the data leaving the original dataset intact; * create a layer of the same structure. Navigate to the resource group (folder) in which to create a vector layer. Click **Create resource** button and select **Vector layer**. ![image](docs_ngweb/source/_static/ngweb_create_vector_layer_en.png) On the Vector layer tab select **Copy features from layer**. Click on the Source layer field and select the layer you want to copy: tick it and click **Pick selected**. ![image](docs_ngweb/source/_static/ngw_vector_copy_select_en.png) On the Resource tab you can set a name for the new layer. Click **Create**. After the layer is create, its resource page opens. Next you can create a new style for the layer or [copy the style of the source layer](https://docs.nextgis.com/docs_ngweb/source/mapstyles.html#ngw-qgis-style-copy). To copy a data collection form, export it as a file, then [create a new form within the layer using this file](https://docs.nextgis.com/docs_ngweb/source/collector.html#collector-create-form). ### Layer without geometry You can upload a table to Web GIS as a layer with no geometry. Navigate to the resource group (folder) in which to add a table. Click **Create resource** button and select **Vector layer**. ![image](docs_ngweb/source/_static/ngweb_create_vector_layer_en.png) On the Vector layer tab upload the table file. ![image](docs_ngweb/source/_static/ngw_vector_no_geom_upload_en.png) On the Resource page set the name for the table and click **Create**. The table is added to the resource tree as a vector layer with no geometry. ![image](docs_ngweb/source/_static/ngw_vector_no_geom_result_en.png) ## Raster layer Raster images in NextGIS Web should be loaded using the “Raster Layer” special resource. ### Requirements for uploaded files Data must be georeferenced and have valid reference system description in GeoTIFF tags. Supported format: * [GeoTIFF](../../glossary.md#term-GeoTIFF) or ZIP-archived GeoTIFF; * georeferenced JPEG or PNG in a ZIP-archive containing the image file and the \*.aux.xml file. ### Creation process To add a raster layer navigate to a group where you want to create it. Press **Create resource** button and select **Raster layer** (see [Fig. 336.](#ngweb-admin-layers-create-raster-layer)). ![image](docs_ngweb/source/_static/ngweb_create_raster_layer_en.png) On the “Raster layer” tab you need to upload a geodata file in GeoTIFF format. The upload dialog indicates the maximum file size allowed on your subscription plan ([Fig. 337.](#ngweb-admin-layers-create-raster-layer-upload)). If you plan to use this raster in QGIS directly from your Web GIS, tick the Upload as Cloud Optimized GeoTIFF (COG) checkbox. This will optimize the raster to ensure fast display. ![image](docs_ngweb/source/_static/ngweb_raster_layer_upload_en.png) If you have an external S3 storage for your rasters, select a previously created [Raster layer storage](https://docs.nextgis.com/docs_ngweb/source/layers.html#raster-storage): ![image](docs_ngweb/source/_static/ngweb_raster_select_storage_en.png) You can upload the raster to the storage or select a file that’s already stored there. ![image](docs_ngweb/source/_static/ngweb_raster_from_storage_en.png) In the “Resource” tab you can specify the name of the raster layer. It will be displayed in the admin interface. The “Key” field is optional. ![image](docs_ngweb/source/_static/ngweb_admin_layers_create_raster_layer_resourse_name_eng_3.png) Also you can add [Description and metadata](https://docs.nextgis.com/docs_ngweb/source/edit_resource.html#ngw-update-info-metada). To complete click the **Create** button. ### Uploading big rasters Satellite images of high resulution and other rasters may be very large. The file size is not representative because data is compressed. The actual data size may be much bigger. To make sure that raster data is quickly rendered on a Web Map and services work fast raser files must be converted before uploading them o Web GIS. There are three limitation for uploading big rasters: 1. Max file size - it depends on your [subscription plan](https://nextgis.com/pricing-base/), on Premium the limit is **50 GiB**. 2. Max size of extracted raster is equal to max file size multiplied by 2, so for Premium it’s **100 GiB**. GeoTIFF uses a compression algorithm and the file size may be drastically smaller than the size of the unpacked data. To calculate the size of he decompressed raster multiply the three parameters: pixel count \* number of bands \* bytes per pixel. #### NOTE If the raster file does not have alpha channel, it will be added during uploading, further expanding the raster size, so for calculating the data size add +1 channel to the equasion. 1. Overall data storage of the Web GIS - on Premium you can upload up to **50 GiB** of data (this limit [can be expanded](https://nextgis.com/pricing-base/#storage)); There is no time limit for uploading raster files. ### Raster layer with transparency (clip or alpha channel) Most of utilities do not create an alpha channel and only add a NoData value. To transform NoData value to an alpha channel use the command line utility **gdalwarp**. Here is an example of this command. ```shell gdalwarp -t_srs EPSG:3857 -multi -dstalpha -dstnodata none -wo \ "UNIFIED_SRC_NODATA=YES" -co COMPRESS=JPEG \ d:\temp\o\ast_20010730_010043_rgb.tif d:\temp\o\ast_20010730_010043_rgba.tif ``` ### Uploading indexed color rasters Indexed Color raster files are uploaded just like the RGB raster files. If the file is not in GeoTIFF format, you can convert it as follows: ```shell gdal_translate madison.map madison.tif ``` ## Tileset To add a **Tileset**, select a Tileset in the “Create Resource” block of operations. ![image](docs_ngweb/source/_static/ngweb_create_tileset_en.png) Next, you need to enter the name of the tileset, which will be displayed in the administrative web interface. The “Key” field is optional. On the appropriate tabs, you can add a resource description and metadata. Typically, metadata is used to develop third-party applications using APIs. In the “Tileset” tab, you need to upload a tileset in MBTiles format or a zip archive. Tiles must be in PNG or JPEG format and have a size of 256x256 pixels. ![image](docs_ngweb/source/_static/create_tileset_upload_en.png) Click **Create** to complete the process. See how to add a tileset in our video: Watch on [youtube](https://youtu.be/eCeptUacIRM?si=AxMNJO2AtYcJS0EG). After creating a Tileset you can: * add it to a [Web Map](https://docs.nextgis.com/docs_ngweb/source/webmaps_admin.html), * add it to an external app using [TMS link](https://docs.nextgis.com/docs_ngweb/source/services.html#ngw-tms-service) from the External access section, * publish it as part of a [WMS service](https://docs.nextgis.com/docs_ngweb/source/services.html#wms). ## Raster layer storage If you want to use an external storage for your raster layers, you can connect it to your Web GIS. Go to the resource group where you want to create the connection, click **Create resource** and select **Raster layer storage**. ![image](docs_ngweb/source/_static/ngweb_create_raster_storage_en.png) Fill in the form with the values of the corresponding variables: * Type - AWS S3 * Endpoint * Bucket * Prefix (optional) If it’s a private storage, enter also the credentials: * Access key * Sercret key If it’s a public storage, tick “Public access” instead. ![image](docs_ngweb/source/_static/ngweb_raster_storage_settings_en_2.png) On the “Resource” tab you can enter a custom name for the storage. It will be displayed in the list of resources. Click **Create** to complete the process. While creating a raster layer you can choose where to store it: in the Web GIS itself or in the external storage (see [Fig. 337.](#ngweb-admin-layers-create-raster-layer-upload)). # layers2ngw.html.md # Vector layers in Web GIS from archive This tool allows to create multiple vector layers in Web GIS at once using a ZIP archive of geodata files. For example, you can [buy data on NextGIS Data](https://data.nextgis.com/en/) and upload it to your Web GIS. Input: * Web GIS - URL of the Web GIS, i.e. [https://sandbox.nextgis.com](https://sandbox.nextgis.com) * Username - your NextGIS ID; * Password * Resource group ID - Number at the end of the link to the folder. For Main resource group ID=0 * ZIP archive - ZIP archive with GPKG, SHP or GeoJSON files. May contain sidecar QML file (To save all the styles as files use [Save default QML plugin](https://docs.nextgis.com/docs_ngqgis/source/quicksaveqml.html)). May include subfolders. * QML file - optional, QML file of a style that will be added to all the loaded layers. Make sure the geometry type is correct. Output: * Layers created in NextGIS Web in the selected resource group Example: ![image](docs_toolbox/source/_static/layers2ngw_input_en.png)![image](docs_toolbox/source/_static/layers2ngw_output_en.png) Launch the tool: [https://toolbox.nextgis.com/t/layers2ngw](https://toolbox.nextgis.com/t/layers2ngw) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # layers_settings.html.md # Vector layer settings To edit a layer [log in to the Web GIS](https://docs.nextgis.com/docs_ngweb/source/admin_interface.html#ngw-admin-login). To modify layer settings, open the group containing the layer (see [Fig. 283.](admin_interface.md#admin-index-pic), item 5), find the layer in the list and click on the pencil icon next to it. It opens the [Update resource](https://docs.nextgis.com/docs_ngweb/source/edit_resource.html) page. On this page you can edit the settings standard for all types of resources (parent, description, metadata, access permission) and specific for vector layers: * [delete or replace all the features](https://docs.nextgis.com/docs_ngweb/source/layers_settings.html#ngw-vector-file-replace); * edit [fields and their aliases](https://docs.nextgis.com/docs_ngweb/source/layers_settings.html#ngw-attributes-edit); * [enable editing](https://docs.nextgis.com/docs_ngweb/source/.feature_edit.html#ngw-allow-edit) for vector features and annotations on the map; * enable and disable feature versioning. Versioning allows the layer to be edited directly [in QGIS via NextGIS Connect](https://docs.nextgis.com/docs_ngcom/source/ngqgis_connect.html#ngcom-ngqgis-connect-data-edit) by multiple users at once. ![image](docs_ngweb/source/_static/create_vector_layer_vers_en.png) If you want all vector layers added to your Web GIS not to be versioned by default, it can be set in the [Control panel](https://docs.nextgis.com/docs_ngweb/source/version.html#vers-ngw-default). [Web GIS](../../docs_ngcom/source/description.md#ngcom-description) interface allows to [edit](https://docs.nextgis.com/docs_ngweb/source/feature_edit.html) geometries on the map and feature attribute values, add description and [attachments](https://docs.nextgis.com/docs_ngweb/source/feature_edit.html#ngw-attachments) (photos etc) to features of Vector layers and [PostGIS layers](https://docs.nextgis.com/docs_ngweb/source/postgis_details.html#postgis). ## Edit vector layer attributes table “Fields” tab contains a table with vector layer attributes (see [Fig. 464.](#ngweb-admin-layers-attr)). On this tab you can: * ![+](docs_ngweb/source/_static/button_plus_layer.png) Add a new field; * Delete a field by pressing the ![X](docs_ngweb/source/_static/attr_delete_symbol.png) symbol at the end of the row; * Edit a field. Click on a table row to open the properties of the field. ![image](docs_ngweb/source/_static/vector_layer_field_list_en_3.png) The table contains the following columns: * Display name that is used in the identification window instead of the keyname; * Keyname - technical name of the attribute, can be comprised only of plain latin symbols; ![image](docs_ngweb/source/_static/key_field_name_en_2.png)![image](docs_ngweb/source/_static/webmap_identification_eng_3.png) * Type - defines what data can be stored in the fiels: * INTEGER - numbers between -2147483647 and 2147483647, no decimals; * BIGINT - long numbers without decimals, between -9223372036854775807 and 9223372036854775807; * REAL - floating-point numbers, e.g. 44.4444; * STRING - a text of any length; * DATE - date; * TIME - time; * DATETIME - date and time; * BOOLEAN - logical field, possible values are “TRUE” and “FALSE”. For the next three parameters a dark symbol means “on” and a light symbol means “off”. * ![attr_table_symbol](docs_ngweb/source/_static/attr_table_symbol.png) Feature table - the attribute is displayed in the identification window. * ![attr_text_search_symbol](docs_ngweb/source/_static/attr_text_search_symbol.png) Text search - you can disable text search in the values of the attribute. * **!** Required - this field needs to be filled in if someone creates or edits a feature. * ![attr_label_symbol](docs_ngweb/source/_static/attr_label_symbol.png) Label attribute - value from this fielsd is used as feature name for [search results](https://docs.nextgis.com/docs_ngweb/source/webmaps_client.html#ngw-webmaps-client-search), [identification](https://docs.nextgis.com/docs_ngweb/source/webmaps_client.html#ngw-webmaps-client-ident) and [bookmarks](https://docs.nextgis.com/docs_ngweb/source/webmaps_admin.html#ngw-map-bookmarks). #### NOTE To modify the labels visisble on the map itself, use [style settings](https://docs.nextgis.com/docs_ngweb/source/mapstyles.html#ngw-qgis-style-custom) You can also [add a Lookup table](https://docs.nextgis.com/docs_ngweb/source/layers_settings.html#lookup-add-to-field). It allows to select values of the attribute when you add or edit features. To go back to the table view, click ![button_hide_details](docs_ngweb/source/_static/button_hide_details.png) **Hide details** in the top row of the form. After all edits are made, click **Save**. ### Connect lookup table to a field First create a [Lookup table](https://docs.nextgis.com/docs_ngweb/source/create_other.html#ngw-create-lookup-table) resource with the desired list of key-value pairs. To connect a lookup table to the layer, open the Edit dialog and to to the Attributes tab. Select the attribute, then click on the downward arrow in the Lookup table field. ![image](docs_ngweb/source/_static/layer_add_lookup_en.png) Then select the lookup table resource in the pop-up window. ![image](docs_ngweb/source/_static/update_add_lookup_en_2.png) In the feature table you’ll see the detailed name, while the short key will be stored in the data. ![image](docs_ngweb/source/_static/lookup_feature_table_en.png)![image](docs_ngweb/source/_static/no_lookup_feature_table_en.png) In the feature preview as well as in the Identify panel on the Web Map you’ll see both parts of the key-value pair: first the key enclosed in square brackets, then the longer value. ![image](docs_ngweb/source/_static/lookup_feature_preview_en.png) To use the same list of values while gathering data in the field, export the Lookup table as CSV and [add it to the field](https://docs.nextgis.com/docs_formbuilder/source/controls.html#fb-edit-combobox-pic) of the data collection form. ## Delete or replace all features NextGIS Web software allows to delete all features of a layer or replace them by uploading a new file. Click on the pencil icon next to the layer. In the “Vector layer” tab select the action from the dropdown menu. ![image](docs_ngweb/source/_static/ngw_update_vector_file_options_en_2.png) You can delete all the features. This will result in an empty layer of the same structure that you can add new features to. To do so, select “Delete all features from layer”, tick to confirm and press **Save**. ![image](docs_ngweb/source/_static/ngw_update_vector_file_clear_en_2.png) You can replace all the features by uploading a previously prepared file. Select “Replace layer features from file”. Open the file or drag and drop it into the frame. ![image](docs_ngweb/source/_static/ngw_update_vector_file_replace_en_2.png) If the file has multiple layers, select the one you need in the “Source layer” field. You can also set up other properties, as while creating a new vector layer. If you replace the file, not only the features, but the structure of the attributes and other properties will be changed to match the new file. #### NOTE You can use any type of geometry to replace the existing file. Keep in mind that if the geometry type changes, all styles connected with the layer may stop working, because they do not contain markers for other geometry types. ## Change layer geometry You can change the geometry of an existing vector layer without replacing the data, but within limits. Modifications that you can make: * allow complex geometries (i.e. point layer becomes multipoint); * allow Z coordinate. ![image](docs_ngweb/source/_static/ngw_update_vector_geometry_en.png) If you need to change the geometry significantly (split polygons into lines, for example) but keep the resource ID, use the [replace features from file](https://docs.nextgis.com/docs_ngweb/source/layers_settings.html#ngw-attributes-edit) option instead. # layerstack.html.md # Form multi-channel raster from individual channels Converts an archive with raster channels to a single multi-channel raster composed of selected channels. Inputs: * ZIP-archive with single-channel rasters, without subfolders. * List of channels, comma-separated, e.g. 4,3,2 (number of the source raster, in alphabetical order). Outputs: * Multi-channel raster as a TIF file. Launch the tool: [https://toolbox.nextgis.com/t/layerstack](https://toolbox.nextgis.com/t/layerstack) Example: ![image](docs_toolbox/source/_static/layerstack_input_en.png)![image](docs_toolbox/source/_static/layerstack_result_en.png) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # leaflet.html.md # How to use data in Leaflet (leaflet.js) * [Order data](https://data.nextgis.com/en/) for your area of interest in GeoJSON format. * Go to the [orders](https://data.nextgis.com/en/orders/actual/) page and download the archive when it’s complete. * **Unpack** the archive. * Select a target layer, for example municipal boundaries (boundary-polygon-lvl6.geojson) * To use layer in Leaflet first you need to host it (store in a place, accessible via hyperlink). Simple Leaflet map showing a municipal boundaries layer and lables: ```html Show Data layer on the Leaflet
``` The result: ![image](docs_data/source/_static/leaflet.png) # lesis2sqlite.html.md # Lesis (TopoL) to SQLite Conversion of the Lesis database (TopoL-L GIS) to SQLite format to open in NextGIS QGIS. Launch the tool: [https://toolbox.nextgis.com/t/lesis2sqlite](https://toolbox.nextgis.com/t/lesis2sqlite) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # lines2poly.html.md # Lines to polygons Each line turns into a polygon. Straight and self-intersected lines are omitted. Multilines are exploded to multiple features. Input: * Linear vector layer in GeoJSON or GeoPackage format or ESRI Shapefile in a zip archive. Output: * Polygon layer; * Linear layer with remaining self-intersecting lines. Both files are in the same format as the input. Launch the tool: [https://toolbox.nextgis.com/t/lines2poly](https://toolbox.nextgis.com/t/lines2poly) Example: ![image](docs_toolbox/source/_static/lines2poly_input_en.png)![image](docs_toolbox/source/_static/lines2poly_result_en.png) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # lines2polygons.html.md # Temporal polygons from lines and points The tool creates polygons that reflect the state of the area at a particular point in time. Polygons are formed from a set of polylines, each of which is characterized by the start and end dates of its existence. Attributes for polygons are assigned from a layer of points, which also has a time reference. In addition, grouping of polygon identifiers by a given parameter is carried out by creating a separate field with an ID common to each group (its minimum value). The geometry of the polygons does not change. **Preparing the data** Make sure to set the following access permissions for both layers: Resource: Read and Data: Read data for **Guest**. All the resource groups that include the layers, up to the Main resource group, must also have Resource: Read permission set for Guest. The layer of polylines must include the following fields: * upperdat - the start date of the line’s existence; * lwdate - the end date of the line’s existence; * a field that will be used for grouping. ![image](docs_toolbox/source/_static/lines2polygons_lines_points_map.png) ![image](docs_toolbox/source/_static/lines2polygons_polygons_map_table_en.png) Inputs: * Web GIS URL - address of the used Web GIS (it must end on *.com*, no / or other symbols after it) * Line resource ID - ID of the polyline layer from the used Web GIS * Point resource ID - ID of the layer with points from the used Web GIS * Requested year - the year for which you want to get a time slice * Request year field name - name of the field where the requested year will be written * Result field - a new field where the grouping results will be entered, that is, ID * ID field - a field with unique values in the polyline layer; IDs for grouping are borrowed from it * Group field - the field by which polygons are grouped Outputs: * a layer with polygons (shapefile) relevant for the given year Launch the tool: [https://toolbox.nextgis.com/t/lines2polygons](https://toolbox.nextgis.com/t/lines2polygons) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # load_geodata.html.md # Adding layers NextGIS Mobile allows to create new empty vector layers or import vector and raster layers from Android local storage, [QuickMapServices catalog](https://qms.nextgis.com/), [nextgis.com](https://my.nextgis.com/signup/?next=/webgis/) or [NextGIS Web](http://nextgis.com/nextgis-web/). The supported data types are: * [GeoJSON](../../glossary.md#term-GeoJSON); * XYZ/TMS tile cache in ZIP-archive; * tile cache in \*.ngrc format; * custom forms in \*.ngfp format. To add a basemap use a service as described [below](https://docs.nextgis.com/docs_ngmobile/source/load_geodata.html#ngmobile-add-geoservice). ## Creating new vector layer Here are the steps to create an empty vector layer: 1. Open Layers tree panel (item 1 in [Fig. 943.](main.md#ngmobile-main-activity-pic-1)). Then tap on “Add geodata” button (item 4 in [Fig. 944.](main.md#ngmobile-layer-tree-pic)). The dialogue will open as shown in [Fig. 955.](#ngmobile-options-menu-new-layer-pic). Select “Create layer”. ![image](docs_ngmobile/source/_static/options_menu_new_layer.png) 1. In the opened dialogue enter the parameters of new vector layer (see [Fig. 956.](#ngmobile-input-form-attributes-new-layer-pic)) ![image](docs_ngmobile/source/_static/input_form_attributes_new_layer.png) The standard form for the creation of new vector layer contains the following parameters: 1. Layer name - enter the name of layer which will be displayed in the layers tree. 2. Geometry type - select layer geometry type (point, linestring, polygon, multipoint, multilinestring, multipolygon). 3. Fields - list of fields which can be added, edited or deleted. These are attribute values of the layer. You can add as many attributes for a new vector layer as you like. To add a new attribute tap on “+” button next to “Fields”. This will open a new dialogue for creation of each new field (see [Fig. 957.](#ngmobile-dialogue-create-new-field-pic)). ![image](docs_ngmobile/source/_static/dialogue_create_new_field.png) Dialog for creation of a new field contains the following parameters: 1. Field name – enter the name of the field. #### NOTE The field name can only be entered in Latin characters (letters and numbers!) without spaces. It should also differ from SQL reserved keywords. 1. Field type - select field type from one of the following types: string, integer, biginteger, real, date&time, date, time. ## Creating vector layer from GeoJSON data NextGIS Mobile allows to create a vector layer by importing an existing GeoJSON file. To open data in GeoJSON format: 1. Open Layers tree panel (item 1 in [Fig. 943.](main.md#ngmobile-main-activity-pic-1)). Then tap on “Add geodata” button (item 4 in [Fig. 944.](main.md#ngmobile-layer-tree-pic)). The dialogue will open as shown in [Fig. 955.](#ngmobile-options-menu-new-layer-pic). Select “Open local”. 2. Select GeoJSON file from your mobile device storage (see [Fig. 958.](#ngmobile-saved-files-on-the-drive-pic-1)). For example, tap on the file “Roads.geojson” to import the “Roads” vector data file. ![image](docs_ngmobile/source/_static/saved_files_on_the_drive_unit.png) 1. When the file is selected Layer settings dialogue opens. Here you can specify a new vector layer name or keep the name as it is, e.g. “Roads” (see [Fig. 959.](#ngmobile-layer-settings-geo-pic)). ![image](docs_ngmobile/source/_static/layer_settings_geo.png) 1. Pressing “Create” button starts data processing for creation of a new layer. #### NOTE In case of GeoJSON file importing the new layer will always be a vector layer! You can check if the new layer was created successfully in the layers tree panel. The newly created layer will be shown up in the layers tree (see [Fig. 960.](#ngmobile-tree-layers-geo-pic)). The “Roads” layer is marked in orange rectangle. ![image](docs_ngmobile/source/_static/tree_layers_geo.png) **GeoJSON: format requirements** * [Coordinate system](../../glossary.md#term-coordinate-system) of input geometries can be WGS 84 (EPSG:4326) or Web Mercator (EPSG:3857) only. If input file has different coordinate system you will see a warning message about unsupported coordinate system. * All geometries in the file must be of the same type. If input file contains varying types of geometry in the output you will have a file with geometries type that coincides with the type of first record, i.e. geometry of first entry will determine the type of layer geometry. * Text strings must be encoded in UTF-8 format. #### NOTE You can read more about GeoJSON format in its [specification](http://geojson.org/). GeoJSON is based on JSON format (see [RFC 4627](https://www.ietf.org/rfc/rfc4627.txt)). You can only use standard attributes form (not custom \*.ngfp form) for editing GeoJSON layer. The standard attributes form contains only following three fields: 1. Text field for entering characters or digits. 2. Dialogue for entering date & time. 3. “Add pictures” button. A sample standard attributes form is shown below in [Fig. 961.](#ngmobile-standard-input-form-attributes-pic). ![image](docs_ngmobile/source/_static/input_form_attributes.png) You can further perform standard edit operations like Add, Modify or Delete operations for this layer. For more information about GeoJSON layer editing see [Editing a geometry](editing.md#ngmobile-edit-geometry). ## Creating vector layer from Custom forms (NGFP) NextGIS Mobile allows to create a vector layer by importing an existing NGFP file. NGFP files can be generated using [NextGIS FormBuilder](http://nextgis.com/nextgis-formbuilder/). NGFP is a [GeoJSON](../../glossary.md#term-GeoJSON) file with additional information (JSON) which is packaged in zip archive and has .ngfp extension. NGFP file allows to use custom (not standard) attributes forms optimized for attributes viewing and editing. Custom form may contain special controls for editing, such as dropdown lists, radio buttons or linked lists. ![image](docs_ngmobile/source/_static/custom_form.png) Follow these steps to open NGFP file in NextGIS Mobile: 1. Open Layers tree panel (item 1 in [Fig. 943.](main.md#ngmobile-main-activity-pic-1)). Then tap on “Add geodata” button (item 4 in [Fig. 944.](main.md#ngmobile-layer-tree-pic)). The dialogue will open as shown in [Fig. 955.](#ngmobile-options-menu-new-layer-pic). Select “Open local”. 2. Select NGFP file from your mobile device storage (see [Fig. 963.](#ngmobile-saved-files-on-the-drive-pic-3)). For example, tap on the file “Structures.ngfp” to import the “Structures” form. ![image](docs_ngmobile/source/_static/saved_files_on_the_drive_unit.png) 1. When the file is selected Layer settings dialogue opens. Here you can specify a new vector layer name or keep the name as it is, e.g. “Structures” (see [Fig. 964.](#ngmobile-settind-layer-form-pic)): ![image](docs_ngmobile/source/_static/settind_layer_form.png) 1. Pressing “Create” button starts data processing for creation of a new vector layer. You can check if the new layer was created successfully in the layers tree panel. The newly created layer will be shown up in the layers tree in the layers tree (see [Fig. 960.](#ngmobile-tree-layers-geo-pic)). The “Structures” layer is shown in orange rectangle. ![image](docs_ngmobile/source/_static/tree_layers_ngfp.png) You can further perform standard edit operations like Add, Modify or Delete operations for this vector layer. For more information about NGFP layer editing see [Editing a geometry](editing.md#ngmobile-edit-geometry). ## Creating raster layer from Tile cache (XYZ/TMS) NextGIS Mobile allows to create a raster layer by importing tile cache. Tile cache is a zip-archive with folders and tiles stored in accordance with a tiling scheme (for example, folder_z/folder_x/y.png). Folders of level Z can be located in the root or in a folder in the root folder (name of the folder doesn’t matter, but there have to be only one folder). Deeper nesting of level Z folders is not allowed. Tile cache can be created with the extension module [NextGIS QGIS - QTiles](http://plugins.qgis.org/plugins/qtiles/). Resulted archive can be uploaded to any available folder in your mobile device storage. Follow these steps to open zip-archive with tile cache: 1. Open Layers tree panel (item 1 in [Fig. 943.](main.md#ngmobile-main-activity-pic-1)). Then tap on “Add geodata” button (item 4 in [Fig. 944.](main.md#ngmobile-layer-tree-pic)). The dialogue will open as shown in [Fig. 955.](#ngmobile-options-menu-new-layer-pic). Select “Open local”. 2. Select zip-archive from your mobile device storage (see [Fig. 966.](#ngmobile-files-on-the-drive-unit-tms-pic)). For example, tap on the file “mapnik.zip” to import the tile cache: ![image](docs_ngmobile/source/_static/files_on_the_drive_unit_tms.png) 1. When zip-archive is selected a layer settings dialog opens (see [Fig. 967.](#ngmobile-layer-setting-tms-pic)): ![image](docs_ngmobile/source/_static/layer_setting_tms.png) Here you can select tile layer type (tile structure system) - XYZ (OSM) or TMS (OSGeo) (see [Fig. 968.](#ngmobile-layer-setting-tms-pic-2)) and in-memory cache size (see [Fig. 969.](#ngmobile-layer-setting-tms-pic-3)): ![image](docs_ngmobile/source/_static/layer_setting_tms_2.png)![image](docs_ngmobile/source/_static/layer_setting_tms_3.png) 1. Pressing “Create” button starts data processing for creation of a new raster layer (see [Fig. 970.](#ngmobile-processing-and-creation-layer-tms-pic)). ![image](docs_ngmobile/source/_static/processing_and_creation_layer_tms.png) You can check if the new raster layer was created successfully in the Layers tree panel. The newly created raster layer will be shown up in the layers tree first in the Layers tree (see [Fig. 971.](#ngmobile-tree-layers-tms-pic)). ![image](docs_ngmobile/source/_static/tree_layers_tms.png) ## Creating raster layer from Tile cache (NGRC) NextGIS Mobile also allows to create a raster layer by importing tile cache in \*.ngrc format. NGRC files can be created from virtually any geodata in QGIS using our [QTiles](https://docs.nextgis.com/docs_ngqgis/source/qtiles.html) plugin. Follow these steps to import tile cache in \*.ngrc format : 1. Open Layers tree panel (item 1 in [Fig. 943.](main.md#ngmobile-main-activity-pic-1)). Then tap on “Add geodata” button (item 4 in [Fig. 944.](main.md#ngmobile-layer-tree-pic)). The dialogue will open as shown in [Fig. 955.](#ngmobile-options-menu-new-layer-pic). Select “Open local”. 2. Select \*.ngrc file from your mobile device storage (see [Fig. 972.](#ngmobile-saved-files-on-the-drive-pic-2)). For example, tap on the file “Tandali_Wadgaon.ngrc” to import the “Tandali Wadgaon” tile cache prepared using satellite raster image. ![image](docs_ngmobile/source/_static/saved_files_on_the_drive_unit.png) 1. NextGIS Mobile will start data processing for creation of a new raster layer. You can check if the new layer was created successfully in the Layers tree panel. The newly created layer will be shown up in the layers tree in the layers tree as shown in (see [Fig. 973.](#ngmobile-tree-layers-ngrc-pic)). The “Tandali_Wadgaon” layer is shown in orange rectangle. ![image](docs_ngmobile/source/_static/tree_layers_ngrc.png) ## Creating raster layer from external geoservice NextGIS Mobile also supports creation of raster layers from external geoservices. For example, you can use them to add basemaps. #### WARNING You need to be **Online** while creating layer from external geoservice. It will consume your data pack & apply standard Internet charges from your Internet service provider. ### Creating raster layer from QuickMapServices tile service Follow these steps to add raster layer from TMS services listed in [QuickMapServices catalog](https://qms.nextgis.com/): 1. Open Layers tree panel (item 1 in [Fig. 943.](main.md#ngmobile-main-activity-pic-1)). Then tap on “Add geodata” button (item 4 in [Fig. 944.](main.md#ngmobile-layer-tree-pic)). The dialogue will open as shown in [Fig. 955.](#ngmobile-options-menu-new-layer-pic). Select “Add geoservice” and the dialogue will open as shown in [Fig. 974.](#ngmobile-ngmobile-add-geoservice-pic) below. ![image](docs_ngmobile/source/_static/ngmobile_add_geoservice.png) 1. Select a geoservice you want to add and tap “Add” to create raster layer from that service. The newly created layer will be shown up in the layers tree in Layers tree. ### Creating raster layer from private tile service If you want to add tile service not listed in [QuickMapServices catalog](https://qms.nextgis.com/) you can do it by following these steps: 1. Tap “New” in above [Fig. 974.](#ngmobile-ngmobile-add-geoservice-pic). It will open up “Create” dialogue for a new TMS service as shown in [Fig. 975.](#ngmobile-ngmobile-new-geoservice-pic) below. ![image](docs_ngmobile/source/_static/ngmobile_new_geoservice.png) 1. Specify Layer name & Layer URL. Layer URL should specify location of X value (number of tile by horizontal), Y (number of tile by vertical) and Z (zoom level). These values are specified using wildcard code for X - **{x}**, for Y - **{y}**, for Z - **{z}**. Additionally you can specify subdomains (e.g. for subdomains a.tileopenstreetmap.org, b.tileopenstreetmap.org, c.tileopenstreetmap.org the address will look like this: **{a,b,c}.tile.openstreetmap.org**). #### NOTE NextGIS Mobile requests tiles from each URL (subdomain) in 2 streams. So from URL like {a,b,c}.tile.openstreetmap.org tiles will be downloaded in 6 streams. 1. You can also specify Tile layer type (XYZ (OSM) and TMS (OSGeo) standards are supported), TMS in-memory cache size (none, 1, 2 or 3 screens) and credentials (Login & Password) if authentication is required for accessing tiles. #### NOTE Only [Basic access authentication](http://en.wikipedia.org/wiki/Basic_access_authentication) is currently supported. 1. Tap “Create” to create new raster layer from that TMS service. The newly created layer will be shown up in the layers tree in Layers tree. ### Caching of tile service data You can work **Offline** with raster layers created from external geoservices. In order to do it you need to download tiles for your area of interest to your device before going into the field: 1. Make sure raster layer you need in the field is added to Map screen and is visible. Then open the map extent you want to download tiles for. 2. Open Layers tree panel (item 1 in [Fig. 943.](main.md#ngmobile-main-activity-pic-1)). Then find raster layer in Layers tree and tap Layer contextual menu icon (item 5 in [Fig. 944.](main.md#ngmobile-layer-tree-pic)). 3. Tap “Download tiles” button in Layer contextual menu as shown in [Fig. 976.](#download-tiles-pic) below. ![image](docs_ngmobile/source/_static/download_tiles.png) 1. A new dialogue will open as shown in [Fig. 977.](#ngmobile-levels-of-zoom-pic). Select zoom levels you need and tap “Start” button. ![image](docs_ngmobile/source/_static/levels_of_zoom.png) #### NOTE The lower selected zoom levels, the smaller number of tiles for an area of interest will have to be downloaded and the faster they will be downloaded. You can track downloading progress in Android Status Bar. Notifications for NextGIS Mobile app should be switched ON in System Settings. #### WARNING If number of tiles to download for selected zoom levels is more than 6000 tiles for each zoom level, only first 6000 tiles for each zoom level will be downloaded. The rest will not be downloaded due to danger of memory overflow. ## Adding geodata from Web GIS NextGIS Mobile supports uploading of geodata from [Web GIS created at nextgis.com cloud service](../../docs_ngcom/source/create.md#ngcom-create) or on-premise. You can learn more about uploading geodata to [Web GIS](../../docs_ngcom/source/description.md#ngcom-description) in the following sections: [Raster layer](../../docs_ngcom/source/data_upload.md#ngcom-raster-layer) and [Vector layer](../../docs_ngcom/source/data_upload.md#ngcom-vector-layer). To add files/geodata from Web GIS to NextGIS Mobile: 1. Open Layers tree panel (item 1 in [Fig. 943.](main.md#ngmobile-main-activity-pic-1)). Then tap on **Add geodata** button (item 4 in [Fig. 944.](main.md#ngmobile-layer-tree-pic)). The dialogue will open as shown in [Fig. 978.](#ngmobile-addition-of-nextgis-pic). Select “Add from Web GIS”. ![image](docs_ngmobile/source/_static/ngmobile_addition_of_NextGIS_eng.png) 1. In opened dialogue select “Add Web GIS” and tap **Add** button (see [Fig. 979.](#ngmobile-add-an-account-nextgis-pic)): ![image](docs_ngmobile/source/_static/ngmobile_add_an_account_NextGIS_eng.png) 1. Enter your Web GIS name and password set on nextgis.com, then tap **Sign in** button (see [Fig. 980.](#ngmobile-conversation-connection-webgis-pic)): ![image](docs_ngmobile/source/_static/ngmobile_conversation_connection_WebGIS_eng.png) If you’re adding geodata from an on-premise Web GIS, first you need to [change the authentification server](https://docs.nextgis.com/docs_ngmobile/source/auth.html#ngidop). 1. After the connection is successful you will see the list of available Web GIS. Select the one you added (see [Fig. 981.](#ngmobile-account-election-web-gis-pic)): ![image](docs_ngmobile/source/_static/ngmobile_account_election_Web_GIS_eng.png) 1. The dialog of layer selection for importing geodata from your Web GIS to NextGIS Mobile will open (see [Fig. 982.](#ngmobile-layer-selection-dialog-for-importing-pic)): ![image](docs_ngmobile/source/_static/ngmobile_layer_selection_dialog_for_importing_eng.png) If Web GIS layer has a style, there is a possibility to choose not only vector data, but also raster data for importing. Vector data are downloading to the mobile device and can be used offline. Raster data can be used only online. A vector layer can be added/imported either as vector or as raster data. Tick off the type for the layer in the right side of the screen (see [Fig. 983.](#ngmobile-layer-type-selection-pic)): ![image](docs_ngmobile/source/_static/ngmobile_layer_type_selection_eng.png) Tap the button in the upper right corner of the screen to create a new group of data in your Web GIS. Specify a name for the group and tap “OK”. In the case of the success you will see it in your Web GIS window (see [Fig. 984.](#ngmobile-add-a-new-group-pic)): ![image](docs_ngmobile/source/_static/ngmobile_add_a_new_group_eng.png) 1. After the layer selection for importing from your Web GIS to NextGIS Mobile, tap “Add” button. The importing process will begin. The newly created layer will be shown up in the layers tree in Layers tree. # locus.html.md # How to upload data to Locus GIS mobile app * [Order data](https://data.nextgis.com/en/) for your area of interest in KML (Google Earth) format. * Go to the [orders](https://data.nextgis.com/en/orders/actual/) page and download the archive when it’s complete. * **Unpack** the archive. Download and install Locus GIS [1](#id2) app to your mobile device. Open the app and create a new project. To do so open the menu (three stripes in the top left corner) and go to the Projects tab. ![image](docs_data/source/_static/locus_menu_en.jpg)![image](docs_data/source/_static/locus_menu_proj_en.jpg) Press “+” in the bottom right corner and select **New empty project**. ![image](docs_data/source/_static/locus_new_proj_en.jpg)![image](docs_data/source/_static/locus_new_proj_empty_en.jpg) Enter a name for the project, select a Coordinate Reference System and coordinate type. Add description if you need. Then press **Ok**. ![image](docs_data/source/_static/locus_new_proj_set_en.jpg) To add a new layer press the “+” in the bottom right corner and in the menu select **Display file**. ![image](docs_data/source/_static/locus_layer_create_en.jpg)![image](docs_data/source/_static/locus_display_file_en.jpg) For the source select **Main directory**, then open the folder in your device and select the KML file. ![image](docs_data/source/_static/locus_source_folder_en.jpg)![image](docs_data/source/_static/locus_source_file_en.jpg) A layer created from this file will appear in the project. ![image](docs_data/source/_static/locus_file_added_en.jpg) After the layer is added open its context menu (three dots on the right) and press **Zoom to layer**. ![image](docs_data/source/_static/locus_zoom_to_layer_en.png) The data you added will be displayed on the project map. ![image](docs_data/source/_static/locus_result_en.jpg) * **[1]** Locus GIS application can be considered a free alternative for Locus MAP 4. The functionality of the apps is very similar. # log.html.md # Logging In NextGIS Mobile you can have a log of technical information about the functioning of the app. ## How to get useful logs 1. Turn on logging. 2. Repeat your actions until the issue arises again. 3. Send the logs to support. 4. Turn off logging. ## Enable logging Tap three dots in the top right corner and select “Settings” in the drop-down menu. ![image](docs_ngmobile/source/_static/mobile_log_menu_en.png) Then select “General” ![image](docs_ngmobile/source/_static/mobile_log_settings_en.png) In General Settings tick “Extended logs”. ![image](docs_ngmobile/source/_static/mobile_log_enabled_en.png) ## Send log or save as file You can also share your log. Open the contextual menu from the top panel and tap “Share log”. ![image](docs_ngmobile/source/_static/mobile_log_share_en.png) Next step is to select the app to send the log or save it to a cloud or to your device. ![image](docs_ngmobile/source/_static/mobile_log_openwith_en.png) # logout.html.md # How to switch accounts If you don’t see your orders on the Orders page, you may be logged in under a different account. Orders are associated with the email used during the purchase. You can have multiple NextGIS accounts, but the Orders page only displays the data purchased to the email that is the login of the current user. Click on the userpic in the top right corner. You’ll see the email address used for the current logged in user. ![image](docs_data/source/_static/check_user_en_2.png) If it is not the email you entered while purchasing the data, click **Sign in to another account**. You’ll be redirected to the sign in page. Enter the email address you used to purchase data. ![image](docs_data/source/_static/my_login_en.png) * If you don’t have an account with this email, click **Create account**. A confirmation code will be sent to your email to complete the registration. * If you already have an account with this email, click **Continue** and enter your password. * If you have NextGIS ID, but **don’t have a password**, because you’ve chosen to sign in with Google as you registered, and you’ve entered that @gmail.com email for your order, use the option “Sign in with Google”. On the [Orders](https://data.nextgis.com/en/orders/actual/) page you’ll find the list of all the data purchased using that email address. ![image](docs_data/source/_static/orders_correct_email_en.png) On this page you can download the data you ordered during the past six months or quickly repeat an older order. # logs.html.md # Gather logs in QGIS If a problem occurs, it’s important to have full information on what was going on in the program at the time. To provide the support team with this information you can use logs and debug messages. ## Log messages To view the Messages panel click on the ![grey speech bubble](docs_ngqgis/source/_static/mMessageLog.png) icon in the bottom right corner of the QGIS window. Messages are grouped into several tabs, some of them are general, others give more details about specific plugins. ![image](docs_ngqgis/source/_static/messages_panel_en.png) ## Capture outgoing requests in QGIS This functionality is used for debugging and in case of errors while working with Web services. The target action is the action that immediately precedes the error or incorrect app behavior. For example, in NextGIS Connect plugin it can be clicking on the “Add to QGIS” button. To get additional debug information: 1. Make sure that all related plugins are updated to the latest version and your app is updated to the latest LTR or higher. 2. Launch QGIS. 3. Activate “Debugging/Developpment Tools” panel. You can do it from the main menu: View –> Panels —> Debugging/Developpment Tools. 4. Go to the ![network_and_proxy](docs_ngqgis/source/_static/network_and_proxy.png) Nextwork Logger tab and click ![button with a red circle](docs_ngqgis/source/_static/mActionRecord.png) to turn on log recording. 5. Open the other tool panels that you need etc. 6. Reproduce the actions leading to the Target action (see above), but do not perform the Target action itself. 7. In the Debugging/Development Tools click ![red trash can](docs_ngqgis/source/_static/mActionDeleteSelected.png) to wipe the log clean. 8. Perform the Target action, wait for the error to reproduce. 9. Save the log by clicking ![mActionFileSave](docs_ngqgis/source/_static/mActionFileSave.png) in the Debugging/Development Tools panel and send it to [support@nextgis.com](mailto:support@nextgis.com). If it’s the first time you write about the problem, add detailed description ([How to make an efficient bug report](https://nextgis.com/bugreport/)). ![image](docs_ngqgis/source/_static/debug_panel_en.png) ## Capturing GDAL logs for QGIS on Windows Some logs, namely those of GDAL, cannot be recorded by the in-built debugging tools of QGIS. But you can record them if you run QGIS from the command prompt. 1. Open the folder that has qgis-bin.exe in it. The path is something like `c:\Program Files\QGIS 3.42.3\bin\qgis-bin.exe`. 2. In that folder open the Command Console. If you’re working in Total Commander, open the TC as administrator, find the folder, type cmd and press Enter. ![image](docs_ngqgis/source/_static/tc_cmd_en.png) If you don’t have Total Commander, go to **Start** - type `cmd` and select the **Command Prompt app - run as administrator**. In the app, go to the QGIS bin folder by typing cd+the path, for example: `cd c:\Program Files\QGIS 3.42.3\bin\` ![image](docs_ngqgis/source/_static/cmd_qgis_folder.png) 1. In the command prompt run: `set CPL_DEBUG=ON qgis-bin.exe >> log.txt 2>&1` It creates a file log.txt 1. Open QGIS and reproduce the error. 2. Send the **log.txt** file to [support@nextgis.com](mailto:support@nextgis.com). # look.html.md # Design customization The look of your Web GIS can be modified. You can customize logos, title, fonts, colors of the header, background, buttons and other elements. #### NOTE These settings can only be changed by an administrator. Apart from changing the Web GIS name and fonts, other design settings are only available on the [Premium](https://nextgis.com/pricing-base/) subscription plan. ## Web GIS name It’s the title displayed next to the logo on the top bar of the page. By default it’s the same as the Web GIS URL, but it can be changed. ![image](docs_ngweb/source/_static/webgis_name_default_en.png)![image](docs_ngweb/source/_static/webgis_name_custom_en.png) ## Font management NestGIS Web allows to upload custom fonts in addition to system ones. To open the font management page, go to the Main menu, open the Control panel and in the Settings section select “Font management”. If no additional fonts have been uploaded, the list is empty. To view the pre-installed fonts, tick “Show system fonts”. ![image](docs_ngweb/source/_static/font_manag_en.png) On this page you can view the list of system and custom fonts, upload or delete custom fonts. ### How to add a font Users can add custom fonts. #### IMPORTANT The font must be used as labels in the appropriate QGIS style for the layer to which you want to apply this font. More about [labels](https://docs.qgis.org/3.34/en/docs/training_manual/vector_classification/label_tool.html) in QGIS. Technical requirements: * TTF or OTF format; * File size up to 10MB; * Filename only has basic latin characters, numbers, underscore (_) and dash (-). To add a custom font, on the Font management page press **Upload** and select the font file from your device. ![image](docs_ngweb/source/_static/font_upload_en.png) To install the font the Web GIS needs to restart. Make sure there are no ongoing requests, restarting Web GIS aborts them. ![image](docs_ngweb/source/_static/font_upload_refresh_alert_en.png) Press **Ok** to complete font uploading. After the installation is complete, the new font will appear in the list, marked as “Custom”. ![image](docs_ngweb/source/_static/font_upload_result_en.png) See the process in our video: Watch on [youtube](https://youtu.be/4TFxD9hz9i8?si=jYtMc9kM1h4B_8hV). ### How to delete a custom font Only custom fonts added by users can be deleted. To delete a font, go to Font management page of the Control panel. Tick the font you’d like to delete. Press **Delete**. While deleting a font, as while installing one, Web GIS needs to be restarted. ![image](docs_ngweb/source/_static/font_delete_en.png) ## Upload a logo You can change the upper-left logo (present on all pages), you can’t change the Web map logo (lower right). To upload a logo choose Custom logo on control panel (see item 1 in [Fig. 283.](admin_interface.md#admin-index-pic)) and in opened window upload a file in PNG format with height up to 45 px, width up to 200 px. Then press “Save”. ## Customize the design with CSS You can modify the look of NextGIS Web using CSS. From the main menu (see [Fig. 283.](admin_interface.md#admin-index-pic)) open the Control Panel (see [Fig. 284.](admin_interface.md#ngweb-main-page-main-menu-pic)). In the Control Panel (see [Fig. 290.](admin_interface.md#admin-control-panel)) select **Custom CSS** in the Settings section. Here you can enter your own [CSS](../../glossary.md#term-CSS) rules. They will be used throughout your Web GIS on all its pages. ## Custom CSS examples ### Change main Web GIS color Affects header, symbols in the header, buttons, field contours, links highlighted on hover etc. ```css :root { --primary: red } ``` ### Change main font color Affects menu, name and parameters of displayed resource group etc. ```css :root { --text-base: #ff6600 } ``` ### Change additional font color Affects paths for the displayed resource, parameters etc. ```css :root { --text-secondary: rgb(40 200 40 / .8) } ``` ### Change selection color By default, the selected feature is highlighted in yellow. ```css :root { --ngw-webmap-selection-color: red; } ``` ## Hide resource export To hide the ability to export data from Web GIS from certain categories of users, you need to: * Go to Control Panel -> Settings -> Resource export * Select the type of users that **will be able** to export data (only administrators / users with [Data:Read](Data:Read) or [Data:Modify](Data:Modify) permissions) Users who do not fit the selected list will not see the “Save as” link in the interface. ![image](docs_ngweb/source/_static/admin_system_res_export_en_2.png)![image](docs_ngweb/source/_static/action_panel_export_en.png) The categories of users you can select to have access to “Save as” action: - administrators or users with the permission to: - Read data - Modify data All other users will not be able to save data from the Web GIS interface. More on how to set up permissions to read and modify data [here](https://docs.nextgis.com/docs_ngcom/source/permissions.html). #### NOTE This setting does not in any way affect the ability to receive data through the [REST API](https://docs.nextgis.com/docs_ngweb_dev/doc/developer/toc.html) in accordance with the set [permissions](https://docs.nextgis.com/docs_ngweb/source/permissions.html) to them. ## How to change the homepage address By default the starting page of your Web GIS is the main resource group page (`/resource/0`). The starting page is the page that gets open first wherenever some visit your Web GIS or clicks on the logo in top left corver. You can change which page will be opened first to any other resource of the system. For example, if you’d like your visitors to always start from a map, you can change this setting to this map. 1. Sign in as the user with administrative privileges and open Control panel, then select Home path. 2. Enter path to the resource page that should be opened first when you Web GIS is accessed. For example: `/resource/644/display` After making this setting visiting `http://yourwebgis.nextgis.com` will open not the main resource contents page, but the page you’ve set up. To access main resource content page after this setting you will need to go directly to: `http://yourwebgis.nextgis.com/resource/0`. # lookup.html.md # How to connect a Lookup table to a vector layer A Lookup table can be connected to an attribute field of a vector layer. While editing the layer you will be able to select the value for the attribute from a dropdown menu. 1. Create a lookup table using key-value format ([how to do it](https://docs.nextgis.com/docs_ngweb/source/create_other.html#ngw-create-lookup-table)). ![image](docs_ngcom/source/_static/create_lookup_table_en.png) 1. Open the Edit dialog for the vector layer. In the **Attributes** tab press the downwards arrow in the field of the *Lookup table* column corresponding to the attribute you want to connect it to. ![image](docs_ngcom/source/_static/lookup_table_field_en_2.png) 1. In the opened dialog select the lookup table. ![image](docs_ngcom/source/_static/lookup_table_select_en_2.png) Press **Save**. To **delete** a connected lookup table, click on the cross next to it in the corresponding field. #### NOTE See step by step tutorial in our video. ## How to use a lookup table for layer editing in NextGIS Web A lookup table connected to a layer can be used for editing the vector layer in the web application. To select an attribute value from the list, open the Feature table on a separate tab or on a Web Map. Select the feature and press **Edit**. ![image](docs_ngcom/source/_static/attr_table_edit_en.png) In the opened dialog the values included in the lookup table connected to the field will be available as a dropdown menu. Select the value and press **Save**. ![image](docs_ngcom/source/_static/attr_table_lookup_dropdown_en.png) ## How to use a lookup table in QGIS NextGIS Connect allows you to use lookup tables while editing layers in QGIS. 1. Connect to the Web GIS in NextGIS Connect. 2. Create WFS service for the layer. 3. Open the attribute table of the layer. Enter the edit mode. 4. Click on the field of the attribute that has a lookup table connected to it. Then click again on the arrow at the end of the field to open the dropdown menu. ![image](docs_ngcom/source/_static/attr_table_qgis_lookup_en.png) # lunkwill.html.md # Long-running API requests Some HTTP API requests to NextGIS Web, such as raster layer creation, need processing a lot of data. Thus, they may require some time to proceed. But HTTP isn’t designed to handle requests which last for minutes or hours. The `lunkwill` extension helps to cope with this kind of requests. The extension acts as a proxy between an uWSGI application and a client and allows to avoid long-lasting connections while a request proceeds. It requires the proprietary `lunkwill` add-on which integrates into uWSGI stack as a sidecar mule. A typical conversation with `lunkwill` extension enabled looks like the following: ```text > POST /api/resource/ > X-Lunkwill: suggest > > (JSON payload) < 201 Created < Content-Type: application/vnd.lunkwill.request-summary+json; charset=utf-8 < < { < "id": "92f6317d-c2e9-4c47-a6dd-b87898d9f8f4", < "status": "processing", < "delay_ms": 50, < "retry_ms": 2000 < } ``` The client adds `X-Lunkwill` HTTP header with `suggest` value, which indicates that the client supports the extension. The extension intercepts requests with the header and returns its ID and status with the specific MIME-type `application/vnd.lunkwill.request-summary+json`. If there’s no `lunkwill` extension, the header will be ignored and the request will be processed as usual. Then the client should ask for a request summary in `delay_ms` microseconds and the server will return the current status. And repeat until status changes. If there aren’t such summary requests, the server will eventually cancel the request. ```text > GET /api/lunkwill/92f6317d-c2e9-4c47-a6dd-b87898d9f8f4/summary < 200 OK < Content-Type: application/vnd.lunkwill.request-summary+json; charset=utf-8 < < { < "id": "92f6317d-c2e9-4c47-a6dd-b87898d9f8f4", < "status": "processing", < "delay_ms": 200, < "retry_ms": 2000 < } ``` Besides `delay_ms` attribute, the server advertises `retry_ms` attribute which should be used as a retry delay if a summary request fails (network connectivity problems etc.). As the request completes, it’ll have `ready` status: ```text > GET /api/lunkwill/92f6317d-c2e9-4c47-a6dd-b87898d9f8f4/summary < 200 OK < Content-Type: application/vnd.lunkwill.request-summary+json; charset=utf-8 < < { < "id": "92f6317d-c2e9-4c47-a6dd-b87898d9f8f4", < "status": "ready", < "delay_ms": 4000, < "retry_ms": 2000 < } ``` After that the client must request the response: ```text > GET /api/lunkwill/92f6317d-c2e9-4c47-a6dd-b87898d9f8f4/response < 201 OK < Content-Type: application/json < < { < "id": 82, < "parent": { < "id": 0 < } < } ``` This response matches the original NextGIS Web response as if it was processed without `lunkwill` extension. # main.html.md # User interface (UI) There are 4 major elements of NextGIS Mobile UI: * Main screen * Layers tree panel * Features table * Settings dialogue UI is designed in accordance with [Google Material design](http://www.google.com/design/spec/material-design/introduction.html) guidelines. ## Main screen Main screen is shown on [Fig. 943.](#ngmobile-main-activity-pic-1). ![image](docs_ngmobile/source/_static/ngmobile_mainscreen_1.png) The number of buttons in top toolbar depends on your device screen size. If the buttons don’t fit into the toolbar they are moved to the contextual menu (item 5 in [Fig. 943.](#ngmobile-main-activity-pic-1)). **Top toolbar** contains the following buttons: * Show my location * Load or refresh geodata * Start new track * Settings * Help **Status info panel** (item 9 in [Fig. 943.](#ngmobile-main-activity-pic-1)) can be shown at the bottom of the Main screen (if it is activated in the Settings - Map - Show status info panel). Status info panel shows (if there is the fixed location): * Device coordinates (latitude and longitude); * Positioning signal source (mobile networks/Wi-Fi or satellite) and number of captured satellites (if positioning is carried out with help of [GPS](../../glossary.md#term-GPS)/[GLONASS](../../glossary.md#term-GLONASS)); * Device altitude (meters); * Device speed (kmph) Depending on the size of the screen Status info panel can occupy one or two rows. A map (item 7 in [Fig. 943.](#ngmobile-main-activity-pic-1)) is a set of raster and vector layers. The order and the visibility of layers are under control of layers tree ([Layers tree](#ngmobile-layer-tree)). After a long hold of your finger on the vector layer’s geometry the map window turns to the select mode. ## Layers tree Layers tree panel is designed to display the content of a map and to control visibility and hierarchy of map layers. Additional operations with layers are available from a separate layer contextual menu. Layers tree panel is shown on [Fig. 944.](#ngmobile-layer-tree-pic). ![image](docs_ngmobile/source/_static/ngmobile_layer_tree_eng_new.png) To change the hierarchy of map layers long-press the layer which is to be moved up or down. Layers tree panel will switch to Edit mode. Keep pressing and move the selected layer to its new position. For turning layer visibility on/off tap on Layer visibility button (item 3 in [Fig. 944.](#ngmobile-layer-tree-pic)). “Add geodata” button (item 4 in [Fig. 944.](#ngmobile-layer-tree-pic)) allows you to create vector layers and import vector and raster layers from Android local storage, [QuickMapServices catalog](https://qms.nextgis.com/), [nextgis.com](https://my.nextgis.com/signup/?next=/webgis/) or [NextGIS Web](http://nextgis.com/nextgis-web/). This button contains the next menu ([Fig. 945.](#options-menu-new-layer)): * Create layer; * Open local; * Add geoservice; * Add from NextGIS. ![image](docs_ngmobile/source/_static/options_menu_new_layer.png) By using “Open local” menu item you can upload [geodata](../../glossary.md#term-geodata) from local storage in one of the following formats: * [GeoJSON](../../glossary.md#term-GeoJSON) file; * ZIP file with cached tiles; * \*.ngrc file * \*.ngfp file. More information about geodata upload can be found in “[Adding layers](load_geodata.md#ngmobile-load-geodata)” section. Layer contextual menu depends on layer’s type (whether it is vector or raster layer). When you tap the Contextual menu button (item 5 in [Fig. 944.](#ngmobile-layer-tree-pic)) contextual menu items pop up as shown by item 6 in [Fig. 944.](#ngmobile-layer-tree-pic) * Zoom to extent * Features table * Share * Send to NextGIS * Edit * Delete * Settings #### WARNING By pressing “Delete” you not only remove layer from the map but also erase all its data from the local storage. ## Features table Features table is designed to show and manage the contents of each vector layer in table format. To open Features table activate Layers tree panel and tap on the Contextual menu button next to the vector layer name (item 5 in [Fig. 944.](#ngmobile-layer-tree-pic)). This will pop up the contextual menu items as shown by item 6 in [Fig. 944.](#ngmobile-layer-tree-pic). There you need to select “Features table”. Depending on the screen size the panel could occupy the whole screen or just the right side (in this case there is a map with a highlighted geometry of the current attributes on the left side). Features table opens as shown in [Fig. 946.](#ngmobile-attribute-table-pic) below. ![image](docs_ngmobile/source/_static/attribute_table_new.png) If you tap any record (row) in the table, the Features table toolbar appears at the bottom of the screen. This toolbar allows to manage features as shown below in [Fig. 947.](#ngmobile-attribute-table-toolbar-pic). ![image](docs_ngmobile/source/_static/attribute_table_toolbar_new.png) You can open the standard Features table editing form as shown in [Fig. 991.](editing.md#ngmobile-input-form-attributes-pic) by selecting “Open Features table editing form” (see item 8 in [Fig. 947.](#ngmobile-attribute-table-toolbar-pic)) #### WARNING If you tap on “Delete” button (see item 7 in [Fig. 947.](#ngmobile-attribute-table-toolbar-pic)), the system will delete the selected feature immediately. You will be able to undo the removal, but if undo action is not applied in 5 seconds after removal, the feature gets deleted permanently. You can search by attribute values. See how it works in a video: Watch on [youtube](https://youtu.be/9zKwvKlQWyg?si=DVXos2s3V1Jn4-Oe). ## Useful features From the Main screen itself you can access a couple of features useful in the field. ### Show my location To know your current location, just tap on the “Show my location” button (see item 3 in [Fig. 943.](#ngmobile-main-activity-pic-1) above). This will show your current location on the map screen with a marker. If your Status info panel (see item 9 in [Fig. 943.](#ngmobile-main-activity-pic-1) above) is switched on via appropriate Map settings (see [Fig. 951.](settings.md#ngmobile-settings-map-pic)) you’ll also be able to view the relevant information there. #### NOTE Your “Location” settings must be switched ON in your Android mobile settings. ### Measure distance and area It is possible to measure the distance between two points directly on the map screen. Just tap on the Measuring button on Map screen (see item 6 in [Fig. 943.](#ngmobile-main-activity-pic-1) above). Tap on your starting point (a new point in Edit mode will appear on the screen). Then tap on your finishing point (a second point in Edit mode and line between the points will appear on the screen). The distance between two points will be shown in Top toolbar. See [Fig. 948.](#ngmobile-measure-distance-pic) below for illustration. ![image](docs_ngmobile/source/_static/measure_distance.png) Position of any point may be edited by tapping on it and dragging it to the correct location. You can add additional points to measure distance of angled lines and smooth curves, as well as measure areas of the formed polygons. To exit Measure mode tap the blue tick button in the corner of the screen (see item 7 in [Fig. 948.](#ngmobile-measure-distance-pic)). #### NOTE To use this feature “Show measuring button” checkbox must be switched ON in Map settings (see [Fig. 951.](settings.md#ngmobile-settings-map-pic)). ### View feature information Make a short tap on a feature and a tool bar will appear at the bottom on the screen. The only active option will be “info” (i in a circle). Press it to view the attributes and attachments of the feature. You can download and view photos previously attached to the feature and stored in the cloud. ![image](docs_ngmobile/source/_static/ngm_view_photo_en.jpg) If there are several features at the point you tapped, a list to choose from will appear. # main.html.md # NextGIS Tracker hub for developers The endpoint for tracker API is `track.nextgis.com`. ## Send location packet To send track points to NextGIS tracker hub execute following request: ### POST /ng-mobile/(*string:* guid)/packet Post track points request * **Parameters:** * **guid** – tracker identifier * **Request Headers:** * [Accept](https://www.rfc-editor.org/rfc/rfc7231#section-5.3.2) – must be `*/*` * ** ## Create resource group In the top menu of the NextGIS Connect plugin you’ll find a “Create group” button. A new group will be created: * If a resource group is selected in the Connect panel - in that group; * If other type of resources but a group is selected - in the closest parent group * If no resource is selected - in the main resource group. ![Create new group](docs_ngconnect/source/_static/create_group_en.png) ## Create Web Map from a layer * In NextGIS Connect panel select from the resource tree the Vector layer which you want to display on a Web Map; * In the layer’s context menu select **Create Web Map**. A Web Map with the name “layer_name-map” will be created in the same resource group. A QGIS style will be created for the layer and added to Web Map. The map’s initial extent is set by the layer. ## Create empty vector layer With NextGIS Connect plugin you can create a new vector layer in your Web GIS without uploading data. In the Connect panel select the resource group inside which you want to create a new layer. In the menu bar select Layer ‣ Create layer ‣ New NextGIS Web vector layer. ![image](docs_ngconnect/source/_static/ngc_create_ngw_layer_en.png) In the opened dialog enter the parameters of the new layer: ![image](docs_ngconnect/source/_static/ngc_create_ngw_layer_set_en.png) * Layer name * Geometry type * Option to include Z dimension * Layer fields: enter the display name and keyname, select field type, then press **Add to Field List**. Available field parameters: > * Feature table - the contents of the field will be displayed in the identification panel; > * Text search - enable/disable text search in the values of the attribute; > * Label attribute - values from this field will be used as feature labels on the map. * You can also choose to add the layer to the project or just create in in the Web GIS. Also while creating a layer you can turn on [versioning](https://docs.nextgis.com/docs_ngweb/source/version.html#vers-qgis) for it. Go to the second tab, “Settings”. ![image](docs_ngconnect/source/_static/ngc_create_ngw_layer_set_version_en.png) To complete the process, pess **Create**. The new layer will appear in the resource tree of the Connect panel as well as the QGIS Layers panel if the “Add layer to project” option was ticked. On Free plan you can create up to 15 layers. If you need more, you can [upgrade to Premium](https://my.nextgis.com/subscription/) in your NextGIS ID account. ## Create service NextGIS Connect plugin allows to quickly publish vector data using standard protocols [WFS](../../glossary.md#term-WFS), [WMS](../../glossary.md#term-WMS) and OGC. Raster data can also be published using [WMS](../../glossary.md#term-WMS). ### Create WFS service It’s possible due to the quick creation of [WFS service](../../docs_ngcom/source/data_services.md#ngcom-wfs-service) option in NextGIS Connect: * Select in NextGIS Connect Resources panel Vector layer which you want to publish using WFS protocol; ![image](docs_ngconnect/source/_static/NGConnect_wfs_select_en.png) * Select **Create WFS service** in layer context menu; ![image](docs_ngconnect/source/_static/NGConnect_wfs_context_en.png) * In the opened dialog window set the number of layer’s features to be published via WFS service by changing the value of the field **The number of objects returned by default**; ![image](docs_ngconnect/source/_static/NGConnect_wfs_number_en.png) * If WFS service is created successfully you’ll see it in the relevant Resource group. The Vector layer is already connected to it. ![image](docs_ngconnect/source/_static/NGConnect_wfs_result_en.png) #### NOTE You can edit the settings of WFS service (including its name, published layers and their settings) in the user interface of your Web GIS. ### Create OGC API - Features service NextGIS Connect plugin enables a fast publication of Vector layers from your Web GIS using standard OGC API - Features protocol. * Select in NextGIS Connect Resources panel a **Vector layer** from your Web GIS resource tree which you want to publish using OGCF protocol; ![image](docs_ngconnect/source/_static/NGConnect_ogc_select_en.png) * Select **Create OGC API - Features service** in layer context menu; ![image](docs_ngconnect/source/_static/NGConnect_ogc_context_en.png) * In the opened dialog window set the number of layer’s features to be published via OGCF service by changing the value of the field **The number of objects returned by default**; ![image](docs_ngconnect/source/_static/NGConnect_ogc_number_en.png) * If OGCF service is created successfully you’ll see it in the relevant Resource group. The Vector layer is already connected to it. ![image](docs_ngconnect/source/_static/NGConnect_ogc_result_en.png) ### Create WMS service The process is similar to creation of WFS service (see above): * In the desktop application (QGIS) in the resource Web GIS tree of module NextGIS Connect select **Vector layer**, **Raster layer** or **QGIS style** that you want to publish via the WMS protocol; ![image](docs_ngconnect/source/_static/NGConnect_wfs_select_en.png) * Select **Create WMS Service** in the context menu of the layer; ![image](docs_ngconnect/source/_static/NGConnect_wms_context_en.png) * In the dialog that opens select a layer style for publishing the WMS Service; ![image](docs_ngconnect/source/_static/NGConnect_wms_style_en.png) * If the WMS Service has been created successfully, then a new WMS Service will appear in the corresponding Resource Group, to which your Vector Layer is already connected. ![image](docs_ngconnect/source/_static/NGConnect_wms_result_en.png) ## Duplicate resource With NG Connect you can copy an existing Web GIS layer. This option is available for Vector and Raster layers. * To make a copy of a layer, select it in the Connect panel, then in the context menu click **Duplicate resource**. * In the pop-up window confirm copying. Copy will be created in the same group. The layer’s style will also be duplicated. ![image](docs_ngconnect/source/_static/NGConnect_double_en.png) ## Delete resource With NextGIS Connect you can quickly create and delete any resource in your Web GIS. * In the NextGIS Connect panel select the resource you wish to delete; * In the context menu select **Delete**; * If the resource is deleted successfully, it disappears from the Web GIS layer tree. # map3d.html.md # How to add a layer in AutoCAD Map 3D * [Order data](https://data.nextgis.com/en/) for your area of interest in GeoPackage (QGIS) format. * Go to the [orders](https://data.nextgis.com/en/orders/actual/) page and download the archive when it’s complete. * **Unpack** the archive. * Launch AutoCAD Map 3D, select the “Map Setup” tab > “Assign” (Coordinate system), in pop-up window in the search bar enter the EPSG code - 4326 and select CRS:84 coordinate system from the suggested results. ![image](docs_data/source/_static/map3d1.png) * Select the tab “Insert” > “Map Import”. In pop-up window from the drop-down list select the correct format “Files of type” - GeoPackage (\*.gpkg) and choose the layer of interest. ![image](docs_data/source/_static/map3d2.png) * The layer will be added to the AutoCAD Map 3D workspace. ![image](docs_data/source/_static/map3d3.png) # map_tools.html.md # Basic operations This section contains a list of the main functions available to the data collector in the NextGIS Collector mobile application. At this stage, the user has already passed auth in the application and selected a project configured by administrator for data collection. ## Add a point There are two ways to add a point in the application: 1. Mark it on the map (using a basemap, raster image, etc.) 2. Using the device’s GPS coordinates ![image](docs_collector/source/_static/ngcol_add_point_en.png)![image](docs_collector/source/_static/ngcol_map_gps.png) To add a point **using the map** you need to indicate its location with the cursor. You can move the cursor automatically to the center of the screen (red cross) or your current location (blue circle) using the buttons in the bottom panel. After marking the point press the floppy disk icon in the top right corner to save. ![image](docs_collector/source/_static/ngcol_save_location_en.png) On the next screen you need to set attributive info and, if necessary, attach photos. Then confirm adding a point by clicking on the checkmark on the top panel. ![image](docs_collector/source/_static/ngcol_add_photo.png)![image](docs_collector/source/_static/ngcol_point_attr_en.png) If you choose to add a point **by GPS**, you will be redirected straight to the attribute screen. Add attribute information and tap the tick in the top panel to save the new point. ![image](docs_collector/source/_static/ngcol_attr_gps.png) A data collection project may have an extent set up. In this case, if the point falls outside the project boundary (due to geolocation error), a warning will appear. ![image](docs_collector/source/_static/ngcol_gps_warning_en.png) The point will still be added to the layer. ## Edit a point on the map The app allows changing: 1. Point locations 2. Point’s attributes / attachments To edit a point: 1. Select a point by clicking on the map. The toolbar will open on the right side of the screen. * Upper - change location, * lower - change attributes. ![image](docs_collector/source/_static/ngcol_edit_point_en.png) 1. Change the location of the point as needed. There are 3 ways to do this: - Move the cursor on the map; - Use the panel at the bottom of the screen - automatically position the cursor either in the center of the map, or your current location. ![image](docs_collector/source/_static/ngcol_edit_location_en.png) 1. Edit attribute information and attachments as needed. 2. Press floppy disc icon to save changes. ## Add a line To add a line to one of the layers, first open the map and tap the plus icon. Then select a layer containing lines. ![image](docs_collector/source/_static/ngcoll_add_polygon_en.png) Select the layer to add a line to and the way to use for its creation - using map or GPS. ![image](docs_collector/source/_static/ngcol_map_gps_line_en.png) You will be redirected to the map again. A line will appear with a cursor at its top left corner. ![image](docs_collector/source/_static/ngcol_new_line_en.png) To modify the shape of the line use the cursor to select its anchor points one at a time and drag them to the desired location. ![image](docs_collector/source/_static/ngcol_line_edit_en.png) To safe the new line, press the floppy disk icon in the top right corner. ![image](docs_collector/source/_static/ngcol_line_save_en.png) In the next screen enter the necessary attributes and tap the tick in the top panel to complete creating the line. ![image](docs_collector/source/_static/ngcol_line_attr_en.png) Newly created line will be visible in the app and on a Web Map in the Web GIS that has this layer added. ![image](docs_collector/source/_static/ngcol_line_on_webmap_en.png) #### NOTE Make sure the basemap is below the line layer and does not obscure it. ## Editing lines To modify a line, tap it. It will be outlined in blue and two icons will appear to the right. * Top one - editing the shape of the line (select an apex with the cursor and drag it). * Bottom one - editing the attributes. ![image](docs_collector/source/_static/ngcol_edit_line_en.png)![image](docs_collector/source/_static/ngcol_line_editing_tools_en.png) ## Add a polygon To add a polygon to one of the layers, first open the map and tap the plus icon. Then select a layer containing polygons. ![image](docs_collector/source/_static/ngcoll_add_polygon_en.png) Select the layer to add a polygon to and the way to use for its creation - using map or GPS. ![image](docs_collector/source/_static/ngcol_map_gps_polygon_en.png) You will be redirected to the map again. A triangle will appear with a cursor at its top left corner. ![image](docs_collector/source/_static/ngcol_new_polygon_en.png) To modify the shape of the polygon select one apex at a time with the cursor and drag it to the desired location. ![image](docs_collector/source/_static/ngcol_polygon_edit_en.png) To safe the new polygon, press the floppy disk icon in the top right corner. ![image](docs_collector/source/_static/ngcol_polygon_save_en.png) In the next screen enter the necessary attributes and tap the tick in the top panel to complete creating the polygon. ![image](docs_collector/source/_static/ngcol_polygon_ref_en.png) Newly created polygon will be visible in the app and on a Web Map in the Web GIS that has this layer added. ![image](docs_collector/source/_static/ngcol_polygon_complete_en.png)![image](docs_collector/source/_static/ngcol_polygon_on_webmap_en.png) #### NOTE Make sure the basemap is below the polygon layer and does not obscure it. ## Editing polygons To modify a polygon, tap it. It will be outlined in blue and two icons will appear to the right. * Upper one - editing the shape of the polygon (select an apex with the cursor and drag it). * Lower one - editing the attributes. ![image](docs_collector/source/_static/ngcol_polygon_editing_tools_en.png)![image](docs_collector/source/_static/ngcol_polygon_editing_tools_geom_en.png) ## Zoom and current location The data collector has the ability to control the current scale of the map. To do this, on the left side of the map there are items for zooming in and out (+/-). In the same block, you can set the map extent by the current location of the device. ![image](docs_collector/source/_static/ngcol_scale_en.png) ## Tracks NextGIS Collector allows you to record tracks. For each point of the track, the following information is recorded: date, time, speed (km/h), height (m), course (bearing i.e. the horizontal direction of travel of this device in the range between 0 and 360 counting clockwise from the North), number of satellites and HDOP. The track control icon ![with a walking figure](docs_collector/source/_static/button_track.png) is on the top panel. ![image](docs_collector/source/_static/ngc_track_icon_en.png)![image](docs_collector/source/_static/ngc_start_track_en.png) To do this, the app must be given permission to write data in the background in the device settings. ![image](docs_collector/source/_static/ngc_permissions_backgr1_en.png)![image](docs_collector/source/_static/ngc_permissions_backgr2_en.png) User-recorded tracks can be shown / hidden, changed digital palette, exported or deleted. ![image](docs_collector/source/_static/ngc_track_list_en.png) Tracks can also be [viewed on a Web Map](https://docs.nextgis.com/docs_ngcom/source/tracking.html#tracking-web-map). ## Synchronization To force synchronization of data with Web GIS, you can use the ![cloud](docs_collector/source/_static/button_sync.png) icon on the top panel. ![image](docs_collector/source/_static/ngc_sync_en.png) # mapinfo.html.md # How to open your project in MapInfo * [Order data](https://data.nextgis.com/en/) for your area of interest in MapInfo TAB format. * Go to the [orders](https://data.nextgis.com/en/orders/actual/) page and download the archive when it’s complete. * **Unpack** the archive. * Launch MapInfo, press “Other workspaces” in the start window or select `Home ‣ Open ‣ Open workspace` and choose a .wor file. ![image](docs_data/source/_static/open_mapinfo_menu_en.png) * Your project is opened in the program. ![image](docs_data/source/_static/opened_mapinfo_en.png) # mapinfo2qgis.html.md # MapInfo ready for QGIS Despite that QGIS is able to work with MapInfo TAB without any preliminary transformation, still, there is an issue with rendering style of a layer. This tool solves named problem as it converts TAB into GeoPackage plus QML style files. Inputs: * Source file - ZIP-archive with MapInfo TAB. If archive also includes WOR file, it should be in the root of the archive, do not add it to any directory. Output: * ZIP-archive with GeoPackage and QML style files for each layer. Launch the tool: [https://toolbox.nextgis.com/t/mapinfo2qgis](https://toolbox.nextgis.com/t/mapinfo2qgis) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # mapinfo_raster.html.md # How to open raster data in MapInfo Raster data in Elevation, Satellite and Landcover datasets is Int16 which is supported by MapInfo 15.2 and up. Hillshade has Byte format so can also be opened in MapInfo 15.0. To open a raster file click **Open**, then select the file type “Raster image” and select the file(s). ![image](docs_data/source/_static/mapinfo_open_raster_en.png)![image](docs_data/source/_static/mapinfo_opened_dem.png) # mappy.html.md # Vertical map for Social Media Generate map image prepared for posting in social networks like Instagram and TikTok. Map is designed for simplicity: it has vertical aspect ratio and does not have labels. You will be able to overlay markers and labels in any image editor or while posting on social media. Inputs: * Map Extent (bbox). Comma-separated bounding box in geographic coordinates: xmin,ymin,xmax,ymax (S,W,N,E), example: `30.1,54.9,30.9,55.1'`. Outputs: * Output image in WEBP format. Launch the tool: [https://toolbox.nextgis.com/t/mappy](https://toolbox.nextgis.com/t/mappy) Example: ![image](docs_toolbox/source/_static/mappy_result_en.webp) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. #### SEE ALSO * [Map from OSM to PDF for printing](https://toolbox.nextgis.com/t/pdf2data?from-related-tools=1) * [QGIS project to PDF](https://toolbox.nextgis.com/t/qgis2pdf?from-related-tools=1) # mapservertemplates.html.md # Map styles examples If you wish to edit the templates, see the use of the [tags](https://docs.nextgis.com/docs_ngweb/source/mapservertemplates.html#ngw-mapserver-tags) below. ## Polygon layer with scale range and labels ```xml a_hsnmbr ``` ## White circle marker ```xml ``` ## A line displayed with small black circles ```xml ``` ## Filtering ```xml NAME PLACE "city" "town" "village" "hamlet" "locality" '' ``` ## Polygon layer with a classification by field values and labels ```xml NAME (([num] gt 18) and ([num] le 26.1)) (([num] gt 26.1) and ([num] le 28.1)) (([num] gt 28.1) and ([num] le 30)) ``` ## OSM settlement-point ```xml NAME PLACE "city" "town" "village" "hamlet" "locality" '' ``` ## OSM highway-lowzoom Public roads (small roads are in a separate style). Colorscheme from openstreetmap.de ![image](docs_ngweb/source/_static/mastyles_osm-highway-lowzoom_en.png) ```xml Highway Name "motorway" "motorway_link" "trunk" "trunk_link" "primary" "primary_link" "secondary" "secondary_link" "tertiary" "tertiary_link" "unclassified" "residential" "living_street" ``` ## OSM highway-maxzoom Access roads, service roads, dirt roads, pedestrian ways ![image](docs_ngweb/source/_static/mastyles_osm-highway-highzoom.png) ```xml Highway Name "service" "footway" "pedestrian" "path" "track" ``` ## OSM railway-line ```xml RAILWAY "abandoned" "razed" "construction" "crossing" "light_rail" "narrow_gauge" "platform" "rail" "siding" "subway" "tram" ``` ## OSM water-line ```xml Waterway name "river" "canal" "stream" "drain" ``` ## OSM water-polygon ```xml NAME NATURAL "water" "wetland" ``` ## OSM landuse-polygon NextGIS Web styles support for different hatched (see [Fig. 440.](#ngweb-mapstyle-hatch-demo-pic)). ```xml OSM_ID LANDUSE "residential" "grass" "commercial" "industrial" "cemetery" ``` ## Individual feature styles from field It is possible to set up individual style for every vector feature. First create a field that contains style description in ORG Style format. For example, ```bash ogr2ogr -f GeoJSON -sql "select *, OGR_STYLE from Australia" australia.geojson Australia.TAB ``` Learn more on ORG Style on the [Feature Style Specification](https://gdal.org/user/ogr_feature_style.html) page. Now that you have a vector layer with OGR_STYLE field containing the style for the feature, add the following NextGIS Web Mapserver: ```xml OGR_STYLE default ``` ## Map style tags To change a style or to create a new one it is recommended you take a code of some existing style and then modify it, so there is no need to start creating a style from scratch. ### Common tags * - the color of a fill or a line * - outline color * 0.5 - a width of a line or an outline of the polygon. * 3 - outline width * 1 - do not display a feature if the map scale is larger than value * 100000 - do not display a feature is the map scale is less than value ### Markers ![image](docs_ngweb/source/_static/mapstyle_hatch_demo.png) * std:circle - marker type * std:rectangle - rectangle * std:circle - circle * std:diamond - diamong * std:triangle - triangle with peak at the top * std:triangle-equilateral - triangle with peak at the bottom * std:star - five-pointed star * std:pentagon - pentagon * std:arrow - arrow (by default is top oriented. Rotation could be set using a tag 45) * std:cross - + * std:xcross - x * std:line - short line * std:hatch - long line texture These markers could be used to draw a line, to fill a polygon or to display points. Also they may be combined to a complex symbol: ```xml "industrial" ``` * 2 - marker size in pixels ### Line features * 10 - a step size for dashed line (used with std:circle) * 8 - width of line in pixels * PLACE - filter by attribute PLACE. Also see example in #Filtering. The following operators are supported: * attribute name * != * >= * <= * < * > * =\* - case insensitive string comparison. * = * lt - less than * gt - greater than * ge - greater or equal * le - less or equal * eq - equal * ne - not equal * and - AND * && - AND * or - OR * || - OR * round - line draw at corners * round - line draw at the beginning and at the end ![image](docs_ngweb/source/_static/admin_mapstyles_linecap.png) * 2.5 4.5 - dash template * - marker rotation angle. Hatch could also be rotated. ### Labels * a_hsnmbr - attribute name for labelling. * 100 - do not show a label if a scale is larger than 1:1000 * 100000 - do not show a label if a scale is smaller than1:100000 * LABELCACHE [on|off] - specifies whether labels should be drawn as the features for this layer are drawn, or whether they should be cached and drawn after all layers have been drawn. Default is on. Label overlap removal, auto placement etc… are only available when the label cache is active. * ur - label offset direction. * ur - ↗ up and right (recommended). * ul - ↖ * uc - ↑ * cl - ← * cc - centered * cr - → * ll - ↙ * lc - ↓ * lr - ↘ * auto ### Some other useful tags * MAXGEOWIDTH - Maximum width, in the map’s geographic units, at which this LAYER is drawn. If MAXSCALEDENOM is also specified then MAXSCALEDENOM will be used instead. * MINGEOWIDTH - Minimum width, in the map’s geographic units, at which this LAYER is drawn. If MINSCALEDENOM is also specified then MINSCALEDENOM will be used instead. * OFFSITE - Sets the color index to treat as transparent for raster layers. * OPACITY [integer|alpha] - opacity of the layer * SIZEUNITS [feet|inches|kilometers|meters|miles|nauticalmiles|pixels] - Sets the unit of CLASS object SIZE values (default is pixels). Useful for simulating buffering. * SYMBOLSCALEDENOM [double] - The scale at which symbols and/or text appear full size. This allows for dynamic scaling of objects based on the scale of the map. If not set then this layer will always appear at the same size. Scaling only takes place within the limits of MINSIZE and MAXSIZE as described above. Scale is given as the denominator of the actual scale fraction, for example for a map at a scale of 1:24,000 use 24000. * TYPE [chart|circle|line|point|polygon|raster|query] - Specifies how the data should be drawn. Need not be the same as the feature geometry type. For example polygons or polylines may be drawn as a point layer. See MapServer templates [here](https://docs.nextgis.com/docs_ngweb/source/mapservertemplates.html). # mapstyles.html.md # Styles Style is a type of NextGIS resource that describes a way to render the geodata. Styles are necessary to display geodata on a Web Map. Style is related to a particular layer, so you can only create a style resource from the page of a layer resource. For a Vector layer, you can: * [create default style](https://docs.nextgis.com/docs_ngweb/source/mapstyles.html#mapserver-style-select); * [upload a file](https://docs.nextgis.com/docs_ngweb/source/mapstyles.html#qgis-style-from-file); * [set up custom style parameters](https://docs.nextgis.com/docs_ngweb/source/mapstyles.html#custom-qgis-style) in the web interface; * [enter in string form using MapServer tags](https://docs.nextgis.com/docs_ngweb/source/mapstyles.html#mapserver-style); * copy an existing style. For a Raster layer, you can: * [create default QGIS style](https://docs.nextgis.com/docs_ngweb/source/mapstyles.html#raster-style); * [create default raster style](https://docs.nextgis.com/docs_ngweb/source/mapstyles.html#ngweb-create-raster-style-pic); * upload a file in QML or SLD format; * set up the bands in the interface; * [copy an existing style](https://docs.nextgis.com/docs_ngweb/source/mapstyles.html#ngweb-copy-raster-style-pic). You can get some inspiration, as well as ready-to-go style files and projects in our [Style Gallery](https://nextgis.com/map-styles/). Watch on [youtube](https://youtu.be/f9SGpeopJ4A?si=O3jxtvEhMWxBf6vD). ## Formats By now NextGIS Web supports two rendering libraries: QGIS and [MapServer](../../glossary.md#term-MapServer). * QGIS style can be uploaded from a QML file or created in Web GIS, it has much more settings. * You can write MapServer style yourself as a text. ## QGIS Vector Style Open the properties page of the layer you want create style for. To create a default QGIS style, just press the blue button on the resource page of the layer. ![image](docs_ngweb/source/_static/default_style_select_en_2.png) If you want to add a customized style, press **Create resource** button and select “QGIS vector style” (see [Fig. 417.](#select-qgis-style)). ![image](docs_ngweb/source/_static/ngweb_create_QGIS_style_en.png) After the selection of “QGIS vector style” create resource dialog will open. You can upload a file or create a simple vector style in the dialog. ### QGIS style from file To upload a pre-made style click **Select a style** on the “QGIS style” tab or drag a file to this field (see in [Fig. 418.](#upload-svg-qgis-style)). ![image](docs_ngweb/source/_static/upload_qgis_style_en.png) You can type a custom display name for the new style in the Resource tab. You can also add resource description and metadata on the corresponding tabs. Tile cache settings are described in details [in this section](https://docs.nextgis.com/docs_ngweb/source/mapstyles.html#tile-cache). After the QML file is uploaded click **Create**. After the style is created, its resource page opens (see [Fig. 419.](#svg-res-style)). ![image](docs_ngweb/source/_static/svg_res_style_en_2.png) You can [replace](https://docs.nextgis.com/docs_ngweb/source/mapstyles.html#ngw-qgis-style-custom-edit) the QML file of a style. ### Copy style from existing resource You can use a style that is added to another layer in your Web GIS. Select **Copy from resource** from the dropdown menu. Click on the “Source” field and select the style you want to copy. ![image](docs_ngweb/source/_static/style_from_resource_en.png) Click **Create** to finish. A new style is created, identical to the source style. ### SVG markers There are several ways to add custom markers to a style for NextGIS Web: 1. Embed marker file into QGIS style. Watch on [youtube](https://youtu.be/bJLuYp73u_E?si=6vMNCQUz45DJfE79). 1. Publish the image file online and use its URL as the path to SVG marker. Watch on [youtube](https://youtu.be/lLlKx2FTuE4?si=wYoDJ9QUtl-4eUXm). 1. Add [SVG marker library](https://docs.nextgis.com/docs_ngweb/source/mapstyles.html#ngw-create-svg-marker-lib) to your Web GIS. To create a style using SVG markers from a library resource, you need to specify the **SVG marker** type in the layer properties in QGIS and enter the **full path to the file** on the local machine ([Fig. 422.](#svg-qgis-style)). The file name must match the one loaded in the *SVG Marker Library* resource that the user selects when loading the QML file. ![image](docs_ngweb/source/_static/save_svg_qgis_style_en.png)![image](docs_ngweb/source/_static/svg_qgis_style_en.png) ### SVG Marker Library In Web GIS you can create SVG marker libraries to be displayed using QGIS styles of vector layers. Press **Create resource** button and select **SVG marker library** (see [Fig. 423.](#select-svg-lib)). ![image](docs_ngweb/source/_static/ngweb_create_SVG_lib_en.png) In the opened window, enter the name of the resource (see [Fig. 424.](#name-svg-lib)). ![image](docs_ngweb/source/_static/name_svg_lib_eng_2.png) Add description and metadata on the corresponding tabs if you need them. Metadata is used in external apps working with [API](https://docs.nextgis.com/docs_ngweb_dev/doc/developer/toc.html). In the SVG marker library tab you need to upload SVG markers from your device. You can upload markers as individual files or as a zip-archive. The archive must contain only markers. ![image](docs_ngweb/source/_static/ngweb_upload_svg_en.png) After all icons have been uploaded to the library, you will see the list of the file names. Click **Create** to complete the process. ![image](docs_ngweb/source/_static/list_svg_eng.png) Then create a style with the QML file and select the SVG library resource. ![image](docs_ngweb/source/_static/upload_svg_qgis_style_en_2.png) SVG markers can also be embedded in a QGIS style. That way you wouldn’t need to create a separate library resource. ### Custom QGIS style If you want to create a simple custom style, select “User-defined style” in the drop-down menu. You can set up: * Marker shape: square, circle, triangle, star, cross; * Marker size and stroke width. Enter a number or use the arrows in the field; * Fill color and stroke color and their opacity (by using sliders and eyedropper or entering values in HEX, HSB or RGB format); * The style of the line / polygon outline: solid, dotted, dashed, dash-dotted; * Labels (tick this option to view its settings): size, color and field selection. ![image](docs_ngweb/source/_static/QGIS_style_custom_en_2.png)![image](docs_ngweb/source/_static/QGIS_style_custom_line_en_2.png)![image](docs_ngweb/source/_static/QGIS_style_custom_polygon_en_3.png)![image](docs_ngweb/source/_static/QGIS_style_custom_label_en.png) You can type a custom display name for the new style in the Resource tab. You can also add resource description and metadata on the corresponding tabs. When all the parameters are set, click **Create**. Then the window of QGIS style will open. Styles created this way can be edited directly in NextGIS Web. See how it works in our video: Watch on [youtube](https://youtu.be/bujOcAhJskI?si=wCRz_Wgk7ymIXSvC). ## Editing QGIS style To edit a style click on the pencil icon by the style’s name in the layer tree. ![image](docs_ngweb/source/_static/QGIS_style_select_edit_en.png) In the opened window you can **replace** the style by uploading a new file from your device. To do so, in the “QGIS style” tab select “Style from file” in the dropdown menu, then add a new [QML](../../glossary.md#term-QML) or [SLD](../../glossary.md#term-SLD) file and click **Save**. A simple QGIS vector style, the default style, for example, can be **edited** directly in NextGIS Web. To do so, in the “QGIS style” tab select “User-defined style” in the dropdown menu. You can modify: * Marker shape * Marker size and stroke width (type it or use arrows in the field) * Fill color and stroke color and their opacity (by using sliders and eyedropper or entering values in HEX, HSB or RGB format) ![image](docs_ngweb/source/_static/QGIS_style_custom_edit_en.png) ## MapServer style To create **MapServer** style open layer properties of the layer you want create style for. Press **Create resource** button and select “MapServer style” (see in [Fig. 434.](#ngweb-window-create-resource-mapserver-pic)). ![image](docs_ngweb/source/_static/ngweb_create_mapserver_style_en.png) You can type a custom display name for the new style in the Resource tab. You can also add resource description and metadata on the corresponding tabs. ![image](docs_ngweb/source/_static/mapserver_style_custom_name_en.png) Tile cache settings are described in details [in this section](https://docs.nextgis.com/docs_ngweb/source/mapstyles.html#tile-cache). In the “MapServer style” tab you can write a style manually (see in [Fig. 436.](#ngweb-create-resource-mapsrev-pic)). See MapServer [templates](https://docs.nextgis.com/docs_ngweb/source/mapservertemplates.html) and [tags](https://docs.nextgis.com/docs_ngweb/source/mapservertemplates.html#ngw-mapserver-tags). Otherwise default values are used. ![image](docs_ngweb/source/_static/ngweb_create_resource_mapsrev_eng.png) Click **Create** to finish the process. The window of the created MapServer style will open (see in [Fig. 437.](#ngweb-file-format-window-mapserver-pic)). ![image](docs_ngweb/source/_static/MapServer_created_en.png) * [Map styles examples](mapservertemplates.md) ## Raster style After a raster file is successfully uploaded and a raster layer is created, you need to create a style to display it on a Web Map. There are several ways to create a raster style: * Create default QGIS raster style on the layer’s page. * Create default Raster style via **Create resource** button; ![image](docs_ngweb/source/_static/ngweb_create_raster_style_en.png) On the Tile cache tab you can enable cache, allow using tiles in non-tile requests, set up time after which the tiles expire (TTL) and max zoom level. To delete all previously created tiles of the style, check “Flush”. * Create QGIS raster style using **Create resource** button. In the dropdown menu you can select: * Style from file - select a QML or SLD file. * User-defined style - pick three channels, the values of these channels will be used to calculate a color in RGB model. You can set up min and max values for each channel; * Default style - allows to add a default QGIS style to a layer that already has styles; * Copy from resource - select a QGIS style of another raster layer to copy it. ![image](docs_ngweb/source/_static/ngweb_copy_raster_style_en.png) You will need this style to [add the raster to a Web Map](https://docs.nextgis.com/docs_ngweb/source/webmaps_admin.html#ngw-map-layers). ## Tile cache Caching provides faster rendering of Web Map layers. It can be enabled for [vector](https://docs.nextgis.com/docs_ngweb/source/mapstyles.html) and [raster layer styles](https://docs.nextgis.com/docs_ngweb/source/mapstyles.html#ngw-process-create-raster-style) as well as for [WMS](https://docs.nextgis.com/docs_ngweb/source/connections.html#wms) and [TMS](https://docs.nextgis.com/docs_ngweb/source/connections.html#tms) layers. To enable caching go to the Tile cache tab of the resource and check “Enabled”. In the **tile cache** settings you can also configure the following parameters (see [Fig. 444.](#tile-cache-settings)): * *Enabled* checkbox; * *Allow using tiles in non-tile requests* checkbox - the requested image (not a tile) will be prepared from previously cached tiles (if available); * Input field *Maximum zoom level* - a threshold value, above which the cache is not accessed and the image is formed “on the fly”; * Input field *TTL, sec* (Time to live) - a time of storage of tiles on the server in seconds, after which the image will be formed again on the next request. TTL = 0 means that the storage time is unlimited; * *Flush* checkbox - write only - clears the tile cache when saving the style. ![image](docs_ngweb/source/_static/tile_cache_settings_eng.png) ## Adding a style on the map To edit a Web Map click pencil icon near it or click the Web Map and in actions pane “Action” select “Update”. In “Update resource” layer select **Layers** tab (see in [Fig. 445.](#select-svg-style)). Here you can do the following actions: 1. Add layer 2. Add group 3. Remove layer or group 4. Modify the order of the layers on the map Click “Add layer” and in opened window select the QGIS style of the layer, then click “OK”. After that click “Save” ![image](docs_ngweb/source/_static/admin_webmap_add_layers_en_2.png) In the “Web Map” actions pane of the Web Map properties window select “Display”. The map will open, layers tree will be on the left. To hide/display a layer place a tick near the layer . ![image](docs_ngweb/source/_static/webmap_svg_en_2.png) # maxdist.html.md # Max distance between polygon nodes Adds an attribute to each polygon showing maximum distance between nodes. Distances are measured in meters along the edges. Multipolygons are exploded. Input: * Single GeoJSON or GeoPackage file. Output: * GeoJSON or GeoPackage file with added field containing information about the maximum distance between nodes in each object. Launch the tool: [https://toolbox.nextgis.com/t/maxdist](https://toolbox.nextgis.com/t/maxdist) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # mbtiles2ngrc.html.md # MBTiles to NGRC Converts MBTiles raster to NGRC format Inputs: * Raster dataset. MBTiles raster Outputs: * None * None Launch the tool: [https://toolbox.nextgis.com/t/mbtiles2ngrc](https://toolbox.nextgis.com/t/mbtiles2ngrc) Example: ![image](docs_toolbox/source/_static/mbtiles2ngrc_result_en.png) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # mcp.html.md # Use via MCP You can add NextGIS Toolbox MCP server to you AI agent settings and solve your geospacial tasks directly in chat. 1. Log in to get your personal MCP link. It’s formed like this: [https://mcp.toolbox.nextgis.com/mcp?api_key=APIKEY](https://mcp.toolbox.nextgis.com/mcp?api_key=APIKEY) Where `APIKEY` is replaced by your personal access key. 1. Add this link to your AI-client. Exact settings depend on the LLM you use. > * [ChatGPT (web)](#chatgpt-web) > * [Claude (web)](#claude-web) > * [Claude Code](#claude-code) > * [Cursor IDE](#cursor-ide) #### NOTE If you don’t find your favorite LLM in our list, try adding the MCP link to it and share instructions with us, we’d gladly add it to our documentation. 1. Enter prompts as usual. Example prompts: 1. I need height above see level of the Bankya village from ALOS. Use MCP. 2. Compute NDVI for Blanes, Spain for October 2024 using Sentinel-2 imagery. If multiple satellite tiles cover the area, just pick one (scene) arbitrarily. Use MCP. The capabilities of working through MCP are constantly expanding; currently, the models that have been tested can independently retrieve data from external sources, launch tools to process that data, and create Web Maps. ChatGPT can also upload files from your device to process them with Toolbox MCP. ## ChatGPT (web) Click on the profile and select Settings –> Plugins –> Browse plugins. ![image](docs_toolbox/source/_static/mcp_gpt_browse_plugins.png) Click on the **+** next to the search in the top right corner. ![image](docs_toolbox/source/_static/mcp_gpt_plugins_plus.png) Turn on Developer mode. Click **Create app** and set up: * name, for example “Toolbox MCP”. * Enter MCP link to the **Connection** field. * Authentification: No auth. Accept all the warnings. ![image](docs_toolbox/source/_static/mcp_gpt_finish.png) #### NOTE You need Plus subscription and above. ## Claude (web) * Go to the settings and click **Customize** (or the settings icon) in the left sidebar, then select **Connectors**. * Add a new connector — click **+** and select **Add custom connector**. Users with Free plan can only have one custom connector. * Enter the URL of the NextGIS Toolbox MCP server. * Click **Add**. The connector appears in the list of connected services. ![image](docs_toolbox/source/_static/mcp_claude_web_add.png) * Toggle the connector in chat. Open the conversation, click **+** at the bottom of the window → **Connectors** and toggle NextGIS Toolbox. After that Claude can run NextGIS Toolbox tools (search for satellite images, calculate NDVI etc) directly in chat. ## Claude Code Use Terminal inside the project to which you want to enter MCP to run a command: ```default claude mcp add --transport http toolbox-mcp https://mcp.toolbox.nextgis.com/mcp?api_key=APIKEY ``` Then run claude and type a command `/mcp`. In the list of Local MCPs you’ll see toolbox-mcp. Use it. To run it globally, enter this command: ```default claude mcp add --transport http --scope global toolbox-mcp https://mcp.toolbox.nextgis.com/mcp?api_key=APIKEY ``` ## Cursor IDE Open Cursor Settings. In the left menu select Tools & MCPs. In Home MCP Servers section click **New MCP Server** (card with a plus icon “+” labeled “Add a Custom MCP Server”). A file called mcp.json opens. Enter server parameters manually. ![image](docs_toolbox/source/_static/mcp_cursor_ide_add.png) Save. The new server is added as a card in the Home MCP Servers list. When you enter prompts make sure that the MCP server is enabled (see screenshot below). ![image](docs_toolbox/source/_static/mcp_cursor_ide_toggle.png) # meta_syntax.html.md # General This page describes the syntax of “meta.json” file which is a part of NextGIS Formbuilder project file (with “.ngfp” extension). The file uses the JSON specification rules and is encoded in UTF-8. # Syntax Example of the “meta.json” file: ```json { "fields" : [ { "datatype" : "INTEGER", "display_name" : "Amount of objects", "keyname" : "amount" }, { "datatype" : "REAL", "display_name" : "Size of area", "keyname" : "area" }, { "datatype" : "STRING", "display_name" : "Comments", "keyname" : "comments" } ], "geometry_type" : "POINT", "ngw_connection" : null, "srs" : { "id" : "4326" }, "version" : "3.0" } ``` The root of the file has a json-object type and consists of the following pairs. * ** # Simulation of location data How to use a third party software as a source of location data for your device. Install a mock location app. For example, [this one](https://lockito-app.com/). Turn on Developer mode on your smart phone. To do so, tap the Build number 7 times (in Software information). ![image](docs_ngmobile/source/_static/ngm_enter_developer_mode_en.png) In the Developer options select mock location app installed on step 1. ![image](docs_ngmobile/source/_static/ngm_developer_options_en.png)![image](docs_ngmobile/source/_static/ngm_select_mock_location_app_en.png) Open the mock location app. Create a simulation, name it. ![image](docs_ngmobile/source/_static/ngm_new_simulation_en.png) Select a point on the map (or use current location) and tap Play. ![image](docs_ngmobile/source/_static/ngm_select_point_play_en.png)![image](docs_ngmobile/source/_static/ngm_in_progress_en.png) From that moment on your smart phone will get coordinates of your current location from the app. Open NextGIS Mobile to see that it works. ![image](docs_ngmobile/source/_static/ngm_simulated_location_en.png) # molusce.html.md # MOLUSCE #### NOTE Qt6 compatible MOLUSCE (Modules for Land Use Change Evaluation) is a plugin for QGIS designed to analyse land use and forest cover changes between different time periods, model land use/cover transition potential and simulate future land use and cover changes. The plugin incorporates several well-known algorithms, including Artificial Neural Networks. ![image](docs_ngqgis/source/_static/molusce_intro_5_2_en.jpg) You can find detailed videos about using MOLUSCE plugin on our YouTube channel: * [LULC change detection and prediction with free QGIS tool. Land Use Change Simulations](https://youtu.be/F4j1fTyCuy4?si=Bfl98KrkV_BgDW8e) * [Separate spatial variables for simulation and Model Save/Load](https://youtu.be/GVrk_uLJbuA?si=2iEyBCz5yBQbwKIo) MOLUSCE is available for download in the QGIS plugin manager. After installation the plugin is added to the Raster menu. ## How to prepare input data Input data used by the plugin: Initial and final land use/cover maps. These are raster images where pixel values correspond to codes of land use/cover (e.g. 1=forest, 2=cropland, 3=urban etc). Minimum: 1. Initial state map (initial_date) 2. final step map (initial_date+N) 3. validation map (initial_date+2N). It is recommended to use a third map to validate the simulated forecast. N stands for Forecast depth, i.e. the time between land states, measured in days, weeks, years etc depending on the task at hand. Maps of spacial variables that affect the land use. The researcher hypothesizes what factors may have influenced the observed changes and inputs intensity maps of these factors. For example, if a researcher is working on the problem of forest extinction, such factors might be: soil types (each soil type is coded with a number), distances from roads (the pixels of the map contain a number - the shortest distance from the point associated with that pixel to the road), population density, etc. If spacial variables change over time, two separate map versions can be used: one for model training, another for simulation. All input rasters must have the same: * resolution * extent * size in pixels We recommend creating a raster attribute table from current symbology for each of the layers. This way you can view class names using Identify tool. Also we recommend setting the style to Paletted/Unique values. Each class will be marked on the map by an individual color. To prepare the data you can use these tools available in the ![processing](docs_ngqgis/source/_static/processingAlgorithm.png) Processing toolbox: * Prepare raster dataset for MOLUSCE; * Prepare vector dataset for MOLUSCE. ![image](docs_ngqgis/source/_static/molusce_prepare_tools_en.png) First of all, pick the raster layer that is to serve as a reference. ### Prepare raster dataset for MOLUSCE In the tool interface you need to select: * Raster layer to be prepared; * Reference raster layer; * Resampling algorithm (use Nearest neighbour for categorical rasters and Bilinear or Bicubic for continuous rasters like DEM). You can also set a NoData value for output. If left empty, the value from the source raster is used. ![image](docs_ngqgis/source/_static/molusce_prepare_raster_en.png) ### Prepare vector dataset for MOLUSCE In the tool interface select: * Vector layer to be processed; * Referenced raster layer; * Mode - Presence (rasterizes the features) or Proximity (creates gradient of the distance to the nearest feature); * For Presence mode you can select the raster value, if left empty the value 1 is used; * For Presence mode you can create a buffer around the features, its size is set in map units; * For Proximity mode you can select units for calculation: georeferenced or pixels. ![image](docs_ngqgis/source/_static/molusce_prepare_vector_en.png) ## Loading data and model training Plugin has several tabs that are used one after the other. ### Inputs On the left there is a list of all raster layers in the project. From that list select the initial state map and final state map. Then add spacial variables in the bottom right part of the tab. Press **Check geometry**. After a successful geometry check other tabs become available. ![image](docs_ngqgis/source/_static/molusce_inputs_en.png) ### Evaluating correlation In this tab you can, if necessary, calculate the extent to which the influence factors are related to each other. If the correlation between two factors is strong, it may be sufficient to use just one of them. For continuous variables, you can calculate the Pearson’s correlation, and for nominal variables, the Cramer coefficient or JIU (joint information uncertainty). Select two factors from dropdown menu or check the option “Check all rasters”. ![image](docs_ngqgis/source/_static/molusce_correlation_en.png) ### Area changes On the “Area changes” tab press **Update tables**. Two tables will be created: “Class statistics” and “Transition matrix” (shows the proportions of pixels changing from one land use/cover to another). This information can be used on its own for certain tasks. Next press **Create change map** button and select a path and a name for the new raster. Each transition class will be marked on the map by a specific color. We recommend creating a raster attribute table for that layer too. ![image](docs_ngqgis/source/_static/molusce_area_change_en.png) If you want to save the tables, left-click on any cell to activate context menu and copy selected cells or the entire table with row and column titles. ![image](docs_ngqgis/source/_static/molusce_table_copy_en.png) ### Transition potential modelling Four methods are available: * Artificial Neural Network (ANN) * Weights of Evidence (WoE) * Multi Criteria Evaluation (MCE) * Logistic Regression (LR) ![image](docs_ngqgis/source/_static/molusce_modeling_en_2.png) First, configure the following parameters of the sampling: **Sampling mode:** * all - uses all the pixels and takes a lot of time; * random - most common, fast method, but may overlook some transition types; * stratified - useful in ensuring that every subgroup is adequately represented in the sample. You can also configure the **number of samples**. It affects both the accuracy of the model and the speed of learning. Next, customize the ANN modelling: * Neighbourhood defines the count of neighbour pixels around current pixel (usually 1 or 0 values are used); * Learning rate (lower values make for a more careful model); * Max iterations number - number of learning cycles. If the value is too high, it might result in overfitting; * Hidden layers - defines the complexity of the model. Press **Train neural network**. On the graph you’ll see the learning curve and the error curve. If you notice that the training is not going well, you can press **Stop** and modify the parameters. If training is successful, both curves go down smoothly and the Current Validation Kappa is about 0.8 or above. ![image](docs_ngqgis/source/_static/molusce_curves_en.png) After training the model you can save the samples as a separate layer. This allows to check if all types of transition have been sampled for training. When you click **Save samples**, a temporary scratch layer is created in the project. You can export it to the format of your choice. You can also save the trained model. Then you can savely close the plugin and later load it and use for simulation. To re-use the model, take rasters of the same dimentions and the spacial variables in the same order. ![image](docs_ngqgis/source/_static/molusce_model_loaded_en.png) ## Cellular Automata Simulation After the model is trained it can be used to create a forecast. In the “Cellular Automata Simulation” tab set up the number of simulation iterations, i.e. number of time periods for which the forecast is made (1 by default), and a path for the created files. If spacial variables change over time, you can use one file to train the model and a different file to simulate. Both files need to be added to the project beforehand. Tick “Set separate spacial variables version for simulation” and add the variables in the same order as in the Input tab, selecting the new version. To begin simulation press **Start**. ![image](docs_ngqgis/source/_static/molusce_simulation_en_2.png) Besides the simulated land use/cover map you can also generate: * Transition potential map shows the probability or potential to change from one land use/cover class to another. Values range from 0 (low potential) to 100 (high transition potential). * Certainty function shows the degree of forecast certainty. Values range from 0 (low certainty) to 100 (hight certainty). Low certainty likely means that a particular type of transition was not sampled. ## Validation Validation can be performed if you have a reference map with actual data for the period. Also on this tab you can calculate kappa. A map of errors can be created. It contains three types of pixels: * Persistent (class of the pixel has not changed since initial date and the forecast was accurate about it) * Empty (correct prediction) * Error (prediction does not match real data) ![image](docs_ngqgis/source/_static/molusce_validation_en.png) # mt2report.html.md # Marine traffic report This tool generates a table (format - CSV), which lists the ships entering given territory, the date and coordinates of their last location, as well as the number of times each ship entered a given territory for a certain period of time. It makes sense to use this tool, if you have already configured a service that updates data on ship locations in your Web GIS. Inputs: * **Web GIS** - URL of your Web GIS (for example, http(s)://mywebgis.nextgis.com) * **Login** - login of a user with permission to write data in the resource * **Password** - password for the user * **AOI resource ID** - ID of a polygon layer in Web GIS representing the area of interest * **Ship data resource ID** - ID of a point layer in Web GIS containing data on ships * **Start date** - Starting date for ship data selection (e.g., 2019-09-22) Calculation algorithm: Uploading layers of the boundary of the analysis zone and ship locations. Checking each location for intersection with the analysis zone; locations registered later than the specified starting date are also selected. Among the selected locations for each ship the last location and its coordinates, as well as the total number of locations are obtained. The information obtained for each ship is recorded in a table. The result of the process is a table in CSV format with information about all ships registered on a given territory later than the specified date, information about the last registered location and the number of registered locations within a given territory for a certain period of time. Launch the tool: [https://toolbox.nextgis.com/t/mt2report](https://toolbox.nextgis.com/t/mt2report) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # multiqml.html.md # MultiQML MultiQML plugin for QGIS provides a fast way to apply one style to multiple vector or raster layers. After installation the plugin will appear in the Plugins toolbar: ![button_multiqml](docs_ngqgis/source/_static/button_multiqml.png). In the plugin dialog: * select data type - raster or vector; * from the list on the left select layers to which you want to apply a common style; * upload QML file of the style. ![image](docs_ngqgis/source/_static/multiqml_dialog_en.png) You can save a new style for the layers and replace the existing styles directly from the plugin window. To do that, tick “Save as default”. A message will pop up: “Enabling this option will cause overwriting of any existing QML files. Are you sure?” Press **Yes**. See the plugin at work in our video: Watch on [youtube](https://youtu.be/jtEl1ToyGC0?si=_5i2SyniizDtCxOL). # ndi.html.md # Normalized difference index The tool calculates the normalized difference index for any two input images. Inputs: GDAL-supported rasters (the first band will be used for the calculations). * First raster. First measurement for the NDVI calculation, e.g. NIR band; * Second raster. Second measurement for the NDI calculation, e.g. red band. Outputs: * A raster with normalized difference index in GeoTiff format. The calculation is carried out according to the formula: (First image - Second image) / (First image + Second image). The pixel values of the resulting raster are in the range from -1 to 1 Before the calculation, both images are brought into a single spatial domain. The projection and spatial resolution of the first raster is used. Examples of common normalized difference indices: * NDVI - for vegetation assessment (the first raster - NIR, the second - RED) For Landsat 8 data: 5 and 4 bands. For Sentinel: 4 - RED, 8 - NIR. * NDWI - for the detection of water bodies (the first raster - NIR, the second - SWIR). For Landsat 8 data: 5 and 6 bands. For Sentinel: 4 - RED, 11 (SWIR, 1610nm) and 12 (SWIR, 2190nm). * NDSI - for assessing the snow cover (the first raster - GREEN, the second - SWIR). For Landsat 8 data: 3 and 6 bands. For Sentinel: 3 - GREEN, 11 (SWIR, 1610nm) and 12 (SWIR, 2190nm). #### SEE ALSO * [List of Sentinel-2 bands](https://custom-scripts.sentinel-hub.com/custom-scripts/sentinel-2/bands/) * [List of Landsat 8 bands](https://www.usgs.gov/landsat-missions/landsat-8) Example: ![image](docs_toolbox/source/_static/ndi_input_en.png)![image](docs_toolbox/source/_static/ndi_result_en.png) Launch the tool: [https://toolbox.nextgis.com/t/ndi](https://toolbox.nextgis.com/t/ndi) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # ngapi.html.md # How to use Web GIS for creation of end-user apps [Web GIS](description.md#ngcom-description) can be used as a backend for web, mobile and desktop apps which need to read, write and visualize geodata. This is possible due to existence of NextGIS Web API which allows to perform wide range of requests to Web GIS. Read more about NextGIS Web API [here](../../docs_ngweb_dev/doc/developer/toc.md#ngwdev-description). Using API you can turn your Web GIS into a geodata storage for other maps and systems. This is made possible through CORS Settings. Read how to switch on CORS for your Web GIS [here](https://docs.nextgis.com/docs_ngweb/source/cors.html). # ngc_data_transfer.html.md # Upload data to the cloud storage NextGIS Connect module allows you to share geodata between QGIS and Web GIS in both directions. With NextGIS Connect you can upload to Web GIS: 1. Vector data 2. Raster data 3. Basemaps 4. Layer groups 5. Entire QGIS project Connect plugin also allows to publish vector data using standard protocols [WFS](../../glossary.md#term-WFS), [WMS](../../glossary.md#term-WMS) and OGC. On Free plan you can upload up to 15 layers. If you need more, you can [upgrade to Premium in your NextGIS ID acccount](https://my.nextgis.com/subscription/). ![image](docs_ngconnect/source/_static/add_to_ngw_en.png) - Upload selected; - Upload all - All layers for which the import option is available will be added to Web GIS, as well as all groups, retaining the hierarchy from QGIS Layers Panel. Also a Web Map will be created and all imported layers will be added to it retaining hierarchy and visibility of QGIS Layers Panel. While importing a project you need to specify the name of the new resource group which will be created in Web GIS. This group will hold all resources imported along with the project. When the process is complete, the Web Map will be opened automatically if corresponding option is selected in plugin settings. - Update layer style - Web GIS will update the style of the layer to match the style of the selected layer in QGIS. - Add new style to layer - Web GIS will add to the layer a new style, similar to the selected layer in QGIS. Imported resources will be added to the group selected in NextGIS Connect panel. * If other type of resource but a group is selected, import will be performed to the closest parent group to selected resource. * If no resource is selected, import will be performed to the Main resource group (the root directory). Attachments made in QGIS are also supported. See how it works in our video: Watch on [youtube](https://youtu.be/k427UYcXLOI?si=oZ9vX7p6tGpmKv2r). Alternatively you can upload data to Web GIS from the Layers panel. In the context menu select it as one of the ways to export a layer, a group of layers or the entire project. ![image](docs_ngconnect/source/_static/context_export_to_ngw_en.png) ## Resource types The following types of resources are available for data exchange and operation: - ![vector_layer](docs_ngconnect/source/_static/symbol_vector_layer.png) - Vector layer (NGW Vector Layer), which can be: ![resource_vector_point](docs_ngconnect/source/_static/nextgis_connect/vector_layer_point.png) - Point vector layer (NGW Vector Layer); ![resource_vector_mpoint](docs_ngconnect/source/_static/nextgis_connect/vector_layer_mpoint.png) - Multipoint vector layer (NGW Vector Layer); ![resource_vector_line](docs_ngconnect/source/_static/nextgis_connect/vector_layer_line.png) - Line vector layer (NGW Vector Layer); ![resource_vector_line](docs_ngconnect/source/_static/nextgis_connect/vector_layer_line.png) - Multiline vector layer (NGW Vector Layer); ![resource_vector_polygon](docs_ngconnect/source/_static/nextgis_connect/vector_layer_polygon.png) - Polygon vector layer (NGW Vector Layer); ![resource_vector_mpolygon](docs_ngconnect/source/_static/nextgis_connect/vector_layer_mpolygon.png) - Multipolygon vector layer (NGW Vector Layer); If a layer has **multiple styles**, they will all be uploaded. Their names will be kept. If the style name is “default”, the layer’s name will be used instead. - ![resource_style](docs_ngconnect/source/_static/symbol_qgis_vector_style.png) - Vector layer style - ![resource_wfs](docs_ngconnect/source/_static/symbol_wfs_service.png) - WFS Service - ![resource_wms](docs_ngconnect/source/_static/symbol_wms_service.png) - WMS Service - ![tms_layer_symbol](docs_ngconnect/source/_static/symbol_tms_layer.png) - TMS Layer - ![postgis_layer_symbol](docs_ngconnect/source/_static/symbol_postgis_layer.png) - PostGIS Layer - ![wfs_layer_symbol](docs_ngconnect/source/_static/symbol_wfs_layer.png) - WFS Layer - ![raster_layer](docs_ngconnect/source/_static/symbol_raster_layer.png) - Raster layer - raster layer with a default style will be created in Web GIS. Style can be added directly to Web Map. - ![basemap_symbol](docs_ngconnect/source/_static/symbol_basemap.png) - Basemap - ![resource_webmap](docs_ngconnect/source/_static/symbol_webmap.png) - Web Map - ![resource_group](docs_ngconnect/source/_static/symbol_resource_group.png) - Resource group ## Upload entire QGIS project * Create a QGIS project with raster and vector layers. Tailor their styles, group them, set their hierarchy and visibility settings. Set the map extent; * In NextGIS Connect panel select Resource group to which you want to upload the project; * Press **Add to Web GIS** button on NextGIS Connect control panel and select **Upload all**; ![image](docs_ngconnect/source/_static/NGConnect_import_menu_en_2.png) * In the opened dialog window enter the name of the new Resource group to which the project will be imported; ![image](docs_ngconnect/source/_static/NGConnect_import_name_en_2.png) * If the project is uploaded successfully you’ll see in a selected Resource group a newly created group with: 1. all Raster and Vector layers to which **Add to Web GIS** operation is applicable, and their Styles; 2. automatically created [Web map](https://docs.nextgis.com/docs_ngweb/source/webmaps_client.html#ngw-webmaps-client) with a set extent, to which all the imported layers are added with groups, hierarchy and visibility settings similar to QGIS. ![image](docs_ngconnect/source/_static/NGConnect_import_view_en_2.png) If you select a resource group containing layers with multiple styles, all the styles will be added. The style used as current will be the one with the same name as the layer or the first in alphabetical order. No dialog will be displayed. Watch on [youtube](https://youtu.be/Wwx1mowUAL4?si=g1ErxArjC4GewSsh). ## Upload vector data #### IMPORTANT You can avoid [data format limitations](https://docs.nextgis.com/docs_ngweb/source/layers.html#ngw-vector-data-requirements) when uploading vector data to Web GIS through NextGIS Connect by switching on options “Rename forbidden fields” and “Fix incorrect geometries” in *Settings* dialog. * In QGIS create from scratch or upload from [ESRI Shape](../../glossary.md#term-ESRI-Shape), [GeoJSON](../../glossary.md#term-GeoJSON) or [CSV](../../glossary.md#term-CSV) files vector layers. Tailor their styles; * In NextGIS Connect panel select Resource group to which you want to upload your data (or create a new one using [Create resource group](https://docs.nextgis.com/docs_ngconnect/source/manage.html#ng-connect-res-group) button); * In QGIS Layers panel select the vector layer which you want to upload to Web GIS; * Press **Add to Web GIS** button on NextGIS Connect control panel and click **Upload selected** or choose **NextGIS Connect –> Upload selected** in layer context menu; * If data is uploaded successfully you’ll see in the relevant Resource group a new Vector layer with [QGIS style](https://docs.nextgis.com/docs_ngweb/source/mapstyles.html) tailored by you. If a layer has **multiple styles**, they will all be uploaded. Their names will be kept. If the style name is “default”, the layer’s name will be used instead. See how to work with multi-style layers in our video: Watch on [youtube](https://youtu.be/7vwt1k6Cv3k?si=db1YkX-aS7f3_sd7). Vector layers added from Web GIS can be [edited in QGIS](https://docs.nextgis.com/docs_ngconnect/source/edit.html#) right away. ## Upload raster data * Add raster layers to QGIS from [GeoTIFF](../../glossary.md#term-GeoTIFF) file; #### NOTE A raster layer in a different format, e.g. PostGIS, can also be uploaded to Web GIS via Connect. It will be transformed to EPSG:3857 GeoTIFF during uploading. * In NextGIS Connect panel select Resource group to which you want to upload your data; * In QGIS Layers panel select a raster layer which you want to upload to Web GIS; * Press **Add to Web GIS** button on NextGIS Connect control panel and click **Upload selected** or choose **NextGIS Connect –> Upload selected** in layer context menu; * If data is uploaded successfully you’ll see in the relevant Resource group a new Raster layer with default [Raster style](https://docs.nextgis.com/docs_ngweb/source/mapstyles.html#ngw-process-create-raster-style). See how to set transparancy for a raster layer, upload it and [create a Web Map](https://docs.nextgis.com/docs_ngconnect/source/resources.html#creating-web-map-from-a-layer) from the layer in our video: Watch on [youtube](https://youtu.be/AA36g3CdGcU?si=d2JGjil-zMEbws4r). ## Upload basemap * Add basemaps to QGIS via TMS; * In NextGIS Connect panel select Resource group to which you want to add your basemap; * In QGIS Layers panel select a basemap which you want to upload to Web GIS; * Press **Add to Web GIS** button on NextGIS Connect control panel and click **Upload selected** or choose **NextGIS Connect –> Upload selected** in layer context menu; * If a basemap is uploaded successfully you’ll see it the relevant Resource group. # ngc_install.html.md # Installation To download NextGIS Connect plugin, from the main menu open *Plugins ‣ Manage and install plugins*. Start typing the name of the plugin in the search bar, select it in the list and press **Install**. NextGIS Connect plugin is a part of [NextGIS QGIS](http://nextgis.com/nextgis-qgis/) distributive and is ready to go right after installation of desktop app. If you need to check the version of the plugin or update it, go to *Plugins‣ Manage and install plugins ‣ NextGIS Connect*. #### NOTE Qt6 compatible When the plugin is installed, its icon appears in the toolbar: ![NextGIS Connect icon](docs_ngconnect/source/_static/logo_connect.png) Click on the icon to open NextGIS Connect panel. [More about Connect panel](https://docs.nextgis.com/docs_ngconnect/source/panel.html). ![NextGIS Connect panel](docs_ngconnect/source/_static/connect_panel_en_2.png) First you need to create a connection to Web GIS. ## Create a connection To create a connection you need to know the address of your Web GIS. The address for your own Web GIS can be found at [https://my.nextgis.com/webgis](https://my.nextgis.com/webgis) ![Web GIS address](docs_ngconnect/source/_static/my_nextgis.png) Click on **Settings** button in NextGIS Connect panel. ![Open settings dialog](docs_ngconnect/source/_static/call_settings_en.png) In the pop-up window press **New** and fill in the fields: 1. URL – address of the target Web GIS. 2. Name – connection id, how it will be shown in the list of connections. ![Adding new connection](docs_ngconnect/source/_static/create_connection_en.png) Next, in the *Authentication* section, choose how you wish to log in to the Web GIS: * The default setting, “No Authentication” (= as a Guest) can be used if you don’t need to perform actions that a Guest has no permissions for; * [add a new configuration](https://docs.nextgis.ru/docs_ngconnect/source/ngc_install.html#nnew-config); * select a previously created one (the list includes configuration name, user name and authentication type). #### NOTE For instance, only the Web GIS owner and the [team members](https://docs.nextgis.com/docs_ngcom/source/create.html#team-management) can create and delete resources. Make sure that the correct configuration is selected. To check if the credentials are correct, press **Test Connection**. If guest or user chosen for authentication does not have access at least to the Main resource group of the Web GIS, an error message will appear. Select a different authentication configuration or contact the administrator of the Web GIS to get access permission. Next press **Save** in the connection creating dialog ([Fig. 874.](#create-connection-pic)). Click **OK**. The connection selected in the “Connections” dropdown menu of the Settings dialog will become active **after** the dialog is closed. ### Add a new configuration #### IMPORTANT If you used Google account to log in to NextGIS services, you need to create an additional password for the Connect module. Go to [this page](https://my.nextgis.com/password/reset/?email=) and follow the instructions. After creating this password, you can still sign in with Google on web-based NextGIS services. Press the button with a green plus in the Connection dialog ([Fig. 874.](#create-connection-pic)). The “Authentication” dialog will pop up. ![Adding authentication configuration](docs_ngconnect/source/_static/auth_config_create_en_2.png) 1. Enter *Username* (email used for registration) and *Password* of your NextGIS ID; 2. Press **Save**. Then proceed with checking the connection and finilize creating the connection as described above. ## Keycloak authentication in NextGIS QGIS Desktop app NextGIS QGIS, NextGIS Web, and NextGIS Connect which serves as a link between them handle geoinformation systems that use Keycloak authorization. This option is relevant for corporate users who have a Web GIS deployed [on-premise](https://nextgis.com/pricing/). # ngc_settings.html.md # Main Settings You can access this dialog via top menu *Settings > Options > NextGIS Connect*, or from NextGIS Connect panel by clicking on the gear button. ![Open settings dialog](docs_ngconnect/source/_static/call_settings_en.png)![Main settings](docs_ngconnect/source/_static/ngc_settings_en_2.png) ## Connections Connection, selected in the dropdown list, becomes active **after** the Settings dialog is closed. Also, in this section you can [create, edit or delete connections](https://docs.nextgis.com/docs_ngconnect/source/ngc_install.html#create-a-connection). ## Uploading **Upload rasters as Cloud Optimized GeoTIFF (COG)** - if this option is selected, pyramids will be used for loading rasters depending on zoom level, so there’s no need to wait for the entire raster to finish loading. **Enable feature versioning for vector layers when uploading** - versioning allows [co-editing from multiple devices](https://docs.nextgis.com/docs_ngweb/source/version.html#vers-qgis). ## Resources **Add layers to QGIS on service creation** – after creation of WFS, WMS or OGC API - Features service in Web GIS it will be automatically added to QGIS as a layer. **Open Web Map automatically on creation** – after completing any operation that includes creation of a Web Map it will be automatically opened in browser. ## Searching Enter a list of metadata keys to select from the dropdown menu in the [search bar](https://docs.nextgis.com/docs_ngconnect/source/filter.html#ngc-filter-metadata) instead of typing them every time. ## Synchronization You can select how often the plugin checks for edits. The interval is set in minutes or hours, between 1 and 59. A bigger interval can be helpful if there are many layers to prevent a constant state of synchronization. You can disable automatic synchronization for a layer in the [layer properties](https://docs.nextgis.com/docs_ngconnect/source/resources.html#connect-data-sync). ## Cache settings You can manage the following parameters: **Directory** - path to the cache folder, by default - the folder containing the app. **Storage duration** - determines how often is cache cleared: once a day, a week or a month. There is also the option to store cache indefinitely. **Max size** - 8, 12, 16, 24, 32, 64 GiB or no restriction (the infinity symbol). You can also **Clear cache**. ## Other settings The following settings are used to inform the developers about software errors and bugs. Log messages contain the information on the events leading to an error and the place where it ocurred. **Enable log messages** - all debug messages will be automatically displayed in the “Debug messages” panel. **Log network requests** - adds information about requests made, their contents and the response to the debug messages. ## Proxy server settings If your company uses its own proxy server, you need to specify it in the NextGIS QGIS settings: *Main menu > Settings > Options > Network > Use Proxy for Web Access*. ![Proxy server settings](docs_ngconnect/source/_static/nextgis_connect/proxy_en.png) # ngconnect.html.md # Overview This plugin allows QGIS users to load resources to and from Web GIS or NextGIS Web (further both refer as “Web GIS”) directly from QGIS interface. With NextGIS Connect you can: 1. Download geodata from Web GIS to desktop GIS, including Web Maps with all the related resources; 2. Upload vector and raster layers from desktop GIS to Web GIS; 3. Upload whole QGIS projects to Web GIS, including styles, layer hierarchy, etc; 4. Edit data in Web GIS directly from desktop app; 5. Create WFS service in one click and edit data directly in Web GIS; 6. Create WMS and OGC API - Features services in one click; 7. Update geodata keeping styles and attributes; 8. Create resource groups and delete any resources; 9. Copy QML layer styles from Web GIS to apply to a layer in QGIS; 10. Add new vector layer styles from QGIS to a layer in Web GIS that already has styles. 11. Open web pages of particular data in Web GIS from the Layers panel in QGIS using context menu. Watch on [youtube](https://youtu.be/2tuh5p0tUqw?si=iJmlmnhXQuMdTJlf). #### WARNING **Photos** made via NextGIS Collector/Mobile apps and uploaded to Web GIS as attachments to layers **wouldn’t be available** in desktop NextGIS QGIS after downloading these layers through NextGIS Connect plugin. To **keep the photos** intact while modifying the style, follow [this instruction](https://docs.nextgis.com/docs_ngconnect/source/ngc_data_transfer.html#how-to-keep-the-attachments). # ngcr_export.html.md # NextGIS Container Registry image export Export Docker images from NextGIS Container Registry to \*.tar.gz archive. This helps to install or update software on servers in air-gapped environments. You can run the export tool using any NextGIS ID account, including the free plan, but when running the tool you will need to provide your login and password for access to NextGIS Container Registry. Inputs: * Distribution: - NextGIS Web Standard - NextGIS Web Standard + Whitelabel - NextGIS Web Extended - NextGIS Web Extended + Whitelabel - NextGIS GeoServices - NextGIS Toolbox - Nominatim - BusyBox (test) * Version. Specify the product version to export Docker images for. * Login and password for accessing the NextGIS Container Registry. Provided by NextGIS Support with the product delivery. Outputs: * \*.tar.gz archive. Images can be imported into Docker using the command `docker load -i .tar.gz`. Launch the tool: [https://toolbox.nextgis.com/t/ngcr_export](https://toolbox.nextgis.com/t/ngcr_export) Example: **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # ngidop.html.md # Overview NextGIS ID on-premise (NGID on-premise) is an authorization and user management server for NextGIS software. For companies with local networks isolated from the Internet to a certain degree this offers a way to authorize users of desktop and mobile NextGIS software. The functionality of NGID on-premise includes: * user sign-in with login and password; * modifying user credentials (login, password), deleting users; * adding users to a team that has extended access to software features, managing team members; * user sign-in via [OAuth](../../glossary.md#term-OAuth) 2.0 in various applications; * personal web pages for users where they can view their profile and change their password. ## Authorization and profile The home page of NGID on-premise opens on a sign-in dialog (see [Fig. 798.](#auth-window)). Enter login and password for a user created in the Admin Console. ![image](docs_ngid/source/_static/auth_window_en.png) After a successful sign-in you’ll see the user profile page (see [Fig. 799.](#profile-window)). On this page the user can modify personal information and change password. ![image](docs_ngid/source/_static/profile_window_en.png) ## Team To add a new team member, enter login and password for the user. You can also delete a user from the team. Team management is available in the **Team** section, add **/users** to the URL to view it (see [Fig. 800.](#ngidop-team)). Each added user is displayed in the list. Users included in the team have access to extended functionality of the NextGIS software. ![image](docs_ngid/source/_static/ngidop_team_en.png) By default a new Web GIS user has no permissions and cannot view any resources. [Set up permissions](https://docs.nextgis.com/docs_ngcom/source/permissions.html) for your team members before their first login. It can be done in one of two ways: * The best way is to set up permissions for a [user group](https://docs.nextgis.com/docs_ngweb/source/users.html#create-new-user-group) with the option **“New users”** enabled. Users will be included in this group upon their first login to the Web GIS. * An alternative way is to set up permissions for the principal [“Authenticated”](https://docs.nextgis.com/docs_ngcom/source/permissions.html#ngcom-permissions-usertypes). ## OAuth applications You can permit this type of authorization for various NextGIS apps. Set it up in the *OAuth Application* section of the settings (see [Fig. 801.](#ngidop-apps-oauth)): * [NextGIS QGIS](https://docs.nextgis.com/docs_ngqgis/source/auth.html#ngidop) * [NextGIS Mobile](https://docs.nextgis.com/docs_ngmobile/source/auth.html#ngidop) * [NextGIS Collector](https://docs.nextgis.com/docs_collector/source/auth.html#ngidop) * [NextGIS Formbuilder](https://docs.nextgis.com/docs_formbuilder/source/gui.html#ngidop) Each of this apps must be configured to allow authorization via NextGIS ID on-premise. By default the apps use the cloud authorization service my.nextgis.com. For more details on setting up authorization in these apps see the corresponding documentation. ![image](docs_ngid/source/_static/ngidop_apps_oauth_en.png) #### NOTE To access the extended functionality of the desktop and mobile software you need to enter the NextGIS ID server in the settings of the desktop application (see [Fig. 802.](#auth-server-settings)). By default it uses the public authorization service [https://my.nextgis.com](https://my.nextgis.com). For a service deployed in a local network the address follows the model of [https://gis.mycompany.com/ngid](https://gis.mycompany.com/ngid). Enter this URL as the authorization server address. In a web browser use the link: \* [https://gis.mycompany.com/ngid/](https://gis.mycompany.com/ngid/) - user profile will open. ![image](docs_ngid/source/_static/auth_server_settings_en.png) ## Setting up LDAP To open LDAP settings, add **/ldapsettings** to the URL (see [Fig. 803.](#ldap-settings)). In the LDAP SERVER section enter the URL of the authorization server, user login and password to sign in on the server. **Integration with Microsoft Active Directory external server** During sign-in via the standard dialog in NextGIS Web the system checks if the user exists in the NextGIS Web software. If it is a Microsoft Active Directory account, the password is checked in the Microsoft Active Directory. If the user does not exist in NextGIS Web, the Microsoft Active Directory database is checked for the username. If the user is found in that database, the password is checked. If the Microsoft Active Directory signs in the user successfully, NextGIS Web will automatically create a user with the same login. The account type will be set to Microsoft Active Directory. ![image](docs_ngid/source/_static/ldap_settings_en.png) In the **User search** section enter the data base to be used for user search and LDAP attributes for the search parameters (login, name, surname). If a user is part of a **group**, you can add that information in the last section of the LDAP configuration section. This field is not required, but it allows to limit access for users outside a particular group. Users that are members of other groups won’t be able to sign in even if they enter a correct login/password combination. ## NextGIS ID on-premise identificator For integration with global NextGIS services (such as [GeoServices](https://geoservices.nextgis.com/)) a unique GUID is used. You can view it in the **NextGIS ID on-premise** section (see [Fig. 804.](#ngidop-guid)). To set it up open your profile on [my.nextgis.com](https://my.nextgis.com/myngidonpremises) and enter the GUID in the NextGIS ID on-premise section (see [Fig. 805.](#guid-on-my)). ![image](docs_ngid/source/_static/ngidop_guid_en.png)![image](docs_ngid/source/_static/GUID_on_my_en.png) For Collector and Tracker enter the hub parameters to the table in **Settings** using the addresses where they are deployed. # ngmav2.html.md # Mobile Android SDK v.2 This article about NextGIS Mobile SDK version **2**. The details about include and use SDK libraries see in [IGISApplication interface description](http://docs.nextgis.com/ngmobile_dev/maplib/com/nextgis/maplib/api/IGISApplication.html). SDK consists of two libraries: **Maplib** и **MaplibUI**. The classes and methods can be found in following articles. # ngmav3.html.md # NextGIS Android SDK ## Intro NextGIS Android SDK is a set of libraries used to support work with geodata in mobile applications for Android OS. The SDK includes: * [nextgis_datastore](https://github.com/nextgis/nextgis_datastore) library * [android_maplib](https://github.com/nextgis/android_maplib) library The **nextgis_datastore** library is written in `С++11` and based on [GDAL](http://gdal.org/). The library supports the following functionality: * create, modify and delete geodata (raster and vector) * edit vector geodata (modify geometry and attributes) * geodata management (copy, move, various formats import/export, etc.) * geodata rendering as maps using OpenGL/OpenGL ES * utility functions (network requests, oAuth2, json) * `nextgis.com`/`NextGIS Web` integration (under development) The library has `С API` and bindings to android java/kotlin programming languages using `jni`. **android_maplib** library is written on `Kotlin` and acts as easy wrapper around C API nextgis_datastore. ## Install To use SDK the **Android Studio** required. You need to add SDK to your project. ## Add to project To add `NextGIS Mobile SDK` to your project follow these steps: 1. Launch **Android Studio**. 2. Open you application `build.gradle` file. 3. Make sure that the parameter `minSdkVersion` has API level 14 or higher. 4. Add following line to dependency block: ```groovy dependencies { implementation 'com.nextgis.maplib:maplib:3.0.+' } ``` ## Add map You need to add map into your application: 1. As soon as possible initialize the library: ```kotlin override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) API.init(this@MainActivity) } ``` 2. Add `MapView` into the application layout: ```xml ``` 3. Create or open map document file: ```kotlin val map = API.getMap("main") ``` 4. Link map with view and enable rendering (rendering is frozen by default): ```kotlin val mapView = findViewById(R.id.mapView) if(mapView != null) { mapView.setMap(map) } mapView.freeze = false ``` ## Create feature class To create feature class in datastore follow these steps: 1. Get or create datastore. You can select any name for a datastore (i.e., *store*). ```kotlin val dataStore = API.getStore("store") ``` 2. Create feature class in a datastore with needed definitions. ```kotlin val options = mapOf( "CREATE_OVERVIEWS" to "ON", "ZOOM_LEVELS" to "2,3,4,5,6,7,8,9,10,11,12,13,14" ) val fields = listOf( Field("long", "long", Field.Type.REAL), Field("lat", "lat", Field.Type.REAL), Field("datetime", "datetime", Field.Type.DATE, "CURRENT_TIMESTAMP"), Field("name", "name", Field.Type.STRING) ) val pointsFC = dataStore.createFeatureClass("points", Geometry.Type.POINT, fields, options) ``` 3. Load spatial data to the feature class. ```kotlin // create coordinates list data class PtCoord(val name: String, val x: Double, val y: Double) val coordinates = listOf( PtCoord("Moscow", 37.616667, 55.75), PtCoord("London", -0.1275, 51.507222), PtCoord("Washington", -77.016389, 38.904722), PtCoord("Beijing", 116.383333, 39.916667) ) // Project from EPSG:4326 to EPSG:3857 val coordTransform = CoordinateTransformation.new(4326, 3857) for(coordinate in coordinates) { val feature = pointsFC.createFeature() if(feature != null) { val geom = feature.createGeometry() as? GeoPoint if(geom != null) { val point = Point(coordinate.x, coordinate.y) val transformPoint = coordTransform.transform(point) geom.setCoordinates(transformPoint) feature.geometry = geom feature.setField(0, coordinate.x) feature.setField(1, coordinate.y) feature.setField(3, coordinate.name) pointsFC.insertFeature(feature) } } } ``` ## Load feature class to datastore To load feature class from GIS file format to datastore follow these steps: 1. Get or create datastore. You can select any name for a datastore (i.e., *store*). ```kotlin val dataStore = API.getStore("store") ``` 2. From catalog get a feature class object if GIS file format and copy it to the datastore. ```kotlin val tmpDir = API.getTmpDirectory() val testGeojsonObj = tmpDir?.child("test.geojson") val copyOptions = mapOf( "CREATE_OVERVIEWS" to "ON", "NEW_NAME" to "trees" ) val createResult = testGeojsonObj?.copy(Object.Type.FC_GPKG, store!!, true, copyOptions) ?: false val treesFC = Object.forceChildToFeatureClass(store?.child("trees")!!) ``` ## Create raster To create raster set following settings: * raster extent * name * XYZ source URL * minimum and maximum zoom levels * raster spatial reference in EPSG code > ```kotlin > val bbox = Envelope(-20037508.34, 20037508.34, -20037508.34, 20037508.34) > val baseMap = dataDir.createTMS("osm.wconn", "http://tile.openstreetmap.org/{z}/{x}/{y}.png", > 3857, 0, 18, bbox, bbox, 14) > ``` ## Add layer to a map with style To add new layer to the map you need: 1. Add vector layer to a map ```kotlin val pointsLayer = map.addLayer("Points", pointsFC) ``` 2. Set style name ```kotlin pointsLayer.styleName = "pointsLayer" ``` 3. Setup style ```kotlin val style = pointsLayer.style style.setString("color", colorToHexString(Color.rgb(0, 190,120))) style.setDouble("size", 8.0) style.setInteger("type", 6) // Star symbol ``` 4. Apply modified style to the layer ```kotlin pointsLayer.style = style ``` ## SDK API References The section is in progress ## Demo projects See demo projects at this [page](android_demos.md). # ngmiv3.html.md # NextGIS iOS SDK ## Intro NextGIS iOS SDK is a set of libraries used to support work with geodata in mobile applications for iPhone and iPad. The SDK includes: * [nextgis_datastore](https://github.com/nextgis/nextgis_datastore) library * [ios_maplib](https://github.com/nextgis/ios_maplib) library The **nextgis_datastore** library is written in `С++11` and based on [GDAL](http://gdal.org/). The library supports the following functionality: * create, modify and delete geodata (raster and vector) * edit vector geodata (modify geometry and attributes) * geodata management (copy, move, various formats import/export, etc.) * geodata rendering as maps using OpenGL/OpenGL ES * utility functions (network requests, oAuth2, json) * `nextgis.com`/`NextGIS Web` integration (under development) The library has `С API` and bindings to android java/kotlin programming languages using `jni`. The **ios_maplib** library is written in `Swift` and acts as easy wrapper around C API nextgis_datastore. ## Install To use SDK the **Xcode 8** or higher required. Also the `Carthage` utility required. Carthage is intended to be the simplest way to add frameworks to your Cocoa application. To install Carthage follow instruction at [Cathage site](https://github.com/Carthage/Carthage/). In your project folder create `Cartfile` with following text: ```bash github "nextgis/ios_maplib" ``` In terminal execute command: ```bash carthage update --platform "iOS" ``` The command will download and install all necessary components. ## Add to project To display current location on the map you need to add to Info.plist following pair fr key-value with `String` type: ```bash Privacy - Location When In Use Usage Description | String | Shows your location on the map ``` In your project `General settings` tab in `Linked Frameworks and Libraries` section, drag & drop\`\`ngstore.framework\`\` and `ngmaplib.framework` from `Carthage/Build/iOS` folder. ![image](ngmobile_dev/source/_static/linked_frameworks_xcode.png) Next you need to setup copying of `ngstore.framework` and `ngmaplib.framework` to building directory. In `Build Phases` tab click the `+` icon and in context menu select `New Run Script Phase`. In `Run Script` section add following text to the script area below the `Shell`: ```bash /usr/local/bin/carthage copy-frameworks ``` Next add following lines to `Input Files` field: ```bash $(SRCROOT)/Carthage/Build/iOS/ngstore.framework $(SRCROOT)/Carthage/Build/iOS/ngmaplib.framework ``` ![image](ngmobile_dev/source/_static/build_run_script_xcode.png) The details see in [Carthage](https://github.com/Carthage/Carthage/) documentaion. The library was build with disabled **bitcode** option, so you need to disable it in your project as well. In your project settings select `Build Settings` tab and set option `Enable bitcode NO` for both build types (**Debug** and **Release**). ![image](ngmobile_dev/source/_static/bitcode_disable_xcode.png) In the end add to your View controller the `GLK View` and set as a custom class `MapView` class from `ngmaplib` module or some derived class. ![image](ngmobile_dev/source/_static/storyboard_xcode.png) ## SDK API References The SDK API reference can be found in [documentation](swift_api.md). ## Demo projects See demo projects at this [page](ios_demos.md). # ngqgis_connect.html.md # How to manage data with desktop app QGIS You can upload, edit and perform other operations with geodata in your [Web GIS](description.md#ngcom-description) not only in [Web interface](../../docs_ngweb/source/admin_interface.md#ngw-admin-interface) but also with desktop app QGIS. NextGIS Connect allows to share data with multiple Web GIS from your desktop app. All you need to so is set up a [connection](https://docs.nextgis.com/docs_ngconnect/source/ngc_install.html#ng-connect-new-connection). With NextGIS Connect plugin you can: * Quickly upload [to your Web GIS](https://docs.nextgis.com/docs_ngconnect/source/ngc_data_transfer.html) raster and vector data or entire QGIS projects. * Create [Web Maps](https://docs.nextgis.com/docs_ngconnect/source/manage.html#web-map). * Publish data via standard protocols [WFS, WMS, OGC API - Features](https://docs.nextgis.com/docs_ngconnect/source/manage.html#wfs-wms-ogc-api-features). * [Edit](https://docs.nextgis.com/docs_ngconnect/source/edit.html) data in Web GIS using QGIS desktop app. * [Export](https://docs.nextgis.com/docs_ngconnect/source/export.html) data and layer styles to local files. NextGIS Connect plugin is available in the standard QGIS plugin repository. See also the detailed [user guide](https://docs.nextgis.com/docs_ngconnect/source/index.html) for NextGIS Connect. # ngw_attribute2description.html.md # Attribute to description for Web GIS If you have long texts describing layer features it is more handy to have them in the description instead of an attribtute field. This tool allows to create descriptions for all the features of the layer by copying text from a selected field. The tool replaces current description. If the selected attribute is empty, the feature is skipped. Inputs: * Web GIS address - URL of your Web GIS, e.g. [https://demo.nextgis.com](https://demo.nextgis.com) and credentials, if necessary: NextGIS ID and password; * Layer ID - numbers at the end of the layer’s URL; * Attribute name - enter name of the field from which the description text is to be copied; * Erase descriptions - tick to remove descriptions for all features. Outputs: * Link to the modified Web GIS layer. Launch the tool: [https://toolbox.nextgis.com/t/ngw_attribute2description](https://toolbox.nextgis.com/t/ngw_attribute2description) Example: ![image](docs_toolbox/source/_static/ngw_attribute2description_input_en.png)![image](docs_toolbox/source/_static/ngw_attribute2description_result_en.png) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # ngw_contribution_activity.html.md # Contribution activity report for resource Get user activity report for a resource from the NextGIS Web server. Works for one of the following resource types: * vector layer - you’ll get user activity for a particular layer; * resource group - all versioned vector layers within this group are analyzed; * Web Map - all versioned layers added to the map are analyzed. Inputs: * NGW URL - Web GIS address (e.g., [https://demo.nextgis.com](https://demo.nextgis.com)); * Login - NextGIS ID or user login; * Password - password for that user; * Resource ID - numbers at the end of the resource URL; * Start date - optional. First day of the period, in YYYY-mm-dd format; * End date - optionsl. Last day of the period, in YYYY-mm-dd format, not less than 28 days and not over 366 days from the initial date. Outputs: * HTML file with an interactive activity report. Launch the tool: [https://toolbox.nextgis.com/t/ngw_contribution_activity](https://toolbox.nextgis.com/t/ngw_contribution_activity) Example: ![image](docs_toolbox/source/_static/ngw_contribution_activity_result_en_2.png) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # ngw_copy_group.html.md # Copy nextgis.com resource group with data Copies structure+data of resource group on NextGIS platform to other resourse group or Web GIS. Copies the data, subgroups, styles and Web Maps with layers added. The following resource types are supported: * resource group; * vector layer; * QGIS style; * Web Map. Inputs: * Source Web GIS address - URL of your Web GIS, e.g. [https://demo.nextgis.com](https://demo.nextgis.com) and login/password if necessary; * Source group ID - Source Web GIS group resource number; * Destination Web GIS address - URL of your Web GIS, e.g. [https://demo.nextgis.com](https://demo.nextgis.com) and login/password if necessary; * Destination group ID - Web GIS group resource number in destination instance, where group will be created; * Do not copy data - create only empty layers with attributes and styles; * Timeout for NGW server responces in seconds Outputs: * New resource group in the target Web GIS; * Text output listing the number of copies resources. Launch the tool: [https://toolbox.nextgis.com/t/ngw_copy_group](https://toolbox.nextgis.com/t/ngw_copy_group) Example: **Try the tool in action by downloading our example:** **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # ngw_copy_layer.html.md # Duplicate Web GIS layer Creates a copy of a vector layer in a Web GIS hosted on nextgis.com to another resourse group or another Web GIS. Can be used for layers generated by NextGIS FormBuilder. Copies the layer structure (order of the attributes, field names, types, aliaces, desctiptions) and data, including attachments. Metadata is not copied. Inputs: * Source Web GIS address - full URL, example: [https://sandbox.nextgis.com](https://sandbox.nextgis.com); * Source Layer ID (the number at the end of the layer resource URL); * Source username - NextGIS ID or username of a user of the source Web GIS who has permissions to read the resource; * Source password. Password for this user; * Target Web GIS address - full URL, example: [https://sandbox.nextgis.com](https://sandbox.nextgis.com). Can be the same as the source if you duplicate a layer within one Web GIS; * Destination group ID. Web GIS group resource number in the target Web GIS, where the layer copy will be created; * Target username - NextGIS ID or username of a user of the target Web GIS who has permissions to create resources; * Target Password. Password of that user; * No copy data. Tick this to create an empty layer with the same attributes. Outputs: * New layer created in the target Web GIS. Launch the tool: [https://toolbox.nextgis.com/t/ngw_copy_layer](https://toolbox.nextgis.com/t/ngw_copy_layer) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # ngw_feature_history.html.md # Feature history Get the history of a feature from NextGIS Web versioned vector layer. More on [versioning](https://docs.nextgis.com/docs_ngweb/source/version.html). You can enable versionin in the [layer settings](https://docs.nextgis.com/docs_ngweb/source/layers_settings.html#create-vector-layer-vers-pic). Inputs: * NGW URL - Web address of the Web GIS e.g., [https://example.nextgis.com](https://example.nextgis.com); * Login - NextGIS ID or user login; * Password of that user; * Resource ID of the vector layer resource - numbers at the end of the resource page link; * Feature ID - number of the feature indicated in the `#` field of the feature table; * Start time - initial timestamp for history (should be in YYYY-mm-dd HH:MM:SS format, optional); * End time - final timestamp for history (should be in YYYY-mm-dd HH:MM:SS format, optional). Outputs: * Result GeoPackage. GeoPackage file with feature history versions. Each version has the geometry of the feature, attribute values plus additional fields: * vid - number of the version; * author - user who made the changes; * time - date and time of the edits; * action - what happened to the feature: created, updated, deleted, restored. Launch the tool: [https://toolbox.nextgis.com/t/ngw_feature_history](https://toolbox.nextgis.com/t/ngw_feature_history) Example: ![image](docs_toolbox/source/_static/ngw_feature_history_result_en_2.png) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # ngw_group2webmap.html.md # Resource group to Web Map Creates a Web Map from vector and raster layers of a resource group. Web Map extent is set to the combined extent of all the layers. Inputs: * Web GIS address - URL of your Web GIS, e.g. [https://demo.nextgis.com](https://demo.nextgis.com) and login/password if necessary; * Resource group ID - number at the end of the link to the folder with layers. For Main resource group ID=0; * Web Map name - name of the Web Map to create. If not set, a name will be generated automatically (group name + “map”); * Create default style - if a layer has no style, creates a default one instead of skipping the layer. If disabled, layers with no styles are not included in the Web Map; * Overwrite Web Map. If a Web Map with the same name already exists in the resource group, replace it. Outputs: * Link to the Web Map; * Error log Launch the tool: [https://toolbox.nextgis.com/t/ngw_group2webmap](https://toolbox.nextgis.com/t/ngw_group2webmap) Example: ![image](docs_toolbox/source/_static/ngw_group2webmap_input_en.png)![image](docs_toolbox/source/_static/ngw_group2webmap_result_en.png) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # ngw_integration.html.md # Integration with NextGIS Web NextGIS Mobile can be connected to a Web GIS created on the NextGIS Web platform. This integration allows to exchange data with a Web GIS: upload local layers to the server, download data from the server, edit the data, view tracks recorded with the app on a Web Map. To add a connection to a Web GIS, you need to be [logged in](https://docs.nextgis.com/docs_ngmobile/source/auth.html). If the NextGIS ID already has a Web GIS associated with it, it will be automatically added to the app. All the Web GIS where the user is a [team member](https://docs.nextgis.com/docs_ngcom/source/teams.html) will also be added. If you don’t have a Web GIS yet, [create it](https://docs.nextgis.com/docs_ngcom/source/create_webgis.html) from your account. You can add more connections to [cloud-based Web GIS](https://docs.nextgis.com/docs_ngmobile/source/ngw_integration.html#ngmobile-create-a-connection) as well as [on-premise Web GIS](https://docs.nextgis.com/docs_ngmobile/source/ngw_integration.html#ngm-create-connection-onp). You can [edit](https://docs.nextgis.com/docs_ngmobile/source/ngw_integration.html#ngmobile-change-account) or [delete](https://docs.nextgis.com/docs_ngmobile/source/ngw_integration.html#ngmobile-delete-account) a Web GIS connection. ## Add a layer (vector/raster) from Web GIS 1. Open Layers tree panel (item 1 in [Fig. 943.](main.md#ngmobile-main-activity-pic-1)). 2. Then tap “Add geodata” button. 3. Select “Add from Web GIS” in the opened menu. ![image](docs_ngmobile/source/_static/ngm_layer_tree_add_from_wg_en.png) 1. If you have multiple Web GIS connections added to the app, select the one you need (see [Fig. 1034.](#ngmobile-select-ngw-layer-pic)). ![image](docs_ngmobile/source/_static/ngm_select_webgis_en.png) #### NOTE How to add a Web GIS connection [Add Web GIS connection](#ngmobile-create-a-connection-to-webgis). In the opened window you can see the list of internal resources and layers (vector and raster) for the selected Web GIS account. Select a group of Web GIS resources, then tick a layer and tap “Add”. A vector layer can be added both as vector and as raster. ![image](docs_ngmobile/source/_static/ngm_add_layer_select_en.png) #### NOTE If you need to select several layers in different groups of the same Web GIS, the ticked layers stay selected while you switch between groups. 1. A pop-up window of layer processing progress will appear. ![image](docs_ngmobile/source/_static/ngm_processing_layer_en.png) If you need to stop downloading the layer, press **Cancel**. To continue using the app as the layer is being processed, press **Hide**. The progress bar will be moved to the notification panel (see [Fig. 1037.](#ngmobile-download-status-pic)). ![image](docs_ngmobile/source/_static/ngm_download_status_en.png) If you want to stop downloading the layer, open the notification panel and press **Stop**. ## Upload layer to Web GIS Click on three dots next to the layer name to open the context menu and select “Send to NextGIS”. ![image](docs_ngmobile/source/_static/ngm_send_to_wg_en.png) Select the Web GIS you wish to add the layer to from the list, see [Fig. 1034.](#ngmobile-select-ngw-layer-pic). Next select the resource group and tap **Add**. ![image](docs_ngmobile/source/_static/ngm_add_to_wg_en.png) If the layer was uploaded successfully, you’ll see the sync symbol ![circular arrows](docs_ngmobile/source/_static/icon_layer_sync.png) next to the layer’s icon. In Web GIS you’ll find the uploaded data, with no style. #### NOTE The number of layers you can upload to Web GIS is determined by your [subscription plan](https://nextgis.com/pricing-base/). On Free you can upload up to 15 layers. If you need more, [upgrade to Premium](https://my.nextgis.com/subscription/) in your NextGIS ID account. ## Parameters for synchronization with Web GIS NextGIS Mobile application can access the server at set intervals to share edits and keep layers on the device and in the Web GIS up to date. To enable synchronization: 1. Open the menu by tapping the three dots in the top right corner (item 5 in [Fig. 943.](main.md#ngmobile-main-activity-pic-1)). 2. Select “Settings” ([Fig. 1046.](#ngmobile-settings2-pic)). 3. Select “Web GIS” ([Fig. 1047.](#ngmobile-settings-ngw-pic)). 4. Select the Web GIS from the list. ![image](docs_ngmobile/source/_static/ngm_webgis_list_en.png) 1. On the Web GIS settings screen you can: - Turn on automatic synchronization; - Set up sync interval (between 5 min and 2 hours); - Turn on/off synchronization for a particular Web GIS layer. ![image](docs_ngmobile/source/_static/ngm_webgis_sync_param_en.png) Synchronized layers are marked with the ![circular arrows](docs_ngmobile/source/_static/icon_layer_sync.png) icon. The same icon appears by the layer name in the layer tree. ![image](docs_ngmobile/source/_static/ngm_layers_tree_sync_en.png) ## Add Web GIS connection There are two ways to connect your NextGIS Mobile app to a Web GIS. **Via layer tree** 1. Open Layers tree panel (item 1 in [Fig. 943.](main.md#ngmobile-main-activity-pic-1)). 2. Then tap on “Add geodata” button (item 4 in [Fig. 944.](main.md#ngmobile-layer-tree-pic)). 3. Select “Add from Web GIS”. ![image](docs_ngmobile/source/_static/ngm_layer_tree_add_from_wg_en.png) 1. In the opened dialog select “Add Web GIS”. ![image](docs_ngmobile/source/_static/ngm_add_webgis_en.png) 1. On the next screen enter the Web GIS name, username and password of your NextGIS ID and press **Sign in**. ![image](docs_ngmobile/source/_static/ngm_webgis_login_en.png) If you don’t have a Web GIS, tap **create** on this screen. Your account page will be opened in a browser. From that page you can [create a Web GIS](https://docs.nextgis.com/docs_ngcom/source/create_webgis.html). **From the Settings** 1. Open Layers tree panel (item 1 in [Fig. 943.](main.md#ngmobile-main-activity-pic-1)). 2. Select “Settings”. ![image](docs_ngmobile/source/_static/ngm_menu_en.png) 1. Select “Web GIS”. ![image](docs_ngmobile/source/_static/ngm_settings_webgis_en.png) 1. In the opened menu press **Add Web GIS**. ![image](docs_ngmobile/source/_static/ngm_nowebgis_en.png) On the next screen enter the Web GIS name, username and password of your NextGIS ID and press **Sign in** (see [Fig. 1045.](#ngm-webgis-login-pic)). ## Add connection to NextGIS Web on-premise If you keep your data on your own NextGIS Web server, tap “Add Web GIS” using either of the ways to add a new Web GIS connection (see above), then tap the link at the bottom of the screen (see [Fig. 1049.](#ngmobile-new-webgis-nextgis-pic)). ![image](docs_ngmobile/source/_static/ngm_webgis_switch_op_en.png) In the opened dialog fill in the connection details: Web GIS URL, username and password, then press **Sign in**. ![image](docs_ngmobile/source/_static/ngm_webgis_login_op_en.png) #### NOTE > Many devices automatically add a space at the end of a text field when using auto-complete or pasting from a clipboard. In this case you need to delete the space manually. For NextGIS Web an additional character makes it a different username / password, so you won’t be able to log in. ## Edit Web GIS connection 1. Open the menu by tapping the three dots in the top right corner (item 5 in [Fig. 943.](main.md#ngmobile-main-activity-pic-1)). 2. Select “Settings” ([Fig. 1046.](#ngmobile-settings2-pic)). 3. Select “Web GIS” in the opened menu ([Fig. 1047.](#ngmobile-settings-ngw-pic)). 4. Select a Web GIS from the list (see [Fig. 1047.](#ngmobile-settings-ngw-pic)). 5. On the next screen select “Edit account”. ![image](docs_ngmobile/source/_static/ngm_webgis_edit_acc_en.png) 6. In the opened window you can modify the following fields (see [Fig. 1052.](#ngmobile-edit-account-pic)): 1. Username; 2. Password. ![image](docs_ngmobile/source/_static/ng_mobile_edit_account_eng.png) ## Delete Web GIS connection There are two ways to delete a connection to a Web GIS. You can delete the connection **in the app settings**. 1. Open the menu by tapping the three dots in the top right corner (item 5 in [Fig. 943.](main.md#ngmobile-main-activity-pic-1)). 2. Select “Settings” ([Fig. 1046.](#ngmobile-settings2-pic)). 3. Select “Web GIS” ([Fig. 1047.](#ngmobile-settings-ngw-pic)). 4. Select a Web GIS from the list. 5. Select “Delete account”. ![image](docs_ngmobile/source/_static/ngm_webgis_remove_acc_en.png) 1. Confirm deleting the account. ![image](docs_ngmobile/source/_static/ngm_webgis_remove_confirm_en.png) You can also delete a connection to a Web GIS in your **device settings**. 1. Go to the Settings of your phone or tablet. 2. Go to Accounts section of the settings. ![image](docs_ngmobile/source/_static/settings_in_os_eng.png) 1. Select the “NextGIS” account from the list. ![image](docs_ngmobile/source/_static/accounts_in_os_eng.png) 1. Select the Web GIS connection you want to delete. ![image](docs_ngmobile/source/_static/remove_account_in_os_eng.png) Tap **Delete** (it can be on the same page or in a context menu). ![image](docs_ngmobile/source/_static/remove_account1_in_os_eng.png) # ngw_intersect.html.md # Intersection registry for Web GIS The tool intersects all layers of the nextgis.com web map using the specified geometry and generates a report for each layer. Inputs: * Web GIS address. NextGIS Web URL, e.g.: [https://sandbox.nextgis.com](https://sandbox.nextgis.com); * Web Map ID. Numbers at the end of the Web Map URL; * WKT geometry. Geometry for intersection in WKT format. Coordinate system: EPSG:3857. Outputs: * XLSX table with a list of intersected layers. Launch the tool: [https://toolbox.nextgis.com/t/ngw-intersect](https://toolbox.nextgis.com/t/ngw-intersect) Example: ![image](docs_toolbox/source/_static/ngw_intersect_input_en.png)![image](docs_toolbox/source/_static/ngw_intersect_result_en.png) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # ngw_layer_historical_state.html.md # Get the layer historical state Get a GPKG file with the state of the NextGIS Web versioned vector layer at a certain point in time or at the time of a certain version. Learn more about [versioning](https://docs.nextgis.com/docs_ngweb/source/version.html). Inputs: * Web GIS address - URL of your Web GIS on NextGIS platform, e.g. [https://sandbox.nextgis.com](https://sandbox.nextgis.com), NextGIS ID and password; * Layer ID - numbers at the end of the vector layer URL in NextGIS Web; * Select the version of the layer you wish to download using **one of the options**: > 1. Timestamp - indicate a moment in YYYY-mm-dd HH:MM:SS format, the tool will automatically pick the corresponding version. Use this field OR the ‘Version ID’ field. > 2. Version ID - ID of the target version, you can check the number of the current version [via API](https://docs.nextgis.com/docs_ngweb/source/version.html#vers-ngw-api). Enter an integer equal or below the current version number. Use this field OR the ‘Timestamp’ field. Outputs: * GPKG file with historical layer data. Launch the tool: [https://toolbox.nextgis.com/t/ngw_layer_historical_state](https://toolbox.nextgis.com/t/ngw_layer_historical_state) Example: ![image](docs_toolbox/source/_static/ngw_layer_historical_state_input_en.png)![image](docs_toolbox/source/_static/ngw_layer_historical_state_result_en.png) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # ngw_layer_schema.html.md # Manage Web GIS layer structure Save NextGIS Web vector layer attribute table settings and schema to CSV. Or update table settings from CSV file. Inputs: * Web GIS address. URL of your Web GIS on NextGIS platform, e.g. [https://demo.nextgis.com](https://demo.nextgis.com); * ID of the vector layer. Numbers at the end of the URL of the vector layer resource in Web GIS; * New CSV schema - if you want to modify the layer table, upload CSV file with the new settings or a ZIP-archive with CSV in the root. Outputs: * CSV file with original field settings; Or: * Changed layer fields in Web GIS and CSV file with original settings. For each field of the layer, the following parameters are recorded: * id - field identifier; * keyname; * display_name; * datatype; * typemod; * label_field - marks the field selected for labels; * grid_visibility - marks the fields that are included in the attribute table; * text_search - indicates if the text search is allowed for the field; * lookup_table - if a lookup table is connected to the field, its resource ID is indicated. [More on vector layer field settings](https://docs.nextgis.com/docs_ngweb/source/layers_settings.html#ngw-attributes-edit). If you want to use the tool to modify the fields: 1. Use the tool to generate CSV of the current settings. 2. Open the file in Excel or text editor and make the changes. Settings that can be edited with the tool: * keyname - must not be empty or the same as another existing field, use only simple latin characters, numbers and underscore; * display_name - must not be empty or the same as another existing field; * label_field - only FALSE or TRUE, only one field can be marked “TRUE”; * grid_visibility - only FALSE or TRUE; * text_search - only FALSE or TRUE. Launch the tool: [https://toolbox.nextgis.com/t/ngw_layer_schema](https://toolbox.nextgis.com/t/ngw_layer_schema) Example: ![image](docs_toolbox/source/_static/ngw_layer_schema_result.png) **Try the tool in action by downloading our example:** **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # ngw_merge_layers.html.md # Merge two Web GIS vector layers This tool allows you to copy data from one layer to another with the same Web GIS on NextGIS platform, including attachments and attribute values. NextGIS Web (NGW) is a geodata managing system. You can use it for free after [signing up](https://docs.nextgis.com/docs_ngcom/source/create.html). With NextGIS Web you can store geodata, create interactive online maps, give access to them to your teammates and clients, edit features directly on the map and in the feature tables, as well as process them with specialized Toolbox tools. [More on what NGW can do](https://docs.nextgis.com/docs_ngweb/source/general.html). The layer you copy features from is **source**. The layer you want to add the features to is **target**. Inputs: * Source layer Web GIS address i.e.: [https://sandbox.nextgis.com](https://sandbox.nextgis.com); * Source Layer ID - numbers at the end of the resource URL; * Source username - NextGIS ID or username of a user of the above Web GIS. User must have [permissions](https://docs.nextgis.com/docs_ngcom/source/permissions.html) to read resource and data; * Password for the source Web GIS user; * Target layer Web GIS address, i.e.: [https://sandbox.nextgis.com](https://sandbox.nextgis.com). Can be the same as the source. * Target layer ID - numbers at the end of the resource URL; * Target username - NextGIS ID or username of a user of the target Web GIS. User must have [permissions to create resources (write)](https://docs.nextgis.com/docs_ngcom/source/permissions.html); * Target Password - password for the taget Web GIS user. Outputs: * Modified layer in the target Web GIS. Launch the tool: [https://toolbox.nextgis.com/t/ngw_merge_layers](https://toolbox.nextgis.com/t/ngw_merge_layers) ![image](docs_toolbox/source/_static/ngw_merge_layers_input.png)![image](docs_toolbox/source/_static/ngw_merge_layers_result.png) **Try the tool in action by downloading our example:** [Input data set](https://nextgis.com/data/toolbox/ngw_merge_layers/ngw_merge_layers_inputs.zip) to test the tool. The archive contains step-by-step instructions. [Result example](https://nextgis.com/data/toolbox/ngw_merge_layers/ngw_merge_layers_outputs.zip) of the tool run. # ngw_op.html.md # NextGIS Web on-premise * [System requirements](op_sys_req.md) * [Installation](op_install.md) * [Endpoints](op_install.md#endpoints) * [Install and configure Docker](op_install.md#install-and-configure-docker) * [Deploy Docker stack](op_install.md#deploy-docker-stack) * [Weekly maintenance and backup](op_install.md#weekly-maintenance-and-backup) * [Backups](op_backup.md) * [Backups location](op_backup.md#backups-location) * [Offline backup](op_backup.md#offline-backup) * [Online backup](op_backup.md#online-backup) * [Upgrade](op_upgrade.md) * [Upgrade to 3.3.x from 3.2.x](op_upgrade.md#upgrade-to-3-3-x-from-3-2-x) * [Upgrade to 3.2.x from 3.1.x](op_upgrade.md#upgrade-to-3-2-x-from-3-1-x) * [Upgrade to 3.1.x from 3.0.x](op_upgrade.md#upgrade-to-3-1-x-from-3-0-x) * [Upgrade to 3.0.x from 2.9.x](op_upgrade.md#upgrade-to-3-0-x-from-2-9-x) * [Upgrade to 2.9.x from 2.8.x](op_upgrade.md#upgrade-to-2-9-x-from-2-8-x) * [Upgrade to 2.8.x from 2.7.x](op_upgrade.md#upgrade-to-2-8-x-from-2-7-x) * [Upgrade to 2.7.x from 2.6.x](op_upgrade.md#upgrade-to-2-7-x-from-2-6-x) * [Upgrade to 2.6.x from 2.5.x](op_upgrade.md#upgrade-to-2-6-x-from-2-5-x) * [Upgrade to 2.5.x from earlier versions](op_upgrade.md#upgrade-to-2-5-x-from-earlier-versions) * [Configure](op_setup.md) * [Change endpoints](op_setup.md#change-endpoints) * [Migrating to another server](op_setup.md#migrating-to-another-server) * [Additional information](op_additional.md) * [Examples of docker-compose.yaml](op_additional.md#examples-of-docker-compose-yaml) * [Configuring reverse proxy: Nginx](op_additional.md#configuring-reverse-proxy-nginx) * [Changelog](sysadmin_updates.md) # ngw_srs.html.md # Spacial Reference Systems You can manage spacial reference systems using Control panel. It allows browsing the list of added SRS, importing SRS from the catalog and creating your own. ![image](docs_ngweb/source/_static/Control_panel_SRS_en.png) To see which SRS are already added, select “List”. In this list there are two SRS by default: «WGS 84 / Lon-lat (EPSG:4326)» and «WGS 84 / Pseudo-Mercator (EPSG:3857)». ## Custom Spacial Reference Systems #### NOTE Only users with administrative permissions can add and modify SRS. If needed, you can import additional SRS from the catalog or create your own. ### Import SRS from catalog To add an SRS from the catalog, go to the Control panel and in the Spacial reference system section press **Catalog** (or, if you are viewing the SRS list, press **Import from catalog**). You will be redirected to the catalog page. Start typing the name of the SRS in the search bar. When you find the desired SRS in the search results, press the icon with the arrow next to it. ![image](docs_ngweb/source/_static/new_srs_catalog_en.png) You will be redirected to the import page. Here you can modify the name of SRS to be displayed in your WebGIS. ![image](docs_ngweb/source/_static/new_srs_import_en.png)![image](docs_ngweb/source/_static/new_srs_import_save_en.png) On the next page, press **Save** to complete the import. ### Creating new SRS To create a new SRS open “Control panel” in the main menu and press **Create** in “Spatial reference systems” (or press **Create** while on the SRS list page). ![image](docs_ngweb/source/_static/new_srs_eng_2.png) You can give an SRS display name and enter its definition in OGC WKT format. You can also import definitions from common formats as PROJ, MapInfo and EPSG, after the import they will get converted to OGC WKT format. Then press **“Create”** . The new SRS will appear in the list. ## How to edit or delete SRS You can change the *display name* of any SRS by clicking the pencil icon in the corresponding row of the list. If you created an SRS yourself, you can also modify its *OGC WKT definition*. ![image](docs_ngweb/source/_static/list_srs_edit_en.png)![image](docs_ngweb/source/_static/srs_edit_en.png) To *delete* an SRS, press the trash can icon in the corresponding row of the list. A small dialog window will appear. Confirm that you want to delete the SRS by pressing **OK**. ![image](docs_ngweb/source/_static/delete_srs_en.png) After the operation is completed, a message will appear announcing “SRS deleted”. The two default SRS, «WGS 84 / Lon-lat (EPSG:4326)» and «WGS 84 / Pseudo-Mercator (EPSG:3857)», can’t be removed. ## Usage of additional SRS The added SRS can be used for various purposes: 1. To capture coordinates on Web maps. If you have set up additional SRS (one or several), you can now conveniently capture coordinates in this SRS from anywhere on the map: 2. To export vector layers. All custom SRS are also available for data export. See [this section](https://docs.nextgis.com/docs_ngweb/source/admin_interface.html#data-export-to-csv-and-geojson-formats) for details. 3. To extend API requests. Support for custom SRS is gradually added to NextGIS Web API too. For example, this request will return a feature in a required SRS (in example we use custom SRS identifier 990002) /api/resource/{id}/feature/{fid}?srs=990002 ### SRS identifier For API or some Toolbox tools (e.g. [Web Map to QGIS project](https://toolbox.nextgis.com/t/webmap2qgis)) you need to know the identifier of the SRS. If it’s a standard SRS that has **EPSG** code, just use the numbers of the code, e.g. `3857` for EPSG:3857. If it’s a custom SRS [added via definition](https://docs.nextgis.com/docs_ngweb/source/ngw_srs.html#ngw-srs-create) that does not has EPSG code, it gets a unique code within a specific Web GIS. To view it, open the SRS in the edit mode, the identifier is at the end of the URL: ![image](docs_ngweb/source/_static/user_srs_id_en.png) ## Custom SRS support for external PostGIS Databases A common case for Web GIS users is adding an external PostGIS/PostgreSQL database while [creating a PosGIS layer](https://docs.nextgis.com/docs_ngcom/source/data_connect.html#external-postgis-databases). These layers often get incorrectly displayed in the Web GIS. It happens when the spacial reference system has incorrect definition in the external database. To make the Web GIS-DB complex work efficiently, here’s what you need: 1. External database must have a table of SRS descriptions spacial_ref_sys. 2. In the geometry column (usually called “geom”) a SRS must be assigned. 3. The ID of the assigned SRS must be included in spacial_ref_sys. 4. Data in the external DB must actually be in that coordinate system, a.i. the SRS definition must correspond to the data. If all the above requirements are met, then whatever SRS you use in your database, layers created in Web GIS will be reprojected “on the fly” and displayed correctly along any other data you have in your Web GIS. To check if everything works correctly use [PostGIS diagnostics](https://docs.nextgis.com/docs_ngweb/source/postgis_details.html#postgis-diagnostics). # ngw_to_gpkg.html.md # Vector layers from Web GIS to GeoPackage The tool agglomerates all vector layers from the target resource group in Web GIS into one GeoPackage file, available for download. Input: * Web GIS address - Full URL, e.g. [https://demo.nextgis.com](https://demo.nextgis.com). * Login - Login for Web GIS user. * Password - Password for Web GIS user. * ID of resource group - ID of the group, whithin which the search of all vector layers will be performed, including embedded folders (resource groups). ID could be find in address bar on the webpage of the resource group. E.g. for [https://demo.nextgis.com/resource/4332](https://demo.nextgis.com/resource/4332) ID of the resource group is 4332. Output: * GeoPackage file with all vector layers. CRS - WGS 84, attributes will be in UTF-8 encoding. Watch the video on [youtube](https://youtu.be/mp0Z4OTp4Ho?si=QY41ZFrHMQla22k7). Launch the tool: [https://toolbox.nextgis.com/t/ngw_to_gpkg](https://toolbox.nextgis.com/t/ngw_to_gpkg) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # ngw_webmap2image.html.md # Web Map to image Save Web map as a PNG image file. Inputs: * Link to Web map on NextGIS Web platform. Example: [https://demo.nextgis.com/resource/7796/display?panel=layers](https://demo.nextgis.com/resource/7796/display?panel=layers). Open the Web Map and copy the link from the browser address bar. By default, the image contains what’s visible for Guest, i.e. anyone who’s not logged in. To check the visibility of the data, click on the user icon in the top right and click “Sign out”. If you want to use a private Web Map, enter the credentials: * Web GIS address - URL of your Web GIS, e.g. [https://demo.nextgis.com](https://demo.nextgis.com) * Login - NextGIS ID email address; * Password You can also configure the image size: * Output width in pixels. Optional. Default: 2048. * Output height in pixels. Optional. Default: 1152. The initial extent of the Web Map is fit into the rectangle of the indicated proportions. Outputs: * Image in PNG format Launch the tool: [https://toolbox.nextgis.com/t/ngw_webmap2image](https://toolbox.nextgis.com/t/ngw_webmap2image) Example: ![image](docs_toolbox/source/_static/ngw_webmap2image_input_en.png)![image](docs_toolbox/source/_static/ngw_webmap2image_result.png) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # ngw_webmap_combiner.html.md # Combine two Web Maps into a new one Combines two Web Maps into a new one. First Web Map is cloned and second Web Map layers are added to the new one. Inputs: * Web GIS address. Fill in the URL of your Web GIS, e.g. [https://demo.nextgis.com](https://demo.nextgis.com) and login/password; * Web Map 1 ID. First Web Map for combining, the ID is the numbers at the end of the URL; * Web Map 2 ID. Second Web Map for combining, the ID is the numbers at the end of the URL; Outputs: * New combined Web Map in Web GIS. Launch the tool: [https://toolbox.nextgis.com/t/ngw_webmap_combiner](https://toolbox.nextgis.com/t/ngw_webmap_combiner) Example: ![image](docs_toolbox/source/_static/ngw_webmap_combiner_input_en.png)![image](docs_toolbox/source/_static/ngw_webmap_combiner_result_en.png) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # nominatim_geocode.html.md # Geocode with Nominatim Convert an address or place name to geographic coordinates and a bounding box using the OpenStreetMap Nominatim API. Inputs: * Address / Place Name. Address or place name to geocode, e.g. `Basel, Switzerland` or `Marienplatz 1, München`; * Buffer (km). Expand the bounding box by this distance in km (default: 0). Useful to create a working area around a point address. Outputs: * JSON string with west, south, east, north — directly usable as bbox input for other tools; * Human-readable geocoding result summary; * Full JSON manifest with coordinates, bbox, area, and metadata. Launch the tool: [https://toolbox.nextgis.com/t/nominatim_geocode](https://toolbox.nextgis.com/t/nominatim_geocode) Example: ![image](docs_toolbox/source/_static/nominatim_geocode_result_en.png) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # ogr2ogr.html.md # ogr2ogr Layer creation, upload, refresh and download can be performed through ngw driver in ogr2ogr console program [https://gdal.org/drivers/vector/ngw.html](https://gdal.org/drivers/vector/ngw.html) Code snippets: Update vector layer in ngw from local geojson file ```bash layer_url=https://sandbox.nextgis.com/resource/4968 layer_name=preview login=administrator password=demodemo #delete all features from NGW layer ogrinfo -oo "USERPWD=$login:$password" NGW:$layer_url -sql "DELETE FROM $layer_name" #add features to ngw layer from geojson ogr2ogr -f NGW -nln "$layer_name" -append -doo "USERPWD=$login:$password" \ -doo "BATCH_SIZE=100" -t_srs EPSG:3857 "NGW:$layer_url" preview.geojson ``` # ogrmerge.html.md # Merge vector layers The tool merges many vector layers into one. Layers should be of same geometry type. Inputs: * ZIP archive with ESRI Shapefile, GeoJSON, GeoPackage or MapInfo TAB layers. You can combine files of different formats and coordinate reference systems in one set. Subfolders in the archive are supported. Outputs: * GeoPackage file with the result of the merge. The tool has no limit on the number of input layers. The name of the source layer is also saved. Launch the tool: [https://toolbox.nextgis.com/t/ogrmerge](https://toolbox.nextgis.com/t/ogrmerge) Example: ![image](docs_toolbox/source/_static/ogrmerge_input_en.png)![image](docs_toolbox/source/_static/ogrmerge_result_en.png) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # ogrstyle.html.md # NextGIS OGRStyle Some formats, such as MapInfo TAB or MIF/MID, have their own symbology that is processed by QGIS. However, it is not possible to view the description of these styles in QGIS. NextGIS OGRStyle allows to view the description of the embedded style in one click. This description makes it easier to configure data visualization in your projects. After installation you’ll find the plugin in the Plugins toolbar: ![button_ogrstyle](docs_ngqgis/source/_static/button_ogrstyle.png). Select the layer in the Layers panel of QGIS. Click on any feature of the layer. In the pop-up window “Style viewer” you’ll see a string description of the style. ![image](docs_ngqgis/source/_static/ogrstyle_result_en.png) See how the plugin works in our video: Watch on [youtube](https://www.youtube.com/watch?v=nW3iJHd3-Vk). # op_additional.html.md # Additional information ## Examples of docker-compose.yaml ### Standard Edition 3.3.0 ```yaml x-shared: &shared # Adjust the URLs below according to your network and reverse proxy # configuration. Initial values only work properly when accessing from # the server as localhost. NEXTGISWEB_URL: "http://hostname.localhost:8080" NEXTGISID_URL: "http://hostname.localhost:8081" NEXTGISID_INSTANCE_NGID: "00000000-0000-0000-0000-000000000000" NEXTGISID_ADMINISTRATOR_NGID: "00000000-0000-0000-0000-000000000000" services: app: image: cr.nextgis.com/nextgisweb/std/app:3.3.0 volumes: - { type: volume, source: data_app, target: /opt/ngw/data/app } - { type: volume, source: config_app, target: /opt/ngw/config/app } - { type: volume, source: secret, target: /opt/ngw/secret } - { type: volume, source: backup, target: /opt/ngw/backup } depends_on: [postgres] restart: unless-stopped ports: - 8080:8080 environment: <<: *shared NEXTGISWEB__CORE__LOCALE__DEFAULT: "en" postgres: image: cr.nextgis.com/nextgisweb/std/postgres:3.3.0 volumes: - { type: volume, source: data_postgres, target: /opt/ngw/data/postgres } - { type: volume, source: config_postgres, target: /opt/ngw/config/postgres } - { type: volume, source: secret, target: /opt/ngw/secret } restart: unless-stopped archivist: image: cr.nextgis.com/nextgisweb/std/archivist:3.3.0 volumes: - { type: volume, source: data_app, target: /opt/ngw/data/app } - { type: volume, source: data_postgres, target: /opt/ngw/data/postgres } - { type: volume, source: data_ngid, target: /opt/ngid/data/ngid } - { type: volume, source: config_app, target: /opt/ngw/config/app } - { type: volume, source: config_postgres, target: /opt/ngw/config/postgres } - { type: volume, source: config_ngid, target: /opt/ngid/config/ngid } - { type: volume, source: secret, target: /opt/ngw/secret } - { type: volume, source: backup, target: /opt/ngw/backup } restart: unless-stopped ngid: image: cr.nextgis.com/nextgisweb/std/ngid:3.3.0 volumes: - { type: volume, source: data_ngid, target: /opt/ngid/data/ngid } - { type: volume, source: config_ngid, target: /opt/ngid/config/ngid } - { type: volume, source: secret, target: /opt/ngid/secret } restart: unless-stopped ports: - 8081:8080 environment: <<: *shared NGID_ONPREMISE_CONFIGURATION: |- eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.... volumes: data_app: {} data_ngid: {} data_postgres: {} config_app: {} config_ngid: {} config_postgres: {} secret: {} backup: {} ``` ### Extended Edition 3.3.0 ```yaml x-shared: &shared # Adjust the URLs below according to your network and reverse proxy # configuration. Initial values only work properly when accessing from # the server as localhost. NEXTGISWEB_URL: "http://hostname.localhost:8080" NEXTGISID_URL: "http://hostname.localhost:8081" COLLECTOR_HUB_URL: "http://hostname.localhost:8082" TRACKER_HUB_URL: "http://hostname.localhost:8083" NEXTGISID_INSTANCE_NGID: "00000000-0000-0000-0000-000000000000" NEXTGISID_ADMINISTRATOR_NGID: "00000000-0000-0000-0000-000000000000" services: app: image: cr.nextgis.com/nextgisweb/ext/app:3.3.0 volumes: - { type: volume, source: data_app, target: /opt/ngw/data/app } - { type: volume, source: config_app, target: /opt/ngw/config/app } - { type: volume, source: secret, target: /opt/ngw/secret } - { type: volume, source: backup, target: /opt/ngw/backup } depends_on: [postgres] restart: unless-stopped ports: - 8080:8080 environment: <<: *shared NEXTGISWEB__CORE__LOCALE__DEFAULT: "en" postgres: image: cr.nextgis.com/nextgisweb/ext/postgres:3.3.0 volumes: - { type: volume, source: data_postgres, target: /opt/ngw/data/postgres } - { type: volume, source: config_postgres, target: /opt/ngw/config/postgres } - { type: volume, source: secret, target: /opt/ngw/secret } restart: unless-stopped archivist: image: cr.nextgis.com/nextgisweb/ext/archivist:3.3.0 volumes: - { type: volume, source: data_app, target: /opt/ngw/data/app } - { type: volume, source: data_postgres, target: /opt/ngw/data/postgres } - { type: volume, source: data_ngid, target: /opt/ngid/data/ngid } - { type: volume, source: config_app, target: /opt/ngw/config/app } - { type: volume, source: config_postgres, target: /opt/ngw/config/postgres } - { type: volume, source: config_ngid, target: /opt/ngid/config/ngid } - { type: volume, source: secret, target: /opt/ngw/secret } - { type: volume, source: backup, target: /opt/ngw/backup } restart: unless-stopped ngid: image: cr.nextgis.com/nextgisweb/ext/ngid:3.3.0 volumes: - { type: volume, source: data_ngid, target: /opt/ngid/data/ngid } - { type: volume, source: config_ngid, target: /opt/ngid/config/ngid } - { type: volume, source: secret, target: /opt/ngid/secret } restart: unless-stopped ports: - 8081:8080 environment: <<: *shared NGID_ONPREMISE_CONFIGURATION: |- eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.... chub: image: cr.nextgis.com/nextgisweb/ext/chub:3.3.0 volumes: - { type: volume, source: secret, target: /opt/chub/secret } depends_on: [postgres] ports: - 8082:8080 restart: unless-stopped environment: <<: *shared thub: image: cr.nextgis.com/nextgisweb/ext/thub:3.3.0 volumes: - { type: volume, source: secret, target: /opt/thub/secret } depends_on: [postgres] restart: unless-stopped ports: - 8083:8080 environment: <<: *shared volumes: data_app: {} data_ngid: {} data_postgres: {} config_app: {} config_ngid: {} config_postgres: {} secret: {} backup: {} ``` ## Configuring reverse proxy: Nginx ```nginx # $http_upgrade variable must be set in the root block of the http, # see https://nginx.org/en/docs/http/websocket.html map $http_upgrade $proxy_connection { default upgrade; '' close; } # Virtual host for NextGIS Web server { server_name ngw.example.com; # Server directives: listen, ssl_* etc location / { client_max_body_size 0; proxy_read_timeout 3600s; proxy_http_version 1.1; proxy_pass http://localhost:8080; proxy_set_header Host $http_host; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $proxy_connection; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-For $remote_addr; } } # Virtual server for NextGIS ID server { server_name ngid.example.com; # Server directives: listen, ssl_* etc location / { client_max_body_size 0; proxy_http_version 1.1; proxy_pass http://localhost:8081; proxy_set_header Host $http_host; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $proxy_connection; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-For $remote_addr; } } # Virtual server for NextGIS Collector Hub # Only for Extended edition server { server_name chub.example.com; # Server directives: listen, ssl_* etc location / { client_max_body_size 0; proxy_http_version 1.1; proxy_pass http://localhost:8082; proxy_set_header Host $http_host; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $proxy_connection; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-For $remote_addr; } } # Virtual server for NextGIS Tracker Hub # Only for Extended edition server { server_name thub.example.com; # Server directives: listen, ssl_* etc location / { client_max_body_size 0; proxy_http_version 1.1; proxy_pass http://localhost:8083; proxy_set_header Host $http_host; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $proxy_connection; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-For $remote_addr; } } ``` # op_backup.html.md # Backups NextGIS Web On-Premise has two options for creating backup: - Offline - requires shutting down all services and is performed outside the application container. It is recommended for creating full backups to be transferred to a different server. - Online - does not require shutting down the services and is performed within the app container. Recommended for regular backups. #### IMPORTANT All steps in this section must be performed by the `root` user. If you use `sudo` to avoid mixing up the commands, we recommend first running `sudo -i` to get a fully functional root user session. ## Backups location Both methods create backups in the `backup` volume mounted in the `/opt/ngw/backup` directory inside the containers. Depending on the configuration, physically the backup files may be stored either in `/var/lib/docker/volumes/ngwdocker_backup/_data`, or in `/srv/ngwdocker/backup`, if the file `docker-compose.yaml` has a mounted path for `backup`. ## Offline backup This method uses an additional service `archivist` included in the Docker NextGIS Web On-Premise stack. The essence of its work is quite simple: using GNU Tar, it creates an archive with data from all Docker volumes used in the stack. Backups created using this method are meant to be restored to the same version of NextGIS Web On-Premise where the backup was created. ### Create backup To create a consistent backup it is essential that no services modify data while the backup copy is being created. So before starting the process, shut down all the services of the stack: ```bash $ cd /srv/ngwdocker $ docker compose down ``` After shutting down the stack run the following command to create backup: ```bash $ cd /srv/ngwdocker $ docker compose run --rm archivist backup Container ngwdocker-archivist-run-ff7e60e7c67f Creating Container ngwdocker-archivist-run-ff7e60e7c67f Created backup/archivist-20260117-002345.tar.zst ``` File `archivist-20260117-002345.tar.zst` is the backup, its name contains date and time of its creation. You can view the contents of the backup directory, for example: ```bash $ ls -lhn /var/lib/docker/volumes/ngwdocker_backup/_data/ total 6.8M -rw------- 1 1000 1000 6.8M Jan 17 03:23 archivist-20260117-002345.tar.zst ``` To view the list of all the files in the archive you can use: ```bash $ tar -tvf /var/lib/docker/volumes/ngwdocker_backup/_data/archivist-20260117-002345.tar.zst ``` ### Restore from backup To restore data, first shut down all the services of the stack: ```bash $ cd /srv/ngwdocker $ docker compose down ``` Then run the command to restore from backup, entering the path to the backup in the same way as it was output during backup creation (`backup/*.tar.zst`): ```bash $ cd /srv/ngwdocker $ docker compose run --rm archivist restore backup/archivist-20260117-002345.tar.zst Container ngwdocker-archivist-run-2ab5bee644f6 Creating Container ngwdocker-archivist-run-2ab5bee644f6 Created ``` After the restoration is complete, you can restart the stack: ```bash $ cd /srv/ngwdocker $ docker compose up -d ``` ## Online backup Online backup is performed by a built-in mechanism within NextGIS Web container. This mechanism does not require shutting down the services. From the technical point of view, it’s a PostgreSQL database dump and an archive with all the data files from NextGIS Web. Backups created using this method are meant to be restored to the same version of NextGIS Web On-Premise where the backup was created. ### Create backup To create a backup run the command: ```bash $ cd /srv/ngwdocker $ docker compose run --rm app nextgisweb backup Container ngwdocker-app-run-36f652b37a86 Creating Container ngwdocker-app-run-36f652b37a86 Created backup/nextgisweb-20260117-131917.ngwbackup ``` The name of the backup file contains date and time of its creation, same as for the backups created with the `archivist`. The files are stored in `/opt/ngw/backup` inside the app container mounted to the `backup` volume of Docker stack. If you view the contents of the backup directory, you can see the created file: ```bash $ ls -lhn /var/lib/docker/volumes/ngwdocker_backup/_data/ total 210K -rw-r--r-- 1 1000 1000 210K Jan 17 16:19 nextgisweb-20260117-131917.ngwbackup ``` ### Restore from backup To restore from an online backup, shut down all the services of the stack, then run only the `postgres` service: ```bash $ cd /srv/ngwdocker $ docker compose down $ docker compose up -d postgres ``` Wait for `postgres` to launch, it takes between 10 and 30 seconds normally, then delete the `nextgisweb` database and restart `postgres` to create a blank database. Also you need to delete the volume containing NextGIS Web data files: ```bash $ cd /srv/ngwdocker $ docker compose exec postgres psql -c "DROP DATABASE nextgisweb" $ docker compose up -d --force-recreate postgres $ docker volume rm ngwdocker_data_app ``` Wait for `postgres` to start again, it should take between 10 and 30 seconds. Next you can restore the data from the backup. Enter the path to the backup the same way it was output during backup creation (`backup/*.ngwbackup`): ```bash $ cd /srv/ngwdocker $ docker compose run --rm app nextgisweb restore backup/nextgisweb-20260117-131917.ngwbackup ✔ Volume ngwdocker_data_app Created ✔ Container ngwdocker-postgres-1 Running Container ngwdocker-app-run-10fb82472656 Creating Container ngwdocker-app-run-10fb82472656 Created ``` After the restoration is complete, you can restart the stack: ```bash $ cd /srv/ngwdocker $ docker compose up -d ``` # op_install.html.md # Installation Before installation make sure that you’ve contacted NextGIS company and obtained: - File `docker-compose.yaml` - see Additional information for examples, but they don’t contain all the necessary parameters. - Login and password for access to NextGIS Container Registry. #### NOTE NextGIS team can perform the installation remotely, if you provide remote access that fits the [requirements](https://docs.nextgis.com/docs_ngweb/source/remote.html). ## Endpoints NextGIS Web On-Premise uses several HTTP (or HTTPS) endpoints: - NextGIS Web - the main address for user interaction with the system. Default value: `http://server.example.com:8080`, where `server.example.com` is the domain name or IP address of the server where the system is installed. - NextGIS ID - authentication service used by NextGIS Web as well as by other NextGIS products. Default value: `http://server.example.com:8081`. - NextGIS Collector Hub (only for Extended edition) - additional service for NextGIS Collector mobile app. Default value: `http://server.example.com:8082`. - NextGIS Tracker Hub (only for Extended edition) - additional service for tracking apps. Default value: `http://server.example.com:8083`. If your IT infrastructure allows for it, it is recommended to set up a reverse proxy for TLS encryption and using HTTPS. It is especially important if the software is to be accessed not just from the local network, but also from the Internet. In that case the endpoints depend on the settings of the reverse proxy. The recommended values are: - NextGIS Web - `https://ngw.example.com` - NextGIS ID - `https://ngid.example.com` - NextGIS Collector Hub - `https://chub.example.com` - NextGIS Tracker Hub - `https://thub.example.com` The reverse proxy is set up by the client’s IT department, it is not a responsibility of NextGIS company. The required parameters are cited below using Nginx as example. Contact your IT department to choose addresses you wish to use and note them in the table below, you’ll need them later. Additionally, the table contains examples of names for environment variables of each endpoint. | Endpoint | Environment variable | Value | |-----------------------|------------------------|---------| | NextGIS Web | `NEXTGISWEB_URL` | | | NextGIS ID | `NEXTGISID_URL` | | | NextGIS Collector Hub | `COLLECTOR_HUB_URL` | | | NextGIS Tracker Hub | `TRACKER_HUB_URL` | | ## Install and configure Docker #### IMPORTANT All steps in this section must be performed by the `root` user. If you use `sudo` to avoid mixing up the commands, we recommend first running `sudo -i` to get a fully functional root user session. You need to install latest versions of Docker Engine and Docker Compose. We recommend using the official [installation manual from the Docker Web site](https://docs.docker.com/engine/install/), or the manual for your distribution, provided that it answers the minimum required version. Minimum required versions: - Docker Engine >= 23 - Docker Compose >= 2 If the installation is done via Internet, then to get the images log in to NextGIS Container Registry with the username (example) and password (sesame) provided by NextGIS: ```bash $ docker login cr.nextgis.com -u example -p sesame Login Succeeded ``` ## Deploy Docker stack #### IMPORTANT All steps in this section must be performed by the `root` user. If you use `sudo` to avoid mixing up the commands, we recommend first running `sudo -i` to get a fully functional root user session. On the server create a directory `/srv/ngwdocker`, copy to it the file `docker-compose.yaml` you’ve got from NextGIS and open it in a text editor, for example, use `nano`: ```bash $ mkdir -p /srv/ngwdocker $ cd /srv/ngwdocker $ cp /path/to/your/docker-compose.yaml . $ nano docker-compose.yaml ``` At the start of the `docker-compose.yaml` file you’ll find a section called `x-shared`. It contains varables where you need to enter the previously chosen endpoints (keep in mind that the addresses are entered without `/` at the end), e.g.: ```yaml x-shared: &shared NEXTGISWEB_URL: "http://server.example.com:8080" NEXTGISID_URL: "http://server.example.com:8081" COLLECTOR_HUB_URL: "http://server.example.com:8082" TRACKER_HUB_URL: "http://server.example.com:8083" NEXTGISID_INSTANCE_NGID: "00000000-0000-0000-0000-000000000000" NEXTGISID_ADMINISTRATOR_NGID: "00000000-0000-0000-0000-000000000000" ``` Keep in mind that `COLLECTOR_HUB_URL` and `TRACKER_HUB_URL` variables are used only in the Extended edition. If they are not present, you don’t have to add them. Variables `NEXTGISID_INSTANCE_NGID` and `NEXTGISID_ADMINISTRATOR_NGID` are pre-filled in the docker-compose.yaml file provided by NextGIS. After making all the edits save the file and close the text editor. If you are installing without Internet access, at this stage you need to import all required Docker images to the server. Generate an archive of the images using the [NextGIS Container Registry image export](https://toolbox.nextgis.com/t/ngcr_export) tool. You can check the distribution version used in the `docker-compose.yaml` file under `services.app.image`; for example, the value `cr.nextgis.com/nextgisweb/std/app:3.3.0` corresponds to version `3.3.0`. You can run the export tool using any NextGIS ID account, including the free plan, but when running the tool you will need to provide your login and password for access to NextGIS Container Registry. Download the image archive to your local computer, then transfer it to the server and run the command to load images from the archive: ```bash $ docker load -i /path/to/file.tar.gz ``` Now you can start the containers. If you have Internet access, all the necessary images are downloaded from NextGIS Container Registry. Run the following command: ```bash $ docker compose up -d [+] up 5/5 ✔ Network ngwdocker_default Created ✔ Container ngwdocker-ngid-1 Created ✔ Container ngwdocker-postgres-1 Created ✔ Container ngwdocker-archivist-1 Created ✔ Container ngwdocker-app-1 Created ``` If you use a reverse proxy server for HTTPS, configure it to forward the traffic to the corresponding NextGIS Web ports. See an example of Nginx configuration in the [Additional information](https://docs.nextgis.com/docs_ngweb/source/op_additional.html) section. After a little while (up to 1 minute normally) you can access NextGIS Web by entering the browser address bar the the URL you set up in the `NEXTGISWEB_URL` variable. To log into the system use the default Administrator credentials: `administrator` / `admin`. Also you can use the same credentials to access NextGIS ID on the address set up in the environment varialbe `NEXTGISID_URL`. To check if the endpoints are correct, try logging in to NextGIS Web by clicking the **Sign in with NextGIS ID** button. ## Weekly maintenance and backup #### IMPORTANT All steps in this section must be performed by the `root` user. If you use `sudo` to avoid mixing up the commands, we recommend first running `sudo -i` to get a fully functional root user session. To run weekly backup and maintenance create a file named `cronjob` with the contents cited below and make it executable. ```bash $ cat < cronjob #!/bin/bash set -ex PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin docker compose exec -T --env NGWDOCKER_INITIALIZE_DB=no \ app /opt/ngw/bin/docker-entrypoint \ bash -c "nextgisweb backup && nextgisweb maintenance" EOF $ chmod +x cronjob ``` This script launches online backup for NextGIS Web, then the maintenance task. Next set it to be executed every Sunday at 02:00 via cron, then restart: ```bash $ cat < /etc/cron.d/ngwdocker 0 2 * * 0 root cd /srv/ngwdocker && ./cronjob EOF $ systemctl restart cron ``` # op_logs.html.md # How to get docker container logs If a problem occurs in NextGIS Web or NextGIS GeoServices , it’s important to have full information on what was going on in the program at the time. To provide the support team with this information you can use logs and debug messages. We recommend the following way to gather logs. It’s the standard procedure to get logs in docker compose. ## Gather logs for NextGIS Web #### IMPORTANT Must be performed by the Administrator of NextGIS Web on-premise. To gather information necessary for diagnostics, please do the following: 1. Reproduce the issue - repeat the actions that lead to the error, make sure the error is ocurring. 2. After that, on your server go to `/srv/ngwdocker` and find the configuration file `docker-compose.yaml`. 3. In command line interface run the command cited below to gather logs for the last 24 hours. This interval guarantees that the information about the issue is included: ```default docker compose logs --since 24h app > app_logs_$(date +%Y-%m-%d).log ``` 1. Send the resulting log file to [support@nextgis.com](mailto:support@nextgis.com) so that the developers can study it. ## Gather logs for NextGIS GeoServices #### IMPORTANT Must be performed by the Administrator of NextGIS GeoServices on-premise. We recommend the following way to gather logs. It’s the standard procedure to get logs in docker compose. To gather information necessary for diagnostics, please do the following: 1. Reproduce the issue - repeat the actions that lead to the error, make sure the error is ocurring. 2. After that, on your server go to `/srv/geoservices` and find the configuration file `docker-compose.yaml`. 3. In command line interface run the command cited below to gather logs of the app container for the last 24 hours. This interval guarantees that the information about the issue is included. Example, for the `app` container (if you need logs for another container, insert the corresponding argument instead): ```default docker compose logs --since 24h app > app_logs_$(date +%Y-%m-%d).log ``` 1. Send the resulting log file to [support@nextgis.com](mailto:support@nextgis.com) so that the developers can study it. # op_setup.html.md # Configure #### IMPORTANT All steps in this section must be performed by the `root` user. If you use `sudo` to avoid mixing up the commands, we recommend first running `sudo -i` to get a fully functional root user session. ## Change endpoints Changing endpoints may be required if the the name of the DNS server where the system is deployed changes, or if you change the settings of the reverse proxy. To modify the endpoints edit the file `docker-compose.yaml`, you can find it in `/srv/ngwdocker` in the `x-shared` section. Then restart the stack. ```bash $ cd /srv/ngwdocker $ nano docker-compose.yaml $ docker compose up -d ``` ## Migrating to another server Steps: 1. On the **source server**, create an offline backup following the [Create backup](op_backup.md#backup-offline-create) instructions. 2. On the **new server**, install NextGIS Web following the [Installation](op_install.md) instructions. > #### IMPORTANT > The version installed on the new server must match the version on the > source server. Restoring a backup across different versions is not > supported. 3. Copy the backup file to the new server, for example: ```bash $ scp /var/lib/docker/volumes/ngwdocker_backup/_data/archivist-20260117-002345.tar.zst \ root@new-server:/var/lib/docker/volumes/ngwdocker_backup/_data/ ``` 1. Restore the data from the backup following the [Restore from backup](op_backup.md#backup-offline-restore) instructions. # op_sys_req.html.md # System requirements To install NextGIS Web On-Premise you need a physical or virtual server based on x86_64 (amd64) with the following parameters: | | Minimum | Recommended | |---------|------------|---------------| | CPU | 4-core | 8-core | | RAM | 8 GiB | 16 GiB | | Storage | 250 GB SSD | 500 GB SSD | The amount of storage space required depends primarily on the estimated volume of data that will be stored in the system. We recommend using SSD or NVMe drives for better performance. The processor clock speed is not of fundamental importance, but using a CPU with a higher clock speed has a positive effect on system performance, as the most resource-intensive tasks in NextGIS Web are related to image compression when viewing maps. The server must have a Linux-based operational system allowing to install Docker Engine 23 and up, for example: - Ubuntu LTS 24.04, 22.04 - Debian 12, 11 - CentOS Stream 11, 10 If you use a different Linux distribution, make sure that the Linux kernel version on the server is 5.10 or above, which corresponds to the current LTS version. To avoid conflicts the server must not be used for other purposes: as a file or mail server, PostGIS server etc. To follow the steps described in this manual you’ll need access as a `root` user. Internet access is not required for installation or updates, but it makes the process much easier. # op_update.html.md # Update The version code for NextGIS Web On-Premise contains three numbers in `A.B.C` pattern, where `A.B` is the main version number and `C` is a patch version. Updates between the main versions must be performed step by step, without skipping a version. So if your current version is `2.8.0` and you wish to update to `3.0.0`, you need to update to `2.9.0` first, and only then to `3.0.0`. If there are patched versions (e.g. `2.8.1`, `2.8.2` and so on), update to the latest patched version of the main version. The Administrator can check what the current version of NextGIS Web On-Premise is by viewing the System information section of the Control panel. Also it is present in the `docker-compose.yaml` file in the image names (`services..image`). #### IMPORTANT All steps in this section must be performed by the `root` user. If you use `sudo` to avoid mixing up the commands, we recommend first running `sudo -i` to get a fully functional root user session. To update from one version to another follow these steps: **Step 1.** Find your current version in this document and check the algorithm for it, it may contain important additional steps and requirements. **Step 2.** Create an off-line backup of the system as described in the “Backup” section. **Step 3.** Create a backup of the file `docker-compose.yaml` (replace `A.B.C` in the command with the number of your current version): ```bash $ cd /srv/ngwdocker $ cp docker-compose.yaml docker-compose-A.B.C.yaml ``` **Step 4.** Update `docker-compose.yaml` by changing the version in the image names (`services..image`) to the next version you wish to update to. **Step 5.** Load the new Docker images to your server. If you have Internet access, run the command: ```bash $ cd /srv/ngwdocker $ docker compose pull ``` If you don’t have Internet access, contact NextGIS support team to get image archives, upload them to the server, then run the command to load the images from the archives: ```bash $ docker load -i /path/to/file.tar.gz ``` **Step 6.** Apply migrations, launch maintenance and wait for the following command to complete: ```bash $ cd /srv/ngwdocker $ docker compose run --rm app nextgisweb migration upgrade --no-dry-run $ docker compose run --rm app nextgisweb maintenance ``` **Step 7.** Restart the updated containers, it completes the update process: ```bash $ cd /srv/ngwdocker $ docker compose up -d ``` ## Update to 3.1.x from 3.0.x Before starting the update check that the server where the system is installed answers the system requirements. Before updating check the collation of the PostgreSQL databases by running the following command: ```bash $ cd /srv/ngwdocker $ docker compose exec postgres psql -c "SELECT datname, datcollate, datctype FROM pg_database WHERE datcollate <> 'C.UTF-8' OR datctype <> 'C.UTF-8'" datname | datcollate | datctype ---------+------------+---------- (0 rows) ``` If the result is empty (0 strings, as in the example), you can continue with the update. Otherwise you must not continue. Contact NextGIS support instead. It may happen if the initial installation had the version below 1.7.0 (released in August 2021). ## Update to 3.0.x from 2.9.x No additional steps needed, proceed with the standard steps to update. ## Update to 2.9.x from 2.8.x After creating a backup of the current version you need to update PostGIS by running the commands cited below. As a result an interactive PostgreSQL console opens inside the container of the NextGIS Web database: ```bash $ cd /srv/ngwdocker $ docker compose down $ docker compose up -d postgres $ docker compose exec postgres psql -U postgres nextgisweb ``` In the interactive PostgreSQL console run the following command (`nextgisweb=#` is the console’s welcome message, it’s entered automatically and you don’t have to add it, only the commands that follow): ```sql nextgisweb=# ALTER USER nextgisweb SUPERUSER; nextgisweb=# SET SESSION AUTHORIZATION nextgisweb; nextgisweb=# SELECT postgis_extensions_upgrade(); nextgisweb=# ALTER USER nextgisweb NOSUPERUSER; nextgisweb=# \q ``` ## Update to 2.8.x from 2.7.x No additional steps needed, proceed with the standard steps to update. ## Update to 2.7.x from 2.6.x No additional steps needed, proceed with the standard steps to update. ## Update to 2.6.x from 2.5.x No additional steps needed, proceed with the standard steps to update. # op_upgrade.html.md # Upgrade #### NOTE NextGIS team can perform the upgrade remotely, if you provide remote access that fits the [requirements](https://docs.nextgis.com/docs_ngweb/source/remote.html). The version number for NextGIS Web On-Premise contains three parts in `A.B.C` pattern, where `A.B` is the main version number and `C` is a patch version. Upgrades between main versions must be performed step by step, without skipping a version. So if your current version is `2.8.0` and you wish to update to `3.0.0`, you need to update to `2.9.0` first, and only then to `3.0.0`. If there are patch versions (e.g. `2.8.1`, `2.8.2` and so on), update to the latest patch version of the main version. The Administrator can check what the current version of NextGIS Web On-Premise is by viewing the System information section of the Control panel. Also it is present in the `docker-compose.yaml` file in the image names (`services.app.image`). #### IMPORTANT All steps in this section must be performed by the `root` user. If you use `sudo` to avoid mixing up the commands, we recommend first running `sudo -i` to get a fully functional root user session. If you are upgrading with Internet access, to obtain the images you must authenticate to the NextGIS Container Registry using the login (example) and password (sesame) provided by NextGIS during the initial installation: ```bash $ docker login cr.nextgis.com -u example -p sesame Login Succeeded ``` To update from one version to another follow these steps: **Step 1.** Review the actions and requirements listed below for the specific version: > * [Upgrade to 3.3.x from 3.2.x](#upgrade-to-3-3-x-from-3-2-x) > * [Upgrade to 3.2.x from 3.1.x](#upgrade-to-3-2-x-from-3-1-x) > * [Upgrade to 3.1.x from 3.0.x](#upgrade-to-3-1-x-from-3-0-x) > * [Upgrade to 3.0.x from 2.9.x](#upgrade-to-3-0-x-from-2-9-x) > * [Upgrade to 2.9.x from 2.8.x](#upgrade-to-2-9-x-from-2-8-x) > * [Upgrade to 2.8.x from 2.7.x](#upgrade-to-2-8-x-from-2-7-x) > * [Upgrade to 2.7.x from 2.6.x](#upgrade-to-2-7-x-from-2-6-x) > * [Upgrade to 2.6.x from 2.5.x](#upgrade-to-2-6-x-from-2-5-x) > * [Upgrade to 2.5.x from earlier versions](#upgrade-to-2-5-x-from-earlier-versions) **Step 2.** Create an offline backup of the system as described in the “Backups” section. **Step 3.** Create a backup of the file `docker-compose.yaml` (replace `A.B.C` in the command with the number of your current version): ```bash $ cd /srv/ngwdocker $ cp docker-compose.yaml docker-compose-A.B.C.yaml ``` **Step 4.** Update `docker-compose.yaml` by changing the version in the image names (`services..image`) to the next version you wish to update to. **Step 5.** Load the new Docker images to your server. If you have Internet access, run the command: ```bash $ cd /srv/ngwdocker $ docker compose pull ``` If you are upgrading without Internet access, at this stage you need to import the Docker images of the new version to the server. Generate an archive of the images using the [NextGIS Container Registry image export](https://toolbox.nextgis.com/t/ngcr_export) tool. You can run the export tool using any NextGIS ID account, including the free plan, but when running the tool you will need to provide your login and password for access to the NextGIS Container Registry. Download the image archive to your local computer, then transfer it to the server and run the command to load images from the archive: ```bash $ docker load -i /path/to/file.tar.gz ``` **Step 6.** Apply migrations, launch maintenance and wait for the following command to complete: ```bash $ cd /srv/ngwdocker $ docker compose run --rm app nextgisweb migration upgrade --no-dry-run $ docker compose run --rm app nextgisweb maintenance ``` **Step 7.** Start the updated containers, it completes the update process: ```bash $ cd /srv/ngwdocker $ docker compose up -d ``` ## Upgrade to 3.3.x from 3.2.x No additional steps needed, proceed with the standard steps to update. ## Upgrade to 3.2.x from 3.1.x Step 6 for Extended Edition (including Whitelabel) requires starting the `chub` service with `docker compose up -d chub` before running `docker compose run --rm app nextgisweb maintenance`. The commands for step 6 are as follows: ```bash $ cd /srv/ngwdocker $ docker compose run --rm app nextgisweb migration upgrade --no-dry-run $ docker compose up -d chub $ docker compose run --rm app nextgisweb maintenance ``` ## Upgrade to 3.1.x from 3.0.x In version 3.1.0, the system requirements have changed. Ensure that your system meets the requirements listed below: - Minimum Docker Engine version - 23.0.0. - Minimum Docker Compose version - 2.x. - Minimum Linux kernel version - 5.10. - Support for Ubuntu 20.04 has been discontinued. Before updating check the collation of the PostgreSQL databases by running the following command: ```bash $ cd /srv/ngwdocker $ docker compose exec postgres psql -c "SELECT datname, datcollate, datctype FROM pg_database WHERE datcollate <> 'C.UTF-8' OR datctype <> 'C.UTF-8'" datname | datcollate | datctype ---------+------------+---------- (0 rows) ``` If the result is empty (0 rows, as in the example), you can continue with the update. If it’s not empty, you must not continue. Contact NextGIS support instead. It may happen if the initial installation had the version below 1.7.0 (released in August 2021). ## Upgrade to 3.0.x from 2.9.x No additional steps needed, proceed with the standard steps to update. ## Upgrade to 2.9.x from 2.8.x After creating a backup (step 3) you need to update PostGIS by running the commands cited below. As a result an interactive PostgreSQL console opens inside the container of the NextGIS Web database: ```bash $ cd /srv/ngwdocker $ docker compose down $ docker compose up -d postgres $ docker compose exec postgres psql -U postgres nextgisweb ``` In the interactive PostgreSQL console run the following command (`nextgisweb=#` is the command prompt, it’s entered automatically and you don’t have to add it, only the commands that follow): ```sql nextgisweb=# ALTER USER nextgisweb SUPERUSER; nextgisweb=# SET SESSION AUTHORIZATION nextgisweb; nextgisweb=# ALTER EXTENSION postgis UPDATE; nextgisweb=# SELECT postgis_extensions_upgrade(); nextgisweb=# SELECT postgis_extensions_upgrade(); nextgisweb=# DROP EXTENSION postgis_raster; nextgisweb=# ALTER USER nextgisweb NOSUPERUSER; nextgisweb=# \q ``` ## Upgrade to 2.8.x from 2.7.x No additional steps needed, proceed with the standard steps to update. ## Upgrade to 2.7.x from 2.6.x No additional steps needed, proceed with the standard steps to update. ## Upgrade to 2.6.x from 2.5.x No additional steps needed, proceed with the standard steps to update. ## Upgrade to 2.5.x from earlier versions Depending on the version you are upgrading from, additional steps may be required. Please contact NextGIS support for recommendations on upgrading to version 2.5.x. Attach the current version of the file `docker-compose.yaml` from your server to the support request. # open_layer.html.md # How to open a particular layer * [Order data](https://data.nextgis.com/en/) for your area of interest in Geopackage format (QGIS). * Go to the [orders](https://data.nextgis.com/en/orders/actual/) page and download the archive when it’s complete. * **Unpack** the archive. * Download and install [QGIS](https://qgis.org/en/site/forusers/download.html). * To open the particular layer, start NextGIS QGIS and from the main menu bar select “Layer” > “Add Layer” > “Add Vector Layer”. In pop-up window go to the folder where you unpacked the archive with the data and select the necessary layer. You can check [here](https://docs.google.com/spreadsheets/d/1F83dtRH8c7O83E55ox3Kfh8Ibbh2TFL70nF5Iw_33d0/edit#gid=906616778) what the file names mean. ![image](docs_data/source/_static/open_layer1_en.png) * The layer will be added to QGIS and ready to go. ![image](docs_data/source/_static/open_layer2_en.png) * To view the attributes of a specific layer, right-click on it and select “Open Attribute Table” from the context menu. A window with the attributes (characteristics) of the objects belonging to the layer will appear. See the list of attributes for all layers here. ![image](docs_data/source/_static/open_layer3_en.png) # open_map.html.md # How to open the entire map (project) * [Order data](https://data.nextgis.com/en/) for your area of interest in GeoPackage format (QGIS). * Go to the [orders](https://data.nextgis.com/en/orders/actual/) page and download the archive when it’s complete. * **Unpack** the archive. * Download and install [QGIS](https://qgis.org/en/site/forusers/download.html). * Launch QGIS. To open a preset GIS project (which includes all layers with customized styles), click “Project” > “Open” and in pop-up window select the saved file “data.qgs”. ![image](docs_data/source/_static/open_map1_en.png) * The project will be added to QGIS; data is ready to go. ![image](docs_data/source/_static/open_map2_en.png) # operations.html.md # Working with projects #### NOTE The full algorithm of data collection is described in [this section](https://docs.nextgis.com/docs_ngcom/source/collector.html) . After a successful login, data collector will see a list of available projects. You can view project info by taping the tree dots on the right. A pop-up will contain the version of the project and its URL. ![image](docs_collector/source/_static/project_info_en_2.png) To join a project tap on its name, then confirm your choice in the pop-up. ![image](docs_collector/source/_static/ngc_join_en.png) There are two types of starting screen for a project. It can be either a map or a list of layers. ![image](docs_collector/source/_static/ngc_layer_list_en.png) To switch to the map view, press the ![button_map](docs_collector/source/_static/button_map.png) in the bottom right corner. When in map view, press three lines to display the layer tree. ![image](docs_collector/source/_static/ngc_map_layers_en.png) Now the collector can start [editing layers](https://docs.nextgis.com/docs_collector/source/map_tools.html). ## Offline data collection With NextGIS Collector you can collect data even with no Internet connection. **Prepare the device**. Beforehand you need to download the project to your device. While connected to the Internet, log in to the app and select the Collector project. If you need to see the basemap while adding features, download the basemap tiles. Make sure your area of interest is displayed on the screen. Then tap on the downward arrow next to the basemap layer and select the necessary zoom levels. Basemap tiles will be saved in the app cache. ![image](docs_collector/source/_static/ngcol_base_cache_en.png) While you **collect data** in the field, the edits are stored locally on your device. Then you need to **send the data to the cloud**. Connect to the Internet, then press the synchronization icon ![with a cloud](docs_collector/source/_static/button_sync.png) on the top tab of the app. The data will be sent to the server. If the connection is lost or other issues occur, you’ll get a message about synchronization error. Try again later, when the connection is stabe. #### IMPORTANT Do not exit the project or delete the app, otherwise all the data will be lost. If the synchronization is impossible, you can save the collected data to a [ZIP archive](https://docs.nextgis.com/docs_collector/source/adv_tools.html#ngcol-backup) to transfer it another way. # order.html.md # How to order data ## Select area You can select your area of interest in one of several ways: 1. Browse the [catalog](https://data.nextgis.com/en/catalog/subdivisions/). Select a region to view its boundaries and prices. 2. Type the name of the region into the [search bar](https://data.nextgis.com/en/) on the main page or [on the map](https://data.nextgis.com/en/region/custom/base) of the custom area page. 3. You can also [draw a custom polygon area](https://data.nextgis.com/en/region/custom/base/) on the map or upload a boundary from a file. ![image](docs_data/source/_static/data_area_select_en.png) * ![button_area_rect](docs_data/source/_static/button_area_rect.png) - draw a rectangle to select area; * ![button_area_draw](docs_data/source/_static/button_area_draw.png) - draw a custom polygon to select; * ![button_data_upload](docs_data/source/_static/button_data_upload.png) - upload boundaries from file; * ![button_clear_area](docs_data/source/_static/button_clear_area.png) - clear selection; * ![button_area_fullscreen](docs_data/source/_static/button_area_fullscreen.png) - full-screen map mode. ## Select data type If you’ve chosen a region from the catalog, you’ll see the cards of all products available for this region. Select the product you need. ![image](docs_data/source/_static/data_type_select_cards_en.png) The product page opens. It’s the same type of page you get if you select a custom area. To switch between products, use the dropdown menu. ![image](docs_data/source/_static/data_type_select_dropdown_en.png) Data types you can order: * [OpenStreetMap Basemap](https://data.nextgis.com/en/region/custom/base/) * [Ouverture Basemap](https://data.nextgis.com/en/region/custom/overture/) * [Elevation](https://data.nextgis.com/en/region/custom/dem/) * [Buildings AI](https://data.nextgis.com/en/region/custom/msbld/) * [Roads AI](https://data.nextgis.com/en/region/custom/msrd/) * [Satellite](https://data.nextgis.com/en/region/custom/sat/) * [Heritage](https://data.nextgis.com/en/region/custom/heritage/) On each page you can download samples and check out data structure. ## Select format Select format from a dropdown menu. ![image](docs_data/source/_static/data_format_select_en.png) By default vector data is in GeoPackage (QGIS). You can view the list of formats for each data type and download [samples](https://data.nextgis.com/en/about/#formats) in all available formats. ## Select layers Data sets contain one or more layers. See the data structure to find what kind of information is stored in each layer. Hover over the layer name to see a sample screenshot. Keep in mind that it is only an illustration, data for a particular area may have no features in that layer. ![image](docs_data/source/_static/data_osm_layer_ill_en.png) For OSM Basemap and Elevation you can choose which layers to order and deselect others. ![image](docs_data/source/_static/data_dem_layers_select_en.png) For Elevation you can also choose contour line step. ## Purchase After selecting an area you’ll see the price and the order details at the bottom of the page. Click **Order data**. ![image](docs_data/source/_static/data_price_en.png) The email field is mandatory. The result of your order will be available for download on [the Orders page](https://data.nextgis.com/en/orders/actual) – to view it, you need to sign in / create account at [my.nextgis.com](https://data.nextgis.com/login) with email you are using during purchase. If you already have an account on [my.nextgis.com](https://data.nextgis.com/login) at the moment of purchase, we recommend signing in before placing an order. Check the details of your order. Make sure the format is indicated correctly. Switching between tabs and other actions may cause the page to refresh and reset the default format. ![image](docs_data/source/_static/data_order_details_en.png) Enter a discount code if you have one. After making sure that all information is correct press **Purchase data**. If you’re purchasing data on behalf of the organisation, we can issue an invoice addressed to this organisation. [More on payment methods](https://data.nextgis.com/en/faq/#pay) Payment is made in euros, if your card has another currency, the conversion is handled by the bank. ## Download data Log in to data.nextgis.com. If you don’t have NextGIS ID yet, sign up using the email address you entered for your data order. After signing in click **Orders** in the top right corner. It will open your order history. In this section you can find all the orders made for that particular email address. You can see if the order is ready and download the data. Also you can repeat older orders to get actualized data for the same area. ![image](docs_data/source/_static/data_orders_list_en.jpg) # order_printmap.html.md # How to order printable map If you want to print the map, but wish to avoid preparing the layout yourself in QGIS, you can order the data as print-ready vector PDF file. ## Select area You can select your area of interest in one of several ways: 1. Brows the [catalog](https://data.nextgis.com/en/catalog/subdivisions/). Select a region to view its boundaries and prices. 2. Type the name of the region into the [search bar](https://data.nextgis.com/en/) on the main page or [on the map](https://data.nextgis.com/en/region/custom/printmap) of the custom area page. 3. You can also [draw a custom polygon area](https://data.nextgis.com/ru/region/custom/printmap/) on the map or upload a boundary from a file. ![image](docs_data/source/_static/data_area_select_en.png) * ![button_area_rect](docs_data/source/_static/button_area_rect.png) - draw a rectangle to select area; * ![button_area_draw](docs_data/source/_static/button_area_draw.png) - draw a custom polygon to select; * ![button_data_upload](docs_data/source/_static/button_data_upload.png) - upload boundaries from file; * ![button_clear_area](docs_data/source/_static/button_clear_area.png) - clear selection; * ![button_area_fullscreen](docs_data/source/_static/button_area_fullscreen.png) - full-screen map mode. ## Page settings Double-check that Printable map is selected. If you used the catalog of regions, click “Basemap” next to the name of the region, then selet “Printable map” in the dropdown menu. * **Page size** is set in millimeters. You can select one of the standard paper sizes or enter custom values. * For standard paper sizes you can select the page orientation: **portrait (vertical)** or **landscape (horizontal)**. If the selected are is more wide that it is tall, choose landscape orientation. After selecting the page parameters you’ll see a yellow hint message with information on the details included in the map with this settings. ![image](docs_data/source/_static/printmap_a3_en.png)![image](docs_data/source/_static/printmap_a0_en.png) Click **Preview and order** to get an idea of what the final map is going to look like. ![image](docs_data/source/_static/printmap_preview_generate_en.png) If you’re satisfied with the overall look of the map, click **Order**. ![image](docs_data/source/_static/printmap_preview_en.png) If you wish to order a map with the sum of height and width over 2414 mm, email us at [sales@nextgis.com](mailto:sales@nextgis.com). In your email include: * Link to area you wish to print (use search bar to find your area of interest, go to the area page and copy the URL, for example, for Thessaloniki `https://data.nextgis.com/en/region/custom/printmap/?bounds=%7B%22x_min%22:22.899464,%22y_min%22:40.585678,%22x_max%22:22.989905,%22y_max%22:40.653123%7D®ionCode=GR-CITY-002`). Alternatively, you can send as the boundary as a GeoJSON or GeoPackage file; * Desired level of details; * Page size. ## Purchase After selecting an area you’ll see the price and the order details at the bottom of the page. Click **Order data**. “Email” fiels is required. The result of your order will be available for download on [the Orders page](https://data.nextgis.com/en/orders/actual)– to view it, you need to sign in / create account at my.nextgis.com with the email you are using during purchase. If you already have an account on [my.nextgis.com](https://data.nextgis.com/login) at the moment of purchase, we recommend signing in before placing an order. Check the details of your order. Make sure the paper size is indicated correctly. Switching between tabs and other actions may cause the page to refresh and reset the default format. ![image](docs_data/source/_static/printmap_order_details_en.png) Enter a discount code if you have one. After making sure that all information is correct press **Purchase data**. If you’re purchasing data on behalf of the organisation, we can issue an invoice addressed to this organisation. [More on payment methods](https://data.nextgis.com/en/faq/#pay) The payment is made in euros, if your card has another currency, the conversion is handled by the bank. . ## Download data Log in to data.nextgis.com. If you don’t have NextGIS ID yet, sign up using the email address you entered for your data order. After signing in click **Orders** in the top right corner. It will open your order history. In this section you can find all the orders made for that particular email address. You can see if the order is ready and download the data. Also you can repeat older orders to get actualized data for the same area. ![image](docs_data/source/_static/data_orders_list_en.jpg) # osm_download.html.md # Download OpenStreetMap Download OpenStreetMap features (buildings, roads, landuse, etc.) for a given bounding box via the Overpass API. Returns a ZIP archive with a GeoPackage containing one layer per category and a manifest. Inputs: * Bounding box in WGS84 (west, south, east, north); * Categories - Comma-separated OSM categories to download. Available: buildings, roads, paths, landuse, natural, waterways, amenities, shops, tourism. Default: `buildings,roads,landuse`; * Custom tags - JSON string with custom OSM tags, e.g. `{"leisure": "park"}`; * Network type. Road network type to download (only used when ‘roads’ category is selected): - Drive - Walk - Bike - All - default Outputs: * ZIP archive with a GeoPackage containing one layer per category; * Text report with the number of features for each layer; * JSON manifest. Launch the tool: [https://toolbox.nextgis.com/t/osm_download](https://toolbox.nextgis.com/t/osm_download) Example: ![image](docs_toolbox/source/_static/osm_download_result_en.png) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # osm_search.html.md # How to find the object I need on OpenStreetMap * First you need to go to the OpenStreetMap website. To do this, enter osm.org in the address bar of your browser or follow this [link](https://www.openstreetmap.org). ![image](docs_data/source/_static/osm_search1.png) * In the search box, enter the name of the object of interest, for example, “West Oxfordshire” and click on the “GO” button. The search results will be displayed under the search bar; if there is a complete match, the type of object (in our case, “City Border”) and its full name will be indicated. The “More results” button will display other similarly named objects. ![image](docs_data/source/_static/osm_search2.png) * The name of the object is clickable, when you click on it, the borders of the West Oxfordshire will be displayed on the map. ![image](docs_data/source/_static/osm_search3.png) # osmclip_bbox.html.md # Clip PBF file by bbox Downloads pbf file from web, and clips it by bbox string. You can obtain bbox string at [https://boundingbox.klokantech.com](https://boundingbox.klokantech.com) (format CSV). Inputs: * PBF file URL. Example - [https://nextgis.com/data/toolbox_static_testfiles/osmclip_bbox/maldives-latest.osm.pbf](https://nextgis.com/data/toolbox_static_testfiles/osmclip_bbox/maldives-latest.osm.pbf) * BBOX. Bounding Box in CSV format. Example - 14.5013,35.887,14.5066,35.899 (coordinates of the lower left and upper right corner of the frame). The bbox line can be taken here - [https://boundingbox.klokantech.com/](https://boundingbox.klokantech.com/) Outputs: * Clipped PBF. Launch the tool: [https://toolbox.nextgis.com/t/osmclip_bbox](https://toolbox.nextgis.com/t/osmclip_bbox) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # osminfo.html.md # OSMInfo QGIS plugin NextGIS OSMInfo allows you to get all the information for any point without loading any additional layers. No need to load the original data to check a house number or learn the name of a lake on a satellite image. All OSM features are available, including: * administrative boundaries; * bodies of water and protected areas; * road infrastructure; * buildings, city infrastructure; * points of interest. When the plugin is installed, its icon appears in the toolbar: * ![button_osminfo_activate](docs_ngqgis/source/_static/button_osminfo_activate.png) - show/hide OSMInfo panel * ![button_osminfo_ident](docs_ngqgis/source/_static/button_osminfo_ident.png) - identify OpenStreetMap feature Also the plugin is available in the Internet menu of the Menu bar. ## Feature identification Activate ![button_osminfo_ident](docs_ngqgis/source/_static/button_osminfo_ident.png) tool and click on your point of interest on the map. ![image](docs_ngqgis/source/_static/osminfo_plugin_result_en_2.png) Results are divided into two groups: * nearby features; * enclosing features. The feature selected in the panel is highlighted in orange. ## Feature context menu Any feature can be saved to your device. Right-click the feature in the search result list to open the context menu. From the context menu you can: * Zoom to feature - sets the extent of the map by the selected feature; * Copy to clipboard; * Save feature in new temporary layer; * Save feature in selected layer; * Open in OpenStreetMap; * Copy OpenStreetMap URL. ![image](docs_ngqgis/source/_static/osminfo_plugin_context_en_2.png) Saved feature keeps its data structure. ![image](docs_ngqgis/source/_static/osminfo_plugin_newlayer_en_2.png) See how to add a feature from OSM to a Web Map in our video: Watch on [youtube](https://youtu.be/uEzXfHyPjX4?si=uZD1Y-4rpWv9a4Z1). ## Search OpenStreetMap features You can also search for features in OpenStreetMap database using NextGIS OSMInfo plugin. In the plugin panel activate ![button_osminfo_search](docs_ngqgis/source/_static/button_osminfo_search.png) search mode. Enter feature ID, name or other query, then select a feature from the list of search results. ![image](docs_ngqgis/source/_static/osminfo_search_result_en.png) Three query formats are supported: - coordinates; - freeform (as in the Wizard, but also includes type:closed_way); - overpassql. You can enter the feature type in English on in one of the supported languages of the plugin interface, e.g. in Portuguese. Query examples: ```default Drinking water amenity=drinking_water and type:node "Drinking Water" in London (highway=primary or highway=secondary) and type:way tourism=hotel tourism=museum in Bratislava musée in Marseille ``` More on the query syntax [on the OpenStreetMap wiki](https://wiki.openstreetmap.org/wiki/Overpass_turbo/Wizard). To return to the identification mode, click the button with the cursor on the plugin panel or in the toolbar. ## Plugin settings To open the plugin menu, click ![button_osminfo_menu](docs_ngqgis/source/_static/button_osminfo_menu.png). In this menu you can: * Enable or disable highlighting all found features. By default only the first feature in the list is highlighed so as not to overload your device. * Enable or disable showing small featues as points. * Open Settings dialog. ![image](docs_ngqgis/source/_static/osminfo_small_polys_en.png)![image](docs_ngqgis/source/_static/osminfo_small_points_en.png) To open the plugin settings you can use the plugin panel menu or go Settings ‣ Options ‣ NextGIS ‣ OSMInfo. ![image](docs_ngqgis/source/_static/osminfo_plugin_settings_en_2.png) In the Query settings section you can set up what plugin does when you click on the map: * Remove nearby or enclosing features from the search results. * Set up the radius in which the nearby features are searched. * Set up request timeout. * Set up a limit for memory usage. In the plugin settings you can also select Overpass instance and enable debug messages. #### NOTE Plugin is supported in QGIS 4 # osmpoly_export.html.md # OSMPoly_export With this plugin you can export the selected features of a multi-polygon layer or the entire layer as poly-file. This type of file can be opened in the OpenStreetMap editor JOSM. After installation the plugin will appear in the Vector toolbar: ![button_osmpoly](docs_ngqgis/source/_static/button_osmpoly.png). * Select the layer in the Layers panel of QGIS. * Select the features you want to export. Activate the plugin. #### NOTE If no features are selected, the entire layer is exported. You’ll get a warning message about it. * In the pop-up dialog select a string field that contains values to be used as names of poly-files. ![image](docs_ngqgis/source/_static/select_name_field_en.png) * Enter the path to the target folder. Every polygon of the layer will be exported as a separate poly-file. Check out how the plugin works in our video: Watch on [youtube](https://youtu.be/gGE7o2_P8gA?si=Y4cHyq34COLtkI08). # other_soft.html.md # Our data in other software * [How to upload data to NextGIS Web with NextGIS Connect](connect2ngw.md) * [How to upload Tileset to NextGIS Web](tiles2ngw_en.md) * [How to open elevation data in QGIS](elevation_qgis.md) * [How to load elevation data into QGIS 3D window](3d_dem_qgis.md) * [How to open satellite data in QGIS](satellite.md) * [How to upload data to Google maps](google_mymaps.md) * [How to import data into AutoCAD](autocad.md) * [How to add a layer in AutoCAD Map 3D](map3d.md) * [How to load data in R](r.md) * [How to load data in GeoPandas](geopandas.md) * [How to open data in Excel](excel.md) * [How to upload text data into Microsoft Power BI](power_bi.md) * [How to load vector layer into Microsoft Power BI](power_bi_map.md) * [How to vizualize data with Highcharts Maps (highcharts.js)](highcharts.md) * [How to use data in Leaflet (leaflet.js)](leaflet.md) * [How to use data in D3 (d3.js)](d3.md) * [How to load data into PostgreSQL/PostGIS](pg.md) * [How to load multiple tables of different regions in PostgreSQL/PostGIS](upload_tables_postgis.md) * [How to load layer into Tableau](tableau.md) * [How to upload data to Blender GIS](blender.md) * [How to load data into Qlik Sense](qlik.md) * [How to open your project in MapInfo](mapinfo.md) * [How to open raster data in MapInfo](mapinfo_raster.md) * [How to open your basemap project in ArcGIS Pro](arcgispro.md) * [How to open a map or a project in ArcGIS Pro](arcgis.md) * [How to upload data to Locus GIS mobile app](locus.md) # panel.html.md # Plugin interface ![NextGIS Connect panel](docs_ngconnect/source/_static/connect_panel_en_2.png) Buttons on the panel: * ![button_to_qgis](docs_ngconnect/source/_static/button_to_qgis.png) [Add to QGIS](https://docs.nextgis.com/docs_ngconnect/source/resources.html) * ![button_to_wg](docs_ngconnect/source/_static/button_to_wg.png) [Add to Web GIS](https://docs.nextgis.com/docs_ngconnect/source/resources.html#ng-connect-export) * ![button_newfolder](docs_ngconnect/source/_static/button_newfolder.png) [Create resource group](https://docs.nextgis.com/docs_ngconnect/source/manage.html#ng-connect-res-group) * ![funnel](docs_ngconnect/source/_static/button_filter.png) [Search and filter resources](https://docs.nextgis.com/docs_ngconnect/source/filter.html) * ![button_refresh](docs_ngconnect/source/_static/button_refresh.png) [Refresh resource tree](https://docs.nextgis.com/docs_ngconnect/source/panel.html#connect-refresh) * ![map with magnifying glass](docs_ngconnect/source/_static/button_openmap.png) [Open Web Map in browser](https://docs.nextgis.com/docs_ngconnect/source/panel.html#connect-open-webmap) * ![blue gear](docs_ngconnect/source/_static/button_settings.png) [Plugin settings](https://docs.nextgis.com/docs_ngconnect/source/ngc_settings.html) * ![question mark](docs_ngconnect/source/_static/button_help.png) Help - opens this manual If no connection is set at the moment, the following message will be shown: ![Message if there is no connection](docs_ngconnect/source/_static/panel-no-connections_en.png) If the previously used version of NextGIS Connect didn’t support QGIS authentication, after the update you will need to convert all existing connections and authentication data. You can do it in the NextGIS Connect panel or in the [plugin settings](https://docs.nextgis.com/docs_ngconnect/source/ngc_settings.html). ![NextGIS Connect panel after update](docs_ngconnect/source/_static/connect_update_convert_en.png)![NextGIS Connect settings after update](docs_ngconnect/source/_static/ngc_upd_convert_menu_en.png) ## Refresh Click ![button_refresh](docs_ngconnect/source/_static/button_refresh.png) to refresh the entire Web GIS resource tree so that it’s up to date with the current state of the server. ![Refresh resource tree](docs_ngconnect/source/_static/reload_en.png) ## Display in browser If a Web Map ( ``` |resource_webmap| ``` NGW Web Map), a layer or a style is selected in NextGIS Connect resource tree, click ![map with magnifying glass](docs_ngconnect/source/_static/button_openmap.png) to preview the resource in a new tab of the default browser. ![Open Web Map in browser](docs_ngconnect/source/_static/open_webmap_en.png) Context menu also allows to display a Web Map, layer or style in browser or to [open the Web GIS page of any resource](https://docs.nextgis.com/docs_ngconnect/source/panel.html#ng-connect-cont-menu). ## Context Menu Context menu may differ depending on resource type. ![Context menu for a qgis vector style](docs_ngconnect/source/_static/context_menu_en.png) Common options for all resource types: - Open in WebGIS – open the page of the selected resource in Web GIS, also can be donde from the Layers panel, see [Fig. 883.](#ngc-open-from-layertree-pic); - Rename resource; - [Delete resource](https://docs.nextgis.com/docs_ngconnect/source/manage.html#connect-resource-delete); - Edit metadata. Variable options – depend on resource type: - Add to QGIS - [see above](https://docs.nextgis.com/docs_ngconnect/source/resources.html#ng-connect-export) for the types of resources that can be added and other details; - [Create Web Map](https://docs.nextgis.com/docs_ngconnect/source/manage.html#web-map) - available for: Vector layer, Vector style, Raster layer, WMS Layer; - [Download as QML](https://docs.nextgis.com/docs_ngconnect/source/export.html#connect-save-style) - only available for QGIS Vector style; - [Copy style](https://docs.nextgis.com/docs_ngconnect/source/edit.html#connect-style-copy) - only available for QGIS Vector style; - [Create WFS service](https://docs.nextgis.com/docs_ngconnect/source/resources.html#wfs) - only available for Vector layer; - [Create OGC API - Features service](https://docs.nextgis.com/docs_ngconnect/source/resources.html#ogc-api-features) - only available for Vector layer; - [Create WMS service](https://docs.nextgis.com/docs_ngconnect/source/resources.html#wms) - only available for Vector layer; - [Duplicate resource](https://docs.nextgis.com/docs_ngcom/source/ngqgis_connect.html#ngcom-connect-resource-double) - available only for Vector layer and Raster layer; - [Overwrite selected layer](https://docs.nextgis.com/docs_ngconnect/source/edit.html#connect-data-overwrite) - only available for Vector layer; - [Display in browser](https://docs.nextgis.com/docs_ngconnect/source/panel.html#connect-open-webmap) - available for Web Map, all types of layers and styles. The plugin also allows you to navigate to the Web GIS data directly from the the Layers panel in QGIS. In the layer’s context menu find “NextGIS Connect” and press “Open in Web GIS”. ![Context menu in the layer tree](docs_ngconnect/source/_static/ngc_open_from_layertree_en.png) # pano2vr.html.md # Convert Garden Gnome Package panoramas to JPEG Extracts panoramas from a Garden Gnome Package (.ggpkg) exported by Pano2VR and converts them into flat equirectangular JPEG images, one per shooting point of the tour. The result is a ZIP archive with the panoramas, ready to be uploaded to NextGIS Web. Inputs: * Source package. Tour in Garden Gnome Package format (.ggpkg), exported from Pano2VR. Outputs: * ZIP archive with equirectangular JPEG panoramas, one per shooting point. These panoramas can be added as attachments to vector layer features and viewed on a Web Map in NextGIS Web, [learn more](https://docs.nextgis.com/docs_ngweb/source/feature_edit.html#ngw-attachments-panoramas). Launch the tool: [https://toolbox.nextgis.com/t/pano2vr](https://toolbox.nextgis.com/t/pano2vr) Example: ![image](docs_toolbox/source/_static/pano2vr_input.jpg)![image](docs_toolbox/source/_static/pano2vr_result.png) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # panotag.html.md # Add Google Photosphere XMP metadata to photos Sometimes spherical panoramic images don’t have the neccessary tags which stops the viewers from displaying them correctly. This tool adds XMP tags corresponding to the [specification](https://developers.google.com/streetview/spherical-metadata) that notify the viewing widget that: * it’s a spherical panoramic image; * FOV is 360x180. So the input image must indeed have 360x180 field of view. GPano:PoseHeadingDegrees is copied from GPSImgDirection if it’s present. Inputs: * ZIP with photos or single JPG file. Subfolders supported for the archive. Outputs: * ZIP with modified photos with added tags. All images are stored in the root of the arhcive. You can [add spherical panoramas to features on a Web Map](https://docs.nextgis.com/docs_ngweb/source/feature_edit.html#ngw-attachments) and display them in NextGIS Web. Launch the tool: [https://toolbox.nextgis.com/t/panotag](https://toolbox.nextgis.com/t/panotag) Example: ![image](docs_toolbox/source/_static/panotag_input.png)![image](docs_toolbox/source/_static/panotag_result.png) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # pastvu2webgis.html.md # Import PastVu photos to Web GIS Transfer points with photo from PastVu to vector layer with attachments. Inputs: * Web GIS connection - URL of your Web GIS, e.g. [https://demo.nextgis.com](https://demo.nextgis.com) and login/password if necessary; * Import bounding box - you can mark it on a map, draw it and then correct the numbers or enter the extent manually following the format ‘xmin, xmax, ymin, ymax’. Enter coordinates in WGS 84 (EPSG:4326). Bounding box area shouldn’t exceed 50 km²; * Create Web Map - check this option if you want to create a Web Map displaying the layer with photos. Outputs: * Resource group containing the layer with photo attachments; * Web Map (if selected). Launch the tool: [https://toolbox.nextgis.com/t/pastvu2webgis](https://toolbox.nextgis.com/t/pastvu2webgis) Example: ![image](docs_toolbox/source/_static/pastvu2webgis_input_en.png)![image](docs_toolbox/source/_static/pastvu2webgis_result_en.png) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # permissions.html.md # Access permissions If several users need to have access to NextGIS GeoServices, you can set up different access rights for them. By default, Administrators have all the permissions, other users have no permissions. Permissions can be set for a group of services or a particular service. Go to the settings of a service group or a service and open the Permissions tab. Click **Add** to create a new rule. ![image](docs_geoserv_prem/source/_static/gsop_permissions_en.png) 1. Select from the dropdown list a user or a user group to which the rule applies. ([How to add user to a group](https://docs.nextgis.com/docs_geoserv_prem/source/settings.html#geoserv-prem-set-users)) 2. Select the action: **Allow** or **Deny**. 3. Tick the permissions: read, write, manage. The permission are cascading. * If you allow a user to “Write”, it automatically gives the “Read” permission too. Permission “Manage” gives both other permissions automatically. * Restrictions work in the opposite order. If you deny a user the permission to read it automatically forbids other actions too. 1. After you’ve set up the neccessary permission rules, click **Save**. To delete a rule, click on the red trash can icon to the right of it. ## How different permission rules work together You can add several permission rules for a service or a group of services. But only one rule per user/user group. You can combine permissions of different levels: * For the service group (for example, allow a group of users to read it), * For individual services inside the group (for example, give one user permission to manage one of the services and deny a different user to read a particular service). #### IMPORTANT User included in the Administrator group has all permissions for all the services, even if you set up rules that contradict it. # permissions.html.md # Managing access rights This section will help you set up access to your Web GIS for various users. Below you’ll find an overview of the permissions system and some common cases of setting up access. #### NOTE This functionality is only available for users having [Premium](https://nextgis.com/pricing-base/#team) subscription or for on-premise Web GIS. Web GIS on Free plan is open to be viewed by any guest. Web GIS on Premium plan or on-premise is by default closed off from anyone but the Administrator, see rule 2 below. ## Terms There are two base rules: 1. **Resource approach** Main (root) resource group (0) > Group 1 > Group 2 > Layer. Permission for the root group > Permission for Group 1 > Permission for Group 2 > Permission for the layer. #### IMPORTANT ! Without permission to read the main resource group user cannot view any files it contains. | **Resource** | Root (0) | Folder 1 | Folder 2 | Layer | |----------------|------------|------------|------------|---------| | **Permission** | Read | Read | Read | Read | You can select a specific resource type that will be affected by the permission. Other than that, there are two main options to apply a permission: * This resource only - it will only affect the resource itself. * This and subresources - it will affect all resources within, subgroups and their contents. ![image](docs_ngcom/source/_static/permission_apply_en.png) 1. **By default users have NO permissions.** #### IMPORTANT ! Everything is forbidden unless explicitly allowed by the administrator. The only way a user gets access to data is by having access granted by a permission. ### Types of principals (users) * Administrator - Web GIS user with administrative rights * Owner - Web GIS user who has created the particular resource for which the permission is given * Guest - user that has not logged in * Authenticated - Web GIS user who’s logged in with any existing account (a.k.a. not a guest) * Everyone - this includes both guests and users logged in with existing account ### Types of rules - what can be allowed or denied | Resource: All permissions | Any actions with resources, except resource groups | |--------------------------------------------------|-------------------------------------------------------------------------------------| | Resource: Read | Read resources | | Resource: Create | Create resources | | Resource: Modify | Edit resources | | Resource: Delete | Delete resources | | Resource: Manage subresources | Configure included (child) resource | | Resource: Configure permissions | Edit access permissions for the resources | | Data: All permissions | Any actions with the data | | Data: Read data | Read data | | Data: Modify data | Edit data | | External connections: All permissions | Any actions with the connections | | External connections: Read connection parameters | Read connection settings | | External connections: Configure connection | Edit connections | | External connections: Use connection | Use connections (gives to the user access to the layers and data of the connection) | | Web GIS services: All permissions | Any actions with the service | | Web GIS services: Access service | Connect to the service | | Web GIS services: Configure service | Edit service settings | | Web Map: All permissions | Any actions with the Web Maps | | Web Map: View annotations | View Web Map annotations | | Web Map: Draw annotations | Add annotations to Web Maps | | Web Map: Manage annotations | Edit Web Map annotations | | Collector: All permissions | Any actions with the Collector project | | Collector: Read | Any actions with the Collector project | ## Viewing user permissions To view which permissions particular users or groups of users have for a resource press **User permissions** in the “Extra” panel on the right side of the resource page. ![image](docs_ngcom/source/_static/view_permissions_select_en.png) This page only displays permissions that concern the resource itself. For example, if a folder has a “Read data” permission for its subresources, it will not be displayed, because the folder itself has no data. To check for this type of permission open one of the subresources and see user permissions for it. By default the page contains permissions for the user that is currently logged in. To view permissions for other users, press the arrow at the end of the field and select a user or a group in the dropdown menu. ![image](docs_ngcom/source/_static/view_permissions_principals_en.png)![image](docs_ngcom/source/_static/view_permissions_otheruser_en.png) By default the Web GIS owner and users added to the group Administrators have permission to view permissions for any user. Viewing user permissions is a global permission that is set up in the [Control panel](https://docs.nextgis.com/docs_ngweb/source/users.html#global-permissions). If a user does not have a global permission to view users and groups, but has a permission to view the resource, the option to display permissions is available, but only for that one user. Guests can only view user permissions for guest. ![image](docs_ngcom/source/_static/view_permissions_blocked_en.png) ## Permissions tab in Settings Permissions tab is available in Update resource page. Every row is a separate rule that inculdes: - **Action**: Allow or Deny; As everything that is not allowed by a rule is forbidden by default, we advise not to use “Deny”. - **Principal**: username, name of a user group or a [type of users](https://docs.nextgis.com/docs_ngcom/source/permissions.html#ngcom-permissions-usertypes) to whom the rule applies; - **Apply to**: This resource only or This and subresources; - **Permission**: determines actions that can be performed with a certain type of resource, see the full list in the [table](https://docs.nextgis.com/docs_ngcom/source/permissions.html#ngcom-permissions-permtypes). ![image](docs_ngcom/source/_static/resource_permissions_tab_en_2.png) ### How to add a new rule To add a new rule, press **Add** in the empty row at the end of the list and select **Allow**. ![image](docs_ngcom/source/_static/resource_permissions_new_en.png) Then in each column select from a dropdown menu the value you need and press **Save**. ![image](docs_ngcom/source/_static/resource_permissions_new_details_en.png) To delete a rule, press X at the end of the row. ## Common cases of assigning permissions This section contains examples of settings for some common cases of permission setups. * [Allow Guests to view the entire Web GIS](https://docs.nextgis.com/docs_ngcom/source/permissions.html#ngcom-permissions-guest-webgis) * [Allow Guests to view just one Web Map](https://docs.nextgis.com/docs_ngcom/source/permissions.html#ngcom-permissions-guest-webmap) * [Allow logged in users to use WMS service](https://docs.nextgis.com/docs_ngcom/source/permissions.html#ngcom-permissions-auth-wms) * [Allow to view PostGIS layer on a Web Map](https://docs.nextgis.com/docs_ngcom/source/permissions.html#postgis) * [Allow group of users to display trackers on Web Map](https://docs.nextgis.com/docs_ngcom/source/permissions.html#ngcom-permissions-track) ### Allow Guests to view the entire Web GIS Go to the Main resource group, select the Update action and set up the following permissions: * Action: **Allow** * Principal: **Guest** * Apply to **This and subresources** * Permission **Read** for **Resource** and **Data**. ![image](docs_ngcom/source/_static/allow_guest_webGIS_en_2.png) ### Allow Guests to view just one Web Map * Action: **Allow** * Principal: **Guest** 1. For the Main resource group **Resource: Read**; ![image](docs_ngcom/source/_static/allow_guest_main_en_2.png) 1. For the resource group containing data for the Web Map: **Resource: Read, Data: Read data**, apply to **This and subresources**; ![image](docs_ngcom/source/_static/allow_guest_data_group_en_3.png) 1. For the resource group containing the Web Map, if it is not the same group that contains the data, also assign permission **Resource: Read**; ![image](docs_ngcom/source/_static/allow_guest_webmap_group_en_2.png) 1. For the Web Map set up permission **Resource: Read**. ![image](docs_ngcom/source/_static/allow_guest_webmap_en_2.png) #### IMPORTANT We recommend keeping Web Map in a **separate group** from its layers, it will make setting up access rights more easy. If the Web Map is in the same group as the data, for the group only assign Resource: Read, then assing reading permission for every layer that has to be included. ### Allow logged in users to use WMS service * Action: **Allow** * Principal: **Authenticated** 1. For the Main resource group: **Resource: Read**, apply to **This resource only**. ![image](docs_ngcom/source/_static/allow_auth_main_en_2.png) 1. For the group containing the data and the WMS service: **Resource: Read, Data: Read data** and **Web GIS services: Access service**, apply to **This and subresources**. ![image](docs_ngcom/source/_static/allow_authorized_WMS_en_2.png) ### Allow to view PostGIS layer on a Web Map * Action: **Allow** * Principal: **Guest** (if the map needs to be available unauthorized users), **Authenticated** (if it needs to be available only to users who have logged in) etc. * Apply to **This resource only** 1. For the Main resource group **Resource: Read**; ![image](docs_ngcom/source/_static/allow_auth_main_en_2.png) 1. For the resource group containing data for the Web Map and the PostGIS layer: **Resource: Read, Data: Read data** and **External connections: Use connection**; ![image](docs_ngcom/source/_static/allow_auth_postgis_group_en_3.png) 1. For the resource group containing the Web Map, if it is not the same group that contains the data, also assign permission **Resource: Read**; ![image](docs_ngcom/source/_static/allow_auth_webmap_group_en_2.png) 1. For the Web Map set up permission **Resource: Read**. ![image](docs_ngcom/source/_static/allow_auth_webmap_en_2.png) #### IMPORTANT We recommend keeping Web Map in a **separate group** from its layers, it will make setting up access rights more easy. If the Web Map is in the same group as the data, for the group only assign Resource: Read, then assing reading permission for every layer that has to be included. If there are other Web Maps in the group that you wish to keep hidden from guests, make sure that the **Resource: Read** permission for the group is not propagated to the subresources and set to **This resource only**. ### Allow group of users to display trackers on Web Map * Action: **Allow** * Principal: **User group** (e.g. “Research group”) 1. Permission **Resource: Read**. Apply to: **This resource only**. Set it for: * Main resource group * Group that contains tracker group * Trackers group * Tracker * Group that contains Web Map * Web Map ![image](docs_ngcom/source/_static/allow_group_webmap_en.png) 1. Permissions: **Resource: Read** for **This resource only** and **Data: Read data** for **This and subresources** Set it for: * Resource group containing data for the Web Map ![image](docs_ngcom/source/_static/allow_group_data_group_en_2.png) # permissions.html.md # Permission system in NextGIS Web Mechanism of permission management is one of the key options of NextGIS Web. Resources are the main entities in NextGIS Web and access permissions are managed at its level. Mechanism of permission management of resources is similar to the principle of the file system access permissions. #### NOTE Available on [Premium](https://nextgis.com/pricing-base/) subscription plan or for [NextGIS Web deployed on-premise](https://nextgis.com/pricing/). ## Permissions and its types (scopes) **Permission** - the ability to make various actions with resources. For example, ‘Read’ permission allows you to get man information about resources (e.g. name). ‘Update’ permission allows you to update this info. For convenience permissions are grouped by **types (permission scope)**. Listed above Read and Update permission examples are related to the main permission scope - ‘Resource’. But there are some other types such as ‘Metadata’, ’Data structure’ or ‘Data’. ## Access control list and the rules Permission management is carried out through **access control list (ACL)** changes which are linked to the resources. In many ways, this is similar to Windows and Unix (POSIX ACL) OS permission management. However NGW has much more features and actions on resources than filesystems. Therefore there are more permissions and they are grouped into categories. Access control list consists of the **rules** which have the following attributes: * Action - allow or deny * Principal - user or group of users to which this rule applies * Permission - permission or permission scope that is prohibited or allowed by the rule * Apply to - scope of application: this resource, this and subresourcer or a particular type of resource to which this rule applies Regardless of rule’s placement (at the beginning or end of the list) - first, the rules with the action “Allow” are applied, and then the rules “Deny”. In other words - **‘Deny’ has a higher priority than ‘Allow’**. The position of the rule doesn’t matter. You can set a group of users as a principal (e.g. ‘editors’ group) - in the result this rule will be applied to such users who are in this group. Also as a principal you can set a specific user. In this case the rule will be applied to this user. In addition to the groups created by the administrator, the system has special system user groups: * Administrators - group whose users have administrative rights * Editors - a group whose users do not have access to the control panel, but can create and edit data Adding users to these groups is a convenient way to quickly assign the necessary permissions throughout the system. These groups cannot be deleted. Also, a specific user can be specified as a principal, in which case the rule will apply only to him. Also NextGIS Web has multiple virtual system users to be used in access control lists: * Authenticated - the rule will be applied to any authenticated user (logged in NGW) * Guest - the rule will be applied to not authenticated user * Everyone - the rule will be applied to any user (authenticated or not) * Owner - the rule will be applied to user who created a resource If the **‘Apply to’** attribute is set to ‘This and subresources’, then the rule applies not only to the current resource but to child resources. This attribute also allows you to set rules limitations to specific subresource categories. ## Permissions dependencies Such a situation, if a user may change resource name but has no opportunity to read this name, is so weird and leads to inconsistent system behavior in general. To avoid this problem NextGIS Web has permission dependencies. For example, ‘Update’ permission depends on ‘Read’ permission. Even if a user has a rule which allows him to ‘Update’ a resource but has not a rule to ‘Read’ it - then ‘Update’ permission will not take effect, ‘Update’ will be masked by ‘Read’. In practice most permissions depend on ‘Read’ at least Also there are dependencies between permissions of related resources. Let’s consider the example of the file system hierarchy. Suppose there is a hierarchy in the file system: **directory 1 > directory 2 > file**. Here a user can be given the permission to read the file. But if he does not have the opportunity to go to directory 1, and then to directory 2, he will not be able to read the file. Similar behavior is implemented using the dependence of the “Read” permission of the child resource on the “Read” permission of the parent resource. #### WARNING Thus, if you set the resource ‘Read’ permission then it doesn’t matter what permissions you assign to resources inside this folder, they won’t take effect. ## Computing Effective Permissions Suppose the user is going to perform some operation on a resource, for example, read its name. When accessed, for example via API, NextGIS Web calculates **effective permissions** - the set of permissions that the user has in relation to a particular resource. The computing is performed in the following sequence: 1. By default user does not have any permissions - the rule is **‘everything is deny except what is not explicitly allowed’** 2. Applied current resource and parent resources permissions that apply to ‘This and subresources’. 3. First the ‘Allow’ rules are applied - permissions from them are added to the computed set of permissions. 4. After that, ‘Deny’ rules are applied - the permissions from them are subtracted from the calculated set of permissions. 5. Dependencies are checked, permissions with unsatisfied dependencies are marked as masked. In the result you have an effective set of user permissions - permissions which are allowed, not denied and not masked by dependencies. Based on this set NextGIS Web makes a decision about performing an action both in the API and in the web interface. ## Assigning permissions to users before their first sign in In NextGIS Web, users have the ability to sign in both as an internal NextGIS Web user and as a global account on my.nextgis.com. In the second case, the administrator must add the global user account to [the team](https://docs.nextgis.com/docs_ngcom/source/create.html#team-management) in its profile on my.nextgis.com or NextGIS ID on-premise server. After sign in, a global user becomes a NextGIS Web user and is counted in the limit on their number. However, by default, it does not have any permissions in NextGIS Web. Therefore, we advise you to pre-set the permission type for a global user before its first auth. There are two ways how you can do this: * Preferred method: Assign permissions to some [user group](https://docs.nextgis.com/docs_ngweb/source/users.html#create-new-user-group) by checking the “New Users” flag. The user will be included in this group the first time they log in to NextGIS Web. * Alternative way: assign resource permissions for the principal “Authenticated”. For typical scenarios of permission usage see our [Common cases](https://docs.nextgis.com/docs_ngcom/source/permissions.html#ngcom-permissions-cases). # pg.html.md # How to load data into PostgreSQL/PostGIS #### IMPORTANT To run, you need an installed PostgreSQL database with the [PostGIS extension](https://postgis.net/install/). * [Order data](https://data.nextgis.com/en/) for your area of interest in SQL (PostgreSQL/PostGIS) format. * Go to the [orders](https://data.nextgis.com/en/orders/actual/) page and download the archive when it’s complete. * **Unpack** the archive. * Select target layer. Use psql to import data into database. ```bash psql -f boundary-polygon.sql -h host -U user -d database ``` where boundary-polygon.sql - target layer, host - address of the server with database (or localhost), user - user name, database - name of the database. #### NOTE Windows: if the command results in an encoding problem message, run the following commands before re-running ```bash SET PGCLIENTENCODING=utf-8 chcp 65001 ``` #### WARNING Do not use pgAdmin. # planetary_search.html.md # Search & download Planetary Computer Launch the tool: [https://toolbox.nextgis.com/t/planetary_search](https://toolbox.nextgis.com/t/planetary_search) Search and download satellite imagery and elevation data from Microsoft Planetary Computer (Sentinel-2, Landsat, Copernicus DEM, etc.) for a given bounding box and time range. Returns a ZIP archive of GeoTIFF files. Inputs: * Dataset collection. Satellite/elevation data collection to search: - Sentinel-2 Level-2A (10-60m, 2015-present) (sentinel-2-l2a) - Landsat Collection 2 Level-2 (30m, 1982-present) (landsat-c2-l2) - Copernicus DEM Global 30m (cop-dem-glo-30) - Copernicus DEM Global 90m (cop-dem-glo-90) - NAIP Aerial Imagery (US, 0.6-1m) (naip) - Sentinel-1 RTC SAR (10m) (sentinel-1-rtc) - IO Land Use/Land Cover 9-class (10m) (io-lulc-9-class) - ESA WorldCover (10m) (esa-worldcover) - NASADEM Elevation (30m) (nasadem) - ALOS World 3D DEM (30m) (alos-dem) - MODIS Surface Reflectance 8-Day (500m) (modis-09A1-061) * Bounding box - draw your area of interest on the map or enter coordinates in decimal degrees (West, South, East, North in WGS84); * Start date in ISO format, e.g. `2024-01-01`; * End date in ISO format, e.g. `2024-12-31` * Max cloud cover (%) (only for optical imagery like Sentinel-2, Landsat); * Max results - maximum number of scenes to search (between 1 and 100, default is 10); * Asset keys - comma-separated list of asset keys to download (e.g. ‘B04,B03,B02’ for Sentinel-2). If empty, all GeoTIFF assets are downloaded. Outputs: * ZIP-archive with data; * Report. Example: ![image](docs_toolbox/source/_static/planetary_search_input.png)![image](docs_toolbox/source/_static/planetary_search_result_en.png) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. #### SEE ALSO * [Search and save Sentinel-2 scene previews](https://toolbox.nextgis.com/t/s2_search?from-related-tools=1) * [Download Sentinel-2 satellite data](https://toolbox.nextgis.com/t/download_and_prepare_l8_s2?from-related-tools=1) * [Copernicus Sentinel image search](https://toolbox.nextgis.com/t/imagesearch?from-related-tools=1) * [Search and save Landsat-L2C2 scene previews](https://toolbox.nextgis.com/t/landsat_search?from-related-tools=1) # plk_catalog.html.md # Registration numbers catalog Get registration numbers by forestry. The tool allows to get information on the forestry as a table in a file that can be stored locally. Inputs: * Forestry registration number e.g. 43:31:7 Outputs: * CSV file. The table contains names, code numbers and forest management numbers of various items: region, forestry, district forestry, quarter, plot. If there is no data about plots, the table will be divided by quarters. * GeoPackage file with boundaries. Launch the tool: [https://toolbox.nextgis.com/t/plk_catalog](https://toolbox.nextgis.com/t/plk_catalog) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # plk_lesnich.html.md # Forestry catalog Get forectry or district forectry geodata by registration number. Inputs: * Sample input. Registraion number, e.g. 43:31 for forestry or 43:31:7 for district forestry * Source choice. Select source variant: > - Version A (map) > - Version B (pub) * Makevalid. Try make valid geometry Outputs: * GPKG with forestry geodata * Tool result report Launch the tool: [https://toolbox.nextgis.com/t/plk_lesnich](https://toolbox.nextgis.com/t/plk_lesnich) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # plugins.html.md # Plugins for QGIS QGIS was developed with capacity to embed various plugins, which allow to add numerous functions into application. QGIS provides libraries available for plugin creation. The majority of QGIS functions are implemented as basic or external plugins. Basic plugins are written in C++ and Python. All external plugins are written in Python now. They are located in external repositories and supported by their authors. External plugins can be added via Install Plugins option. * [Install plugins](install_plugin.md) * [Update plugins](update_plugins.md) * [Gather logs in QGIS](logs.md) * [QuickMapServices: most downloaded QGIS plugin](qms.md) * [IdentifyPlus](identifyplus.md) * [NextGIS EasyQuery](easyquery.md) * [Digitizr](digitizr.md) * [MOLUSCE](molusce.md) * [Geometry Paster](geom_paster.md) * [OSMInfo](osminfo.md) * [Click-Fu](clickfu.md) * [DumpLoadField](dumploadfield.md) * [QTiles](qtiles.md) * [Connect Points](connectpoints.md) * [Copy_Coords](copycoords.md) * [Points2One](points2one.md) * [Join lines](joinlines.md) * [MultiQML](multiqml.md) * [Quickly save default QML](quicksaveqml.md) * [NextGIS OGRStyle](ogrstyle.md) * [Send2GE](send2ge.md) * [OSMPoly_export](osmpoly_export.md) * [Shortcut Manager](shortcut.md) * [ReconstructLine](reconstructline.md) * [Wurman Dots](wurman_dots.md) * [QGIS DevTools — debugging QGIS plugins](devtools.md) * [NextGIS Toolbox](toolbox.md) * [NextGIS Connect](https://docs.nextgis.com/docs_ngconnect/source/index.html) **Qt6 support** Support of Qt6 is added to mre and more plugins. Current list of QGIS 4-ready plugins includes: * MOLUSCE * Geometry Paster * OSMInfo * QuickMapServices * QTiles * Send2GE * NextGIS Connect * QGIS DevTools * Wurman Dots Check out the full most up-to-date list of plugins that support Qt6 [here](https://plugins.qgis.org/plugins/new_qgis_ready/). # pointcloud2tileset.html.md # Point cloud to tileset Converts LIDAR data into set of tiles. The result can be added to 3D scene in NextGIS Web 3D. Inputs: * Point cloud – LAS file * CRS – coordinate reference system of the point cloud. Should be specified as EPSG code. Output: * ZIP-archive with tiles. Launch the tool: [https://toolbox.nextgis.com/t/pointcloud2tileset](https://toolbox.nextgis.com/t/pointcloud2tileset) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # points2one.html.md # Points2One This plugin connects points in a layer to form lines and polygons, grouping them by source layer attributes. After installation the plugin will appear in the Vector toolbar: ![button_points2one](docs_ngqgis/source/_static/button_points2one.png). In the plugin dialog configure the parameters: * Input layer - layer of points to be used as vertices; * Create polygons / Create lines - select the type of features you want to create; * Closed - select to have the line end in the point where it begins; * Group features by - select the field to be used for grouping; * Sort vertices by - select a field to be used to sort the vertices of the lines or polygons. This is used when you need to create several features, not one. ID used in the field should be unique; * Then by - additional field to sort by after the initial one; * Output shapefile - select folder where the out ESRI Shapefile will be created; * Encoding - select from a list; * Add result to canvas. If the points are not grouped, the vertices are sorted by the point ID. See the plugin at work in our video: Watch on [youtube](https://youtu.be/tzZnHBx3N98?si=O3dBTE4d6S_HeWwb). # points_on_tracks_stats.html.md # Statistics of points and tracks in polygons from NGW Calculating the number of points per kilometer of tracks inside polygons, all data from NextGIS Web Inputs: * Web GIS address. NextGIS Web URL. Example: [https://sandbox.nextgis.com](https://sandbox.nextgis.com); * Login. NextGIS ID or Web GIS user login; * Password. Web GIS user password; * Polygons resource ID. Numbers at the end of the UR of the vector layer that contains polygons * Polygons layer name field. Field in the polygon layer that contains feature names (for example, area names or grid cell numbers) that will be used in the report; * Points resource ID. Numbers at the end of the link to the vector layer that contains points; * Fields with point categories. You can specify multiple attributes separated by commas, for example: `author,species`. Leave the input blank if you do not need to use point categories for calculations; * Field with point date. The name of the field that stores the date the point was registered. Leave blank if you do not need to filter points by date; * Start date. Start date for filtering tracks and points (YYYY-MM-DD). Leave empty to use tracks from first day of database; * End date. End date for filtering tracks and points (YYYY-MM-DD). Leave empty to use all tracks up to today; * Trackers list. List of trackers whose data needs to be processed. Tracker IDs are written in comma-separated format, for example `314,318,340`. Leave blank to use all available trackers; * Split statistics by trackers. Use tracker ID as another category for calculating statistics; * Ignore polygons without tracks. Do not include statistics when there are points in polygon, but no tracks. Output: * CSV file with report. The ID of resources and trackers can be obtained through the web interface of the Web GIS used. Open the resource of the vector layer or tracker, its address in the browser will look like [https://demo.nextgis.com/resource/6895](https://demo.nextgis.com/resource/6895). ID is the number on the right side of the address, in this case 6895. Tool workflow: 1. Load vector layers with polygons and points from Web GIS; 2. Load data from all (or specified) trackers from Web GIS; 3. Calculate track lengths in each polygon, with or without division by individual trackers, depending on the launch parameters; 4. Calculate the number of points in each polygon, with or without division by categories from attributes, depending on the launch parameters; 5. Calculate statistics on the number of points per 1 km of tracks in each polygon, taking into account all previous divisions - by individual trackers or by all, by all points or with division by categories; 6. Generate a report. Launch the tool: [https://toolbox.nextgis.com/t/points_on_tracks_stats](https://toolbox.nextgis.com/t/points_on_tracks_stats) Example: ![image](docs_toolbox/source/_static/points_on_tracks_stats_input_en.png)![image](docs_toolbox/source/_static/points_on_tracks_stats_result.png) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # poly2explication.html.md # Polygon to explication (forestry) Generating a report of explication of forest plots. Used to automatically obtain a table of lengths and azimuths from a polygon. Inputs: * Polygonal layer (forest plot) - a vector data set (plot boundaries) in the format supported by OGR. Shape-files are transferred in an archive, single-file sets - uncompressed. There should be only 1 feature on the layer; * Line layer (reference) - Vector data set (reference) in the format supported by OGR. Shape-files are transferred in an archive, single-file sets - uncompressed. There should be only 1 feature on the layer. If the reference section can not be filled out, the “Stub” can be used instead, which is a layer without features. A stub can be taken [`here`](files/empty_layer.geojson); * Type on angles to calculate. - Directional angles (0) - Magnit azimuth (1) - True north azimuth (2) Magnetic and true angles can be calculated only if the source data (plot polygon and reference line) have correct CRS description. To calculate true angles the data is reprojected to the corresponding UTM zone. To calculate magnetic angles World Magnetic Model is used to calculate deviation; * Description of the binding method - free text; * Forestry number - integer. Outputs: * Excel report (XLSX). Launch the tool: [https://toolbox.nextgis.com/t/poly2explication](https://toolbox.nextgis.com/t/poly2explication) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # polysimplifier.html.md # Polygons topological simplifier This tool simplifies linear and polygonal geometries. Useful for simplifying administrative boundaries, vegetation, and other polygons that touch each other. This tool keeps topology, boundaries between features will not get gaps or overlaps. Input: * Linear or polygonal layer file in OGR-compatible vector format. For formats with several files upload a ZIP archive. * Simplification percentage - Range 1 to 100. Use 90 for testing. The **higher** the percentage - the **higher** the simplification. Output: * Simplified GeoJSON Launch the tool: [https://toolbox.nextgis.com/t/polysimplifier](https://toolbox.nextgis.com/t/polysimplifier) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # postal.html.md # Parse addresses The tool allows to divide text of an address into separate hierarchical elements, such as region, city, street, etc. Input: * Source file – CSV file, one of the columns should contain address information. * Column name – title of the column which contains address. Output: * Modified CSV file, containing initial data as well as address elements divided into separate columns. Watch the video on [youtube](https://youtu.be/CQjypOchMdE). Launch the tool: [https://toolbox.nextgis.com/t/postal](https://toolbox.nextgis.com/t/postal) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # postgis_details.html.md # PostGIS To add a vector layer from PostgreSQL database with PostGIS extension, you need to create a PostGIS connection resource. It is enough to create one connection. ## Creating PostGIS connection Press **Create resource** button and select **PostGIS connection** (see [Fig. 477.](#admin-layers-create-postgis-connection-resourse)). ![image](docs_ngweb/source/_static/ngweb_create_PostGIS_conn_en.png) Enter a display name that will be visible in the administrator interface. Not to be confused with layer name in a database. “Keyname” field is optional. ![map to buried treasure](docs_ngweb/source/_static/admin_layers_create_postgis_connection_resourse_name_eng_2.png) You can also add resource description and metadata on the corresponding tabs. ![map to buried treasure](docs_ngweb/source/_static/admin_layers_create_postgis_connection_description_en.png)![image](docs_ngweb/source/_static/admin_layers_create_postgis_connection_resourse_metadata_eng_3.png) Switch from “Resource” to “PostGIS connection” tab, which is presented on [Fig. 481.](#admin-layers-create-postgis-connection-db-logins). ![image](docs_ngweb/source/_static/create_postgis_connection_settings_en.png) In this tab you should enter connection parameters for the PostGIS database that you are going to take data from. * disable - use an unencrypted connection. * allow - attempt to connect whithout encryption, falling back to an encrypted connection if an unencrypted connection cannot be established. * prefer - attempt to connect using encryption, falling back to an unencrypted connection if an encrypted connection cannot be established. * require - require an encrypted connection and fail if one cannot be established. * verify-ca - require an encrypted connection, and also perform verification against the server CA certificate. * verify-full - require an encrypted connection, and also perform verification against the server CA certificate and against the server host name in its certificate. More about [SSL modes](https://www.postgresql.org/docs/current/libpq-ssl.html#LIBPQ-SSL-PROTECTION). After configuring all the neccessary settings click **Create**. ## Creating PostGIS layer Now you can add individual PostGIS layers. Navigate to a group where you want to create layers. Press **Create resource** button and select **PostGIS layer** (see [Fig. 482.](#admin-layers-create-postgis-layer)). ![image](docs_ngweb/source/_static/ngweb_create_PostGIS_layer_en.png)![image](docs_ngweb/source/_static/admin_layers_create_postgis_layer_resourse_name_eng_3.png) Enter a display name that will be visible in administrator interface and in the map layer tree. “Keyname” field is optional. You can also add resource description and metadata on the corresponding tabs. ![image](docs_ngweb/source/_static/admin_layers_create_postgis_layer_resourse_metadata_eng_3.png) Switch from “Resource” tab to “PostGIS layer” tab, which is presented on [Fig. 485.](#admin-layers-create-postgis-layer-tablename). ![image](docs_ngweb/source/_static/create_postgis_layer_settings_en.png) Then perform the following steps: 1. From a dropdown list select a database connection (creation of a connection is described above). 2. Select a schema of the database where layer data is stored. A single database can store multiple schemas. Each schema contains tables and views. If there is only one schema, it’s called public. For more information see **PostgreSQL DBMS** manual. 3. Select the Table name (PostGIS layer). You need to know names of tables and columns in your database. Display of tables content is not a feature of NextGIS Web. You can view them using **NextGIS QGIS** or **pgAdmin** software. 4. Select an ID column. When data is loaded into PostGIS using **NextGIS QGIS** software, an ogc_fid column is created. If the data was loaded another way, the column name may be different. An ID column should follow rules for data type: the value type should be a number (**numeric**) and it should be a primary key. 5. Select the Geometry column (if the data was loaded to PostGIS using **NextGIS QGIS** software, usually a geometry column called wkb_geometry is created. If the data was loaded some other way, the name of the column may be different). 6. Parameters “Geometry type”, “Fields” and “SRID” are not required, so you can use default values. After specifying all the necessery parameters, click **Create**. #### IMPORTANT You need an unique integer column to attach your table to NextGIS Web. If the primary key column of the table is not integer or there is none at all, you can create an auxiliary key. To create a key column connect to your database (for example using psql in qgis) and execute the following (replacing ‘tablename’ with the name of your table): ```default ALTER TABLE tablename ADD fid serial NOT NULL; ALTER TABLE tablename ADD CONSTRAINT tablename_fid_unique UNIQUE (fid); ``` And then use this column (fid) an ID column in NextGIS Web. ![image](docs_ngweb/source/_static/postgis_add_fid_qgis_en.png) More details about PostGIS [here](https://docs.nextgis.com/docs_ngweb/source/postgis_details.html). ## Multiple geometries in a singe table NextGIS Web software supports tables with point, line and polygon geometries stored in a single geometry column. This is required for some specific datasets: e.g. if one table stores coordinates for parks as polygons and trash cans as points. In this case, in NextGIS Web you need to add three different layers, one for each type of geometry, and select the appropriate “Geometry type” parameter for each layer. After a layer is created, you need to set a label attribute to display labels. Navigate to layer edit dialog and set a checkbox for the required field in the “Label attribute” column. If the structure of the database changes (column names, column types, number of columns, table names etc.), you need to update the attribute definitions in the layer properties. Select “Update” in the actions pane and then on the “PostGIS layer” tab change “Attribute definitions” to “Reload” and click **Save**. ## PostGIS diagnostics You can check the correctness of the entered data when adding the [PostGIS Connection](https://docs.nextgis.com/docs_ngweb/source/postgis_details.html#creating-postgis-connection) resource using the **Diagnostics** tool. To do this, you need to click on the **Diagnostics** button on the panel on the right. ![image](docs_ngweb/source/_static/diagnostics_start_en_2.png) If all fields are filled in correctly when creating a connection to PostGIS - diagnostics will be successful. ![image](docs_ngweb/source/_static/diagnostics_successfully_en_2.png) If any of the entered data is not correct, an error message will appear. ![image](docs_ngweb/source/_static/diagnostics_fail1_en_2.png)![image](docs_ngweb/source/_static/diagnostics_fail2_en_2.png) ## PostGIS layer troubleshooting You created a connection, but when you try to create a PostGIS layer based on it, you get errors. If you get: 1. Cannot connect to the database! Check the database: is it available, do you have the right credentials? You can do it using **pgAdmin** or **NextGIS QGIS**. Note that databases may be down temporarily and credentials might change. ## Create layers with conditions In **NextGIS Web** you can not define queries using WHERE SQL clause. This provides additional security (prevention of SQL Injection attack). To provide query capability you need to create views with appropriate queries in the database. To do this connect to PostgreSQL/PostGIS database using **pgAdmin**, then navigate to data schema where you want to create a view, right click tree item “Views” and select “New view” (see item 1 in [Fig. 491.](#pgadmin3)). Also you can right click on schema name and select “New object” and then “New view”. In the opened dialog, enter the following information: 1. View name («Properties» tab). 2. Data schema where to create a view («Properties» tab). 3. SQL query («Definition» tab). ![image](docs_ngweb/source/_static/pgadmin3_eng.png) After that you can display a view to check if the query is correct without closing **pgAdmin** (see item 2 in [Fig. 491.](#pgadmin3)). # power_bi.html.md # How to upload text data into Microsoft Power BI * [Order data](https://data.nextgis.com/en/) for your area of interest in CSV (Excel) format. * Go to the [orders](https://data.nextgis.com/en/orders/actual/) page and download the archive when it’s complete. * **Unpack** the archive. * In Power BI Desktop select “File” > “Get Data” > “Text/CSV”. ![image](docs_data/source/_static/power_bi1.png) * In the pop-up window specify path to the target CSV file. * Next, in the preview window, check the correctness of symbols and tabs. If the characters are not recognized correctly by your device, make sure that UTF-8 encoding is selected in the “File Origin” field. ![image](docs_data/source/_static/power_bi2.png) * After clicking “Load” button data is ready for analysis. ![image](docs_data/source/_static/power_bi3.png) # power_bi_map.html.md # How to load vector layer into Microsoft Power BI * [Order data](https://data.nextgis.com/en/) for your area of interest, e.g. in GeoJSON (QGIS) format. * Go to the [orders](https://data.nextgis.com/en/orders/actual/) page and download the archive when it’s complete. * **Unpack** the archive. * Convert target layer to TopoJSON format. For the conversion you can use any online converter, for example, [MapShaper](https://mapshaper.org/). * First you should activate Shape map visual. Select “File” > “Options and settings” > “Options”. In pop-up window select “Preview features” from the left list and then check the box next to “Shape map visual”. Press “OK”. ![image](docs_data/source/_static/power_bi_map1.png) * From “Visualizations” panel select Shape map icon. Template with map appears in the left corner of the main workspace. ![image](docs_data/source/_static/power_bi_map2.png) * Let’s add prepared TopoJSON file into Power BI. From the main bar select “Get Data” > “All” > “JSON” and click on “Connect”. In the next pop-up window specify path to the targer TopoJSON, press “Open” button. ![image](docs_data/source/_static/power_bi_map3.png) * When file became uploaded, Query Editor Window appears. Here you can prepare data for better visualization. In the table find column with object geometries and double click on it. ![image](docs_data/source/_static/power_bi_map4.png) * Column with the objects expands in the lower part of the Query window. From the main menu select “Transform” > “Convert to list”. ![image](docs_data/source/_static/power_bi_map5.png) * Now list with objects is presented separately. Let’s turn it into independent table. Select “Transform” > “To Table” and press “OK” in pop-up window. ![image](docs_data/source/_static/power_bi_map6.png) * In the new table set some parameters: press on the icon with forked arrow, and in the pop-up window check the box next to “properties”, press “OK”. ![image](docs_data/source/_static/power_bi_map7.png) * Table is transformed, in the header of the column again press on the icon with forked arrow and select attributes you want to visualize. Press “OK”. ![image](docs_data/source/_static/power_bi_map8.png) * You can rename column and then select “Close & Apply” from menu bar. ![image](docs_data/source/_static/power_bi_map9.png) * Now data is ready for visualization. From the “Fields” panel select target field and drag it to “Location” gap. ![image](docs_data/source/_static/power_bi_map10.png) * Under “Visualizations” panel select “Format” tab > “Shape” > “+ Add map”. In the pop-up window specify path to TopoJSON file. ![image](docs_data/source/_static/power_bi_map11.png) * Layer is loaded into workspace. ![image](docs_data/source/_static/power_bi_map12.png) # predict_overpass.html.md # Predict satellite overpass The tool forms an XLSX file with the data on Aqua, Terra, S-NPP, NOAA 20, 21, SENTINEL-1A, 1С, 2A, 2B, 2C, LANDSAT 8, 9 satellites passing over an area of interest in a selected period of time. Inputs: * Area of interest - vector file with a polygon in GDAL-supported format, e.g. GeoPackage, GeoJSON, MapInfo TAB, ESRI Shapefile (the last two - in ZIP-archive). The area of the polygon should be no less than 200 sq. km. * Start date - date of the beginning of an observation. Should be in yyyy-mm-dd format. * End date - date of the end of an observation. Should be in yyyy-mm-dd format. #### NOTE The restriction about minimum size of the polygon is based on the high speed of satellite fly and the frequency of requests about its position (every 5 seconds). Therefore, the bigger the area of interest, the more complete will be information about satellite overpass. Output: * XLSX file with the date and time of the satellite overpasses. Launch the tool: [https://toolbox.nextgis.com/t/predict_overpass](https://toolbox.nextgis.com/t/predict_overpass) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # prepare_raster.html.md # Prepare raster A tool that performs a per-band connection of a set of single-band rasters and crops the result using a vector mask. Inputs: * Input raster dataset. 1) multiband GDAL-supported raster or 2) ZIP archive with singleband GDAL-supported rasters; * Input vector dataset. It will be used for clipping input raster. 1) OGR-supported single file or 2) ZIP archive with ESRI Shapefile. * Nodata value. Optional. Value that will be set as Nodata. Default is 0. * Output dataset name. Optional. No extension (e.g. ndvi, water). Extension will be automatically set to .tif. Outputs: * Result raster in TIFF format. ![image](docs_toolbox/source/_static/prepare_raster_result_en.png) If the input is an archive with single-band rasters, the tool first combines them into a multi-band raster. The order of the bands is determined by alphabetically sorting the names of the initial rasters in the archive. Then the multi-band raster (assembled from the archive or submitted immediately) is cropped with a vector mask. The initial rasters and the vector mask can be in different coordinate systems before processing, all data is brought into a single spatial domain. Launch the tool: [https://toolbox.nextgis.com/t/prepare_raster](https://toolbox.nextgis.com/t/prepare_raster) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # print.html.md # How to prepare map for printing * [Order data](https://data.nextgis.com/en/) for your area of interest, we recommend selecting GeoPackage format. * Go to the [orders](https://data.nextgis.com/en/orders/actual/) page and download the archive when it’s complete. * **Unpack** the archive. * Prepare the layout: Open the project file in QGIS. Find the part of the map you want to print. From the main menu go to: Project –> New print layout. Press **Add map** button on the toolbar to the left. You can set up scale, scope and other parameters of the map in the “Item Properties” tab on the right. . ![image](docs_data/source/_static/layout_en.png) * Print the layout or save it, as PDF, SVG or image. The correspondent buttons are on the top toolbar. # print.html.md # Print a Web Map or save as image #### SEE ALSO Features of a layer can be [exported as data in various formats](https://docs.nextgis.com/docs_ngweb/source/admin_interface.html#ngw-vector-export). [Web GIS](../../docs_ngcom/source/description.md#ngcom-description) allows to print a Web Map or save it as a picture. To do it: 1. Go to the Properties window of Web Map from the relevant Resource group; 2. Select Web Map ‣ Display on the right side of Web GIS admin console; 3. In the opened web client, which allows to view and edit geodata, press the “Print map” button (see [Fig. 574.](#ngweb-webmap-client-print)). ![image](docs_ngweb/source/_static/webmap_client_print_eng_2.png) In the opened window you can select the area you would like to print and set up printing parameters: * Paper format (A3, A4 or custom); * Margins; * Scale. You can also add: * Legend (includes visible layers of expanded groups if their legend is expanded, it is set up in the Layers tab); * Title (can be edited, the default is the Web Map resource name); * North arrow; * Scale value; * Scale bar. The size and placement of the title, the legend and the map itself can be changed. ![image](docs_ngweb/source/_static/webmap_client_print2_eng_4.png) After you set all parameters press **Print**. You can also share the map prepared for printing with all the parameters. Click on the ![button_share](docs_ngweb/source/_static/button_share.png) symbol (marked in red on the [Fig. 575.](#ngweb-webmap-client-print2)) to copy the link. Upon opening this link you’ll get the same setup and print the map as needed. To save a map as a picture press **Save as** and choose a format from the list: JPEG, PNG, TIFF or PDF. Then uploading will begin automatically. ![image](docs_ngweb/source/_static/saved_map_en.png) # problems.html.md # Solving technical problems * [When area or distance differs from the expected value](calc_area.md) # process.html.md # How to process your data * [Order data](https://data.nextgis.com/en/) for your area of interest, for example, in Geopackage (QGIS) format. * Go to the [orders](https://data.nextgis.com/en/orders/actual/) page and download the archive when it’s complete. * **Unpack** the archive. * Go to [NextGIS Toolobx](https://toolbox.nextgis.com). * Enter a keyword into the search bar, for example, “generalization”. * Select a tool. Upload your data to it and run the tool. You’ll find detailed instruction on the tool page. If you haven’t found the tool you need, [let us know](https://docs.google.com/forms/d/e/1FAIpQLSfStAfamF4ifmj9_FNEFIBISYQaAzbDjxDD_xgfq8iYyFqxGw/viewform). #### HINT You can [add NextGIS Toolbox MCP server to you AI agent settings](https://docs.nextgis.com/docs_toolbox/source/mcp.html) and solve your geospacial tasks directly in chat. # python_api.html.md # Python API library Various NextGIS Web tasks can be performed through ngw_external_api_python library from the client (script, plugin, software package). [https://github.com/nextgis/ngw_external_api_python](https://github.com/nextgis/ngw_external_api_python) Example usage: [https://github.com/nextgis/ngw_external_api_python/blob/9fd06b9a81a2018d3451fbb6f72a85e00d343e21/tests/client.py](https://github.com/nextgis/ngw_external_api_python/blob/9fd06b9a81a2018d3451fbb6f72a85e00d343e21/tests/client.py) # qgis2pdf.html.md # QGIS project to PDF Output the whole map and each separate map layer as PDF. Inputs: * The QGIS project and data. Archive of the QGIS project with all layers zipped. * Extent. Optional parameter. If left blank, the coverage will be calculated as the sum of the coverage of the project layers; * The width of the output PDF file, mm; * The height of the output PDF file, mm. Outputs: * ZIP archive with PDF files. Launch the tool: [https://toolbox.nextgis.com/t/qgis2pdf](https://toolbox.nextgis.com/t/qgis2pdf) ![image](docs_toolbox/source/_static/qgis2pdf_input_en.png)![image](docs_toolbox/source/_static/qgis2pdf_result.png) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # qgis_check_geometries.html.md # Check geometries (QGIS) Checks a vector file for geometry validity using the QGIS *checkvalidity* algorithm. Inputs: * ZIP archive with vector files in single-file formats (for example, GeoPackage, GeoJSON, etc.). #### NOTE Even if you have one file only, it needs to be in a ZIP archive. Outputs: * CSV file with a list of errors and coordinates; * GeoJSON file with points marking the location of the errors. Launch the tool: [https://toolbox.nextgis.com/t/qgis_check_geometries](https://toolbox.nextgis.com/t/qgis_check_geometries) Example: ![image](docs_toolbox/source/_static/qgis_check_geometries_result.png) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # qgis_fix_geometries.html.md # Fix geometries (QGIS) Correction of incorrect geometries in vector files using the qgis:fixgeometries algorithm. Inputs: * ZIP archive with vector files. Only single-file formats are supported (GeoPackage, GeoJSON, etc. **not** ESRI Shapefile); * Method. The method of the qgis algorithm ‘fixgeometries’. Choose one from the list: Linework or Structure. Outputs: * ZIP archive containing vector files with correct geometry. Launch the tool: [https://toolbox.nextgis.com/t/qgis_fix_geometries](https://toolbox.nextgis.com/t/qgis_fix_geometries) Example: ![image](docs_toolbox/source/_static/qgis_fix_geometries_input_en.png)![image](docs_toolbox/source/_static/qgis_fix_geometries_result_en.png) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # qgis_multiparttosingleparts.html.md # Multipart to singleparts This tool takes a vector file with multipart geometries and generates a new one in which all geometries contain a single part. Features with multipart geometries are divided into as many different features as parts the geometry contains, and the same attributes are used for each of them. This is useful when you need to work with individual geometry parts separately, or when you need to ensure that all features have single-part geometries for compatibility with certain processing algorithms or data formats. Input: * Vector file - any vector file that may contain multipart geometries (such as MultiPolygon, MultiLineString, or MultiPoint). Output: * A new vector GeoJSON file where each feature contains only a single-part geometry. The output will have the same attribute fields as the input, but potentially more features if the input contained multipart geometries. Launch the tool: [https://toolbox.nextgis.com/t/qgis_multiparttosingleparts](https://toolbox.nextgis.com/t/qgis_multiparttosingleparts) ![image](docs_toolbox/source/_static/qgis_multiparttosingleparts_before_en.png)![image](docs_toolbox/source/_static/qgis_multiparttosingleparts_after_en.png) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # qgis_rastertiles.html.md # Generate raster tiles from QGIS project Generate zipped raster tiles from an archive with QGIS project and data. Inputs: * ZIP file containing QGIS project and data files; * Extent. If empty, a combined extent of all layers will be used. It may unexpectedly calculate an extent of the entire planet, then the tool will take a lot of time to process. Options to set the extent are: 1) upload a file with polygons - it’s handy if you need tiles for a complex area, along a coastline, for example, 2) mark it on a map, 3) draw it on the map and then correct the numbers or 4) enter the extent manually following the format ‘xmin, xmax, ymin, ymax’. Enter coordinates in WGS 84 (EPSG:4326), for example `-7.3,42.1,10.5,50.5`; * Min zoom level - between 0 and 25, the default value is 0; * Max zoom level - between 0 and 25, the default value is 9; * Tile image format - if not specified generates PNG tiles. You can also enter `JPG`; * Background color in RGBA, if not specified, 0,0,0,0 (transparent) will apply; * DPI - image resolution in dots per inch, between 48 and 600, the default value is 96; * Metatile size - between 1 and 20, the default value is 4; * JPEG quality - the level of image compression between 1 (more compression, low quality) and 100 (max quality), the default is moderately compressed, 75; * Tile height in pixels, if not specified, 255 will apply; * Tile width in pixels, if not specified, 255 will apply. Output: * ZIP archive with tile images organized into folders. Launch the tool: [https://toolbox.nextgis.com/t/qgis_rastertiles](https://toolbox.nextgis.com/t/qgis_rastertiles) ![image](docs_toolbox/source/_static/qgis_rastertiles_input.png) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # qgis_vectortiles.html.md # Generate vector tiles from QGIS project Generate zipped vector tiles from an archive with QGIS project and data. Only the vector layers are taken from the project, no styling is applied. Inputs: * ZIP file containing QGIS project and data files; * Extent. If empty, a combined extent of all layers will be used. It may unexpectedly calculate an extent of the entire planet, then the tool will take a lot of time to process. You can mark it on a map, draw it and then correct the numbers or enter the extent manually following the format ‘xmin, xmax, ymin, ymax’. Enter coordinates in WGS 84 (EPSG:4326), for example `-7.3,42.1,10.5,50.5`; * Min zoom level - between 0 and 25, the default value is 0; * Max zoom level - between 0 and 25, the default value is 9. Output: * ZIP archive with tile images in Protocolbuffer Binary Format (PBF) format organized into folders. Launch the tool: [https://toolbox.nextgis.com/t/qgis_vectortiles](https://toolbox.nextgis.com/t/qgis_vectortiles) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # qlik.html.md # How to load data into Qlik Sense * [Order data](https://data.nextgis.com/en/) for your area of interest, e.g. in GeoJSON (QGIS) format. * Go to the [orders](https://data.nextgis.com/en/orders/actual/) page and download the archive when it’s complete. * **Unpack** the archive. * Convert the desired layer or layers to KML format. For conversion, you can use any online converter, for example, [Mapshaper](https://mapshaper.org/) or [QGIS export](https://docs.qgis.org/3.44/en/docs/user_manual/managing_data_source/create_layers.html#creating-new-layers-from-an-existing-layer) to KML format. * In created Qlik Sense app go to “Data manager” tab and select “Add data from files and other sources”. ![image](docs_data/source/_static/qlik1.png) * In pop-up window add previously obtained KML file. ![image](docs_data/source/_static/qlik2.png) * On the next step it is recommended to uncheck the boxes opposite to empty fields and also to rename the fields which have long names. Then click “Next”. ![image](docs_data/source/_static/qlik3.png) * After uploading the data you will be redirected to the sheet. Choose “Charts” > “Map” and drag the icon to add a map to the sheet. ![image](docs_data/source/_static/qlik4.png) * Select “Layers” > “Add layer” from the menu located on the right side of the map. ![image](docs_data/source/_static/qlik5.png) * Select the layer type. In this example we are adding polygonal objects, so we select “Area layer”. If you want to add a layer with point or line objects, select “Point layer” or “Line layer”, respectively. ![image](docs_data/source/_static/qlik6.png) * In the “Data” > “Dimensions” tab, from the drop-down list, select the field of the loaded layer, which contains information about the coordinates of the objects. ![image](docs_data/source/_static/qlik7.png) * Layer is added to the map. ![image](docs_data/source/_static/qlik8.png) # qms.html.md # QuickMapServices: most downloaded QGIS plugin #### NOTE Qt6 compatible With this plugin you can quickly add a basemap to you QGIS project. Raster basemap is often the first layer to be added to a project. You can add OpenStreetMap layer, UTM zones borders etc. Basemap can be in the form of a Web service: TMS, WMS, WMTS, ESRI ArcGIS Service, or symply XYZ tiles. You can search for any service added to QMS database by using the **search bar** [Fig. 813.](#qms-search). Most used basemaps are gathered in he QuickMapServices **dropdown menu**. Full catalog of QuickMapServices is available on [https://qms.nextgis.com/](https://qms.nextgis.com/). You can [add your own basemaps to the catalog](https://qms.nextgis.com/faq#addingservices). ## How to add basemaps and other services to QGIS After the plugin is installed its buttons appear in the Web Toolbar (you can move the buttons to another panel in the Settings). Also QuickMapServices submenu will be added to the Web menu. Activate the ![button_QMS_search](docs_ngqgis/source/_static/button_QMS_search.png) QMS search panel. Enter the name of the service you want to find or some key words into the search bar (try “Openstreetmap”, “Mapnik” or “UTM”), then double-click the service to add it to the map or click **Add**. ![image](docs_ngqgis/source/_static/qms_search_en.png) Click **Filter by extent** to only display the layers that contain the area visible on the map in QGIS. Not all the layers in QMS database have specified extent, but you can add it yourself. Not all the layers in QMS database have specified extent, but you can add it yourself. Basemap is added to project as a raster layer (see [Fig. 814.](#qms-map)) ![image](docs_ngqgis/source/_static/qms_added_example_en.png) You can check out how the plugin works in our video: Watch on [youtube](https://youtu.be/lw_v0GlZzcE?si=CGU15UB9NHcUFzdS). Another way to add a basemap is to pick one of the services from the plugin menu. Click ![modules_Qms-button](docs_ngqgis/source/_static/modules_Qms-button.png) on the Web toolbar or go to Web ‣ QuickMapServices. Click on a service to add it to the project. ![image](docs_ngqgis/source/_static/qms_add_from_menu_en_2.png) You can modify the contents of this menu in the plugin settings. ## Settings To open the plugin settings, go to Web ‣ QuickMapServices ‣ Settings or open Settings from the plugin menu. ![image](docs_ngqgis/source/_static/qms_settings_open_en.png) ### General settings On this tab you can activate one of the options: 1. Automatically reproject to EPSG: 3857 Pseudo Mercator; 2. Enable plugin debug messages. If this option is enabled, the messages are shown in the QGIS message center. By default they are displayed in a pop-up window. ![image](docs_ngqgis/source/_static/qms_settings_main_en.png) ### Add/Edit/Remove On the second tab you can add services to the plugin menu. You can create a new service in one of the existing groups or add a new group. To create a new group, click on the green plus in the top half of the tab. Set an ID and an alias that will be displayed in the menu. ![image](docs_ngqgis/source/_static/qms_new_group_en.png) To create a new service, click on the green plus in the bottom half of the tab. ![image](docs_ngqgis/source/_static/qms_new_service_en.png) * Set an ID and an alias that will be displayed in the menu. * Pick the group in which to include the service. * Select the service type: WMS, TMS, GDAL, WFS, GeoJSON. On the next tab you can add lisencing information. #### NOTE If you plan to make a derivative work based on a basemap added from the Internet, please read the terms of use for that basemap so as not to violate copyright laws. If you use OSM Mapnik, all you need to do is add «© OpenStreetMap contributors (osm.org)». Other basemaps and satellite images may have more restrictions. On the third tab: * Add service URL; * Enter the numeric code of the CRS (e.g. 3857 for EPSG:3857 (WGS 84 / Pseudo-Mercator). ![image](docs_ngqgis/source/_static/qms_new_service_url_en.png) Click **OK** to complete the service creation. ![image](docs_ngqgis/source/_static/qms_new_service_result_en.png) If you want to share the service with other users, you can add it to [the public QuickMapServices catalog](https://qms.nextgis.com/). Click ![modules_Qms-button](docs_ngqgis/source/_static/modules_Qms-button.png) on the Web toolbar or go to Web ‣ QuickMapServices and select **Add to Search**. ![image](docs_ngqgis/source/_static/qms_add_to_catalog_en.png) It opens QuickMapService page in your browser, allowing you to create a new publicly available service that other users would access via QMS search. [More on adding a new service to QMS search](https://qms.nextgis.com/faq). ### Visibility On this tab you can select which groups and services to display in the plugin dropdown menu. ![image](docs_ngqgis/source/_static/qms_visibility_en.png) # qtiles.html.md # QTiles #### NOTE Qt6 compatible. Can be used in QGIS 4 This plugin generates raster tiles from QGIS project for selected zoom levels and tile naming conventions (Slippy Map or TMS). Raster tilesets like this are used for example in [mobile GIS](https://docs.nextgis.com/docs_ngmobile/source/intro.html) for field work without Internet connection. Packages can be used in NextGIS Mobile, GeoPaparazzi, simple Leaflet-based viewer or MBTiles. After installation the plugin toolbar is added to the interface. You can turn it on and off in the toolbar list: QTiles Toolbar. To create a tileset open the QGIS project you want to create tiles from. Activate the plugin ![button_qtiles](docs_ngqgis/source/_static/button_qtiles_solid.png). In the plugin window you can configure parameters of the tiles: ![image](docs_ngqgis/source/_static/qtiles_dialog_en_2.png) Required parameters are: * **Tileset name** - by default the project name is used; * **Format** - select your output: > * Directory - tiles are saved in subfolders; > * ZIP-archive; > * MBTiles; > * PMTiles; > * NextGIS Mobile - NGRC file, optimized for use [in NextGIS Mobile app](https://docs.nextgis.com/docs_ngmobile/source/load_geodata.html#ngmobile-import-vector). * **Path** to the target folder; * **Extent** - you can enter it manually or select one of the options: > * ![button_map_extent](docs_ngqgis/source/_static/button_map_extent.png) Use current map canvas extent; > * Calculate from layer; > * Calculate from layout vap; > * Calculate from bookmark; > * Draw on map canvas; > * Extent of visible layers; > * Full project extent. * **Zoom**: minimum (by default it’s 0, the entire world), maximum - enter a number or find the necessary zoom on the canvas and select **Set current zoom level** from the dropdown menu. Click **Run**. The progress bar appears at the bottom of the plugin window. Additional settings: * **Tile parameters**, we advise not to change them unless necessary. You can set up tile size, image format (PNG or JPG), DPI, and quality for JPG tiles. * Advanced parameters: > * Enable antialiasing (enabled by default); > * Render tiles with transparent background (enabled by default); > * Render tiles outside layer extents > * Enable TMS tile convention; > * Enable MBTiles compression; > * Write JSON metadata file; > * Write overview image file; > * Write MapURL file; > * Write Leaflet viewer. See how the plugin works in our video: Watch on [youtube](https://youtu.be/vU4bGCh5khM?si=MgEOY337b9GAIXYO). # quadro.html.md # Set of squares with transects This tool creates a set of square grids (polygons) and a transect for the territory. Inputs: * Coordinates of the first point (center of the first cell), in decimal degrees, example `40.415378, -3.688743`; * Coordinates of the second point that indicates direction, in decimal degrees, example `40.417436, -3.683170`; * Side - on which side to generate the grid: right or left; * Cell count 1 - Number of cells on the first axis; * Cell count 2 - Number of cells on the second axis; * Cell size - The size of a cell’s side, in meters. The result of the process is a set of layers: * rect1 - a grid of cells “Size 1” by “Size 2”, the center of the first cell is at the point 1; * rect2 - a grid of smaller cells (i.e. each large cell is divided into 4 parts); * line1 - transect lines in the direction perpendicular to the line between points 1 and 2; * line2 - transect lines in the direction parallel to the line between points 1 and 2; * centers - cell centers of rect1 grid. Styles for all the layers are also included as QML files. Launch the tool: [https://toolbox.nextgis.com/t/quadro](https://toolbox.nextgis.com/t/quadro) View the results on an interactive map: [https://demo.nextgis.com/resource/4582/display?panel=layers](https://demo.nextgis.com/resource/4582/display?panel=layers) ![image](docs_toolbox/source/_static/quadro_result_styles.png) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # quicksaveqml.html.md # Quickly save default QML QGIS plugin “Quickly save default QML” allows to instantly save the layer’s style to the folder where the layer is stored. Supports group saving of vector and raster styles. After installation the plugin will appear in the Plugins toolbar: ![button_qmlsaveone](docs_ngqgis/source/_static/button_qmlsaveone.png) ![button_qmlsavemulti](docs_ngqgis/source/_static/button_qmlsavemulti.png). To save the style of one layer, select it in the Layers panel and press ![button_qmlsaveone](docs_ngqgis/source/_static/button_qmlsaveone.png). The style will be saved to the folder containing the layer under the same name as the layer. To save styles of multiple layers at once, press ![button_qmlsavemulti](docs_ngqgis/source/_static/button_qmlsavemulti.png). Then in the plugin dialog ([Fig. 856.](#quicksaveqml-multi-pic)) select the layers and press **Save style(s)**. ![image](docs_ngqgis/source/_static/quicksaveqml_multi.png) See how the plugin works in our video: Watch on [youtube](https://youtu.be/X23t_5eWdoA?si=Vt5IsRfHmn4yHF5B). # r.html.md # How to load data in R * [Order data](https://data.nextgis.com/en/) for your area of interest in GeoPackage format. * Go to the [orders](https://data.nextgis.com/en/orders/actual/) page and download the archive when it’s complete. * **Unpack** the archive. * Find out a name and a path to the target layer. * Install and load the rgdal package for R. If you are using Windows for correct attributes use this: ```r Districts <- readOGR(dsn ='KO/data/boundary-polygon-lvl6.shp', use_iconv = TRUE, encoding = "UTF-8") ``` for other operating systems this should be enough: ```r Districts <- readOGR(dsn ='KO/data/boundary-polygon-lvl6.shp') ``` # r_mapcalc.html.md # Raster calculator (GRASS) This tool performs calculations on single band rasters. The tool is based on [r.mapcalc](https://grass.osgeo.org/grass83/manuals/r.mapcalc.html). Input: * Single band GDAL supported raster, e.g. GeoTIFF. Add at least one raster file (to the “A” field). You can upload up to 8 raster files. > * A – required field; > * B – optional field; > * C – optional field; > * D – optional field; > * E – optional field; > * F – optional field; > * G – optional field; > * H – optional field; * Expression – required field. Use arithmetic (`+, -, /, *` etc.) or logical (`>, ==` etc.) operators, or functions (`log(x), if(x) `` etc.) to build an expression. The whole list is available `here `_. Variables (rasters) should be specified as A, B, C etc. Example: ``(A+B)/C`. Output: * GeoTIFF file with the result of the calculation. Launch the tool: [https://toolbox.nextgis.com/t/r_mapcalc](https://toolbox.nextgis.com/t/r_mapcalc) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # raster2tiles.html.md # Raster to NGRC This tool generates NGRC raster tileset from any input GDAL-supported raster. The result can be added to NextGIS Mobile. Inputs: * Raster dataset - RGB, RGBA, single-band gray or single-band with palette GDAL-compatible raster; * Palette file - TXT file with color scheme of each raster values located in a separate line. Order: *Value Red Green Blue Opacity*. For example, for a value of 23, assigning a completely opaque lilac color looks like this: `23 200 162 200 255`. Opacity ranges from 0 to 255, 0 - completely transparent, 255 - completely opaque. Use an empty text file to keep the original palette (for single-band with palette) and for RGB / RGBA rasters; * Zoom levels - the levels at which the tiles will be displayed. This refers to [standard zoom levels](https://wiki.openstreetmap.org/wiki/Zoom_levels), for example, as for OSM maps. Possible input values: a number indicating one level, for example, 10; a range of levels, for example, 8-14; hyphen - for auto-selection of levels. Outputs: * NGRC file with tileset. Launch the tool: [https://toolbox.nextgis.com/t/raster2tiles](https://toolbox.nextgis.com/t/raster2tiles) Example of the tool’s work: ![image](docs_toolbox/source/_static/raster2tiles_input_en_2.png)![image](docs_toolbox/source/_static/raster2tiles_output_2.png) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # raster_calculator.html.md # Raster calculator (GDAL) ![image](docs_toolbox/source/_static/raster_calculator.png) A tool that implements raster arithmetics for multi-band rasters or groups of single-band rasters. Uses [gdal_calc.py](https://gdal.org/programs/gdal_calc.html) script. Inputs: * Initial raster data: 1. Multi-band raster in GDAL-compatible format, or 2. ZIP archive with a set of single-bandl GDAL-compatible rasters Rasters in the archive can be stored in different coordinate systems, have different extents and cell sizes. When calculated, everything will be reduced to a single spatial domain. * Expression. Standard expression using the operators `+, -, \*, /,>, <`, etc. If the initial data is in a ZIP archive, then the names of the source files in the expression should be used (for example, `band4.tif / band5.tif`, if the files have the corresponding names). The extension is part of the name. For a multi-band raster, use the band number with the `&` prefix (for example, `& 4 / & 5`). Bands are numerated starting at 1. Examples of expressions: Forest areas with a temperature of less than 30 degrees: `forest_mask.tif * (land_temperature.tif < 30)` EVI Index: `2.5 * (&5 - &4) / (&5 + 6.0*&4 - 7.5*&2 + 1.0)` * The name of the resulting raster. No file extension (e.g. ndvi, water). The extension will be automatically set to .TIF * X resolution The width of each individual pixel in the resulting raster in the coordinate system units of the first raster from the set (eg 30). Use the - symbol to automatically select the pixel width; * Y resolution The height of each individual pixel in the resulting raster in the coordinate system units of the first raster from the set (eg 30). Use the - symbol to automatically select the pixel height; * The extent of the resulting raster. Format: xmin, ymin, xmax, ymax. Example: 1000, 1000, 2500, 2500. Use - to automatically determine the extent. In this case, the intersection extent of all input rasters will be calculated; * Data Type for the New Raster. Available data types: - Auto mode (auto_mode) - use to automatically select the data type. - Int32 - Int16 - Float64 - UInt16 - Byte - UInt32 - Float32 Output: * The result of the process is a single-band raster in the GeoTiff format, calculated according to the specified expression. If the user sets one of the optional parameters (resolution along one of the axes or the extent), then first all the rasters involved in the expression are brought to the specified state, when the calculations are performed. In case of an automatic selection of spatial domain parameters the following logic is used: 1. The lowest spatial resolution among all source rasters is calculated. It is taken as an output. 2. All rasters are reprojected on the coordinate system of the first raster in the list. 3. The output extent is calculated as the extent of the intersections of all the initial rasters. Launch the tool: [https://toolbox.nextgis.com/t/raster_calculator](https://toolbox.nextgis.com/t/raster_calculator) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # rec_track.html.md # Track recording To record a new track in NextGIS Tracker app: * Open the main screen of the app. In the bottom right corner press the green Start button, see [Fig. 1127.](#track-start-pic). ![image](docs_ngtracker/source/_static/track_start_en.png) * In your device settings allow the app to access location **continuously even when the app is not in use**. The dialog may vary depending on Android version. In the notification panel of the device you’ll see a walking figure indicating that track recording is in progress. If you open the panel, you can stop the recording by pressing **Stop**. ![image](docs_ngtracker/source/_static/track_rec_notification_en.png) If you open the main app screen again, you’ll also see that the recording is in progress. There are several indications: ![image](docs_ngtracker/source/_static/track_recording_en.png) 1. The green Start button in the bottom right corner changed to Stop button; 2. In the “Status” section you’ll see one of these messages: * “Collecting tracking data and syncing …” - recording is in progress as well as synchronization with the Web GIS; * “Collecting tracking data…” - recording is in progress, but there is no synchronization with Web GIS. 1. In the **Current location** section you’ll see details about the recording track (left to right, top to bottom): * latitude and longitude of the current location; * current precision; * current speed; * current height; * number of satellites used to get location; * GPS connection; * time when the latest point was recorded. # reconstructline.html.md # ReconstructLine This plugin reconstructs linear features from points. Points can be unordered (mixed) time-wise or by other attributes, only spatial location of points is considered. After installation you’ll find the plugin in the toolbar. * Select layer. * Select point you want to join into a line. * Press **Get poins** ![button_copy_points](docs_ngqgis/source/_static/button_copy_points.png). * Select target line layer. Activate Edit mode for it. * Press **Insert line** ![button_paste_line](docs_ngqgis/source/_static/button_paste_line.png) or **Insert multiple lines** ![button_paste_fragments](docs_ngqgis/source/_static/button_paste_fragments.png). * In the pop-up dialog enter the attribute for the features. ![image](docs_ngqgis/source/_static/paste_line_attr_en.png) ![button_paste_line](docs_ngqgis/source/_static/button_paste_line.png) **Insert line** adds a single multiline containing all the points as vertices. ![button_paste_fragments](docs_ngqgis/source/_static/button_paste_fragments.png) **Insert multiple lines** creates a sequence of simple lines, with two vertices each. Works only for MultiLineString layers. To create lines gruping points by attribute values use [Points2One](https://docs.nextgis.com/docs_ngqgis/source/points2one.html) plugin. See how the plugin works in our video: Watch on [youtube](https://youtu.be/fw59AbimSPU?si=FJcL_SoaPzJ-rvUi). # reissue_api_key.html.md # Reissue of API key If you need to update your API key, it must be reissued again. For this: 1. Go to the **Profile** section of the *Settings* on the left panel; 2. Click the **Refresh** button opposite the current API key field. ![image](docs_geoservices/source/_static/nggeos_refresh_api_key.png) # remote.html.md # Requirements for remote access All our products deployed on-premise (NextGIS Web, NextGIS GeoServices, NextGIS Toolbox) can be installed or upgraded remotely by our implementation specialists. The requirements listed below are sufficient for: * NextGIS Web Standard * NextGIS Web Extended * NextGIS GeoServices * NextGIS Toolbox If you have Enterprise support package, the access conditions are agreed upon on an individual basis. To install or upgrade the software our specialists need remote access to your server. The options are: - Access via SSH with superuser (root) permissions, e.g. using sudo -i. - Connection using the server’s public IP address, or SSH port forwarding to a public IP address. What **cannot** be used for installation and upgrades: - VPN connection of any type. - Remote access software such as TeamViewer, AnyDesk etc. - Video calls and other screen sharing methods. If you wish to limit the SSH access by IP addresses, contact our Support team to get the list of IP addresses used for the remote access. Internet access is not necessary to install or upgrade of our products, but it makes the process quicker and easier, so we recommend using it if possible. To install system software (Docker Engine, for example) the server needs to have Internet access with no proxy. If such Internet access cannot be provided, you have to install the system software yourself. You can find the details about the required system software in the installation manual. We only need remote access to install or upgrade our software. After this process is finished, you can revoke the access. Usually installation/upgrade takes 1-2 business days to complete, but it some cases it may require more time. Keep that in mind when you plan for organizing the remote access. In any case, it is your IT department that needs to install and configure the reverse proxy in order to provide HTTPS traffic encryption. In our installation manual you can find recommendations on configuring reverse proxy using Nginx as an example . If you cannot provide remote access to your servers as described above, your specialists can perform installation/upgrade themselves using our manuals. In this case we provide consultations to answer the questions you may have. To request an installation or upgrade, send an email from your designated contact to our Support team at [support@nextgis.com](mailto:support@nextgis.com), providing the access parameters, e.g.: ```default **Subject:** NextGIS Web installation In accordance with Contract XXX dated DD.MM.YYYY, we kindly request the installation of NextGIS Web on our server. Remote access parameters are as follows: - IP address: `198.51.100.1` - SSH port: `2022` - Username: `nextgis` - Password: `******` ``` # removecontents.html.md # Erase features The tool removes features for all vector layers in a target resource group in Web GIS on NextGIS platform. Layer resources are not removed. NextGIS Web (NGW) is a geodata managing system. You can use it for free after [signing up](https://docs.nextgis.com/docs_ngcom/source/create.html). With NextGIS Web you can store geodata, create interactive online maps, give access to them to your teammates and clients, edit features directly on the map and in the feature tables, as well as process them with specialized Toolbox tools. [More on what NGW can do](https://docs.nextgis.com/docs_ngweb/source/general.html). Inputs: * Web GIS address – URL of the Web GIS, e.g. [https://demo.nextgis.com](https://demo.nextgis.com). * Login – Web GIS user login. * Password – Web GIS user password. * Group ID - numeric value, resource ID of the group that contains vector layers. Outputs: * Text message about successful deletion of the layers content. Watch the video on [youtube](https://youtu.be/OBXqNRo_nEM). Launch the tool: [https://toolbox.nextgis.com/t/removecontents](https://toolbox.nextgis.com/t/removecontents) **Try it out using our sample:** Download [input dataset](https://nextgis.com/data/toolbox/removecontents/removecontents_inputs.zip) to test the instrument. Step-by-step instructions included. Get the [output](https://nextgis.com/data/toolbox/removecontents/removecontents_outputs.zip) to additionally check the results. # resource.html.md # Resources ## Resource classes The current list of resource classes: * resource_group * postgis_layer * wmsserver_service * baselayers * postgis_connection * webmap * wfsserver_service * vector_layer * raster_layer * mapserver_style * qgis_vector_style * raster_style * file_bucket * lookup_table * wmsclient_layer * wmsclient_connection * formbuilder_form * trackers_group * tracker * collector_project ## HTTP API ### Version #### Versionadded Added in version 3.0. To get NextGIS Web API version execute the following request: ### GET /api/component/pyramid/pkg_version **Example request**: ```http GET /api/component/pyramid/pkg_version HTTP/1.1 Host: ngw_url Accept: */* ``` **Example JSON response**: ```json { "nextgisweb": "2.0", "nextgisweb_mapserver": "0.0dev" } ``` ### Routes #### Versionadded Added in version 3.0. Routes are the REST API URLs which are supported by current instance of NextGIS Web. To get possible routes execute the following request: ### GET /api/component/pyramid/route **Example request**: ```http GET /api/component/pyramid/route HTTP/1.1 Host: ngw_url Accept: */* ``` **Example JSON response**: ```json { "pyramid.settings": [ "/api/component/pyramid/settings" ], "feature_layer.feature.update": [ "/resource/{0}/feature/{1}/update", "id", "feature_id" ], ... "pyramid.statistics": [ "/api/component/pyramid/statistics" ], "feature_layer.feature.item": [ "/api/resource/{0}/feature/{1}", "id", "fid" ], "pyramid.pkg_version": [ "/api/component/pyramid/pkg_version" ] } ``` ### Schema Schema request returns list of supported NextGIS Web resources, each resource type properties and metadata. ### GET /resource/schema Schema request. #### NOTE REST API requests require accept field in header with following text: Accept: \*/\* **Example request**: ```http GET /resource/schema HTTP/1.1 Host: ngw_url Accept: */* ``` **Example JSON response**: ```json { "scopes": { "resource": { "label": "Ресурс", "identity": "resource", "permissions": { "manage_children": { "label": "Manage child resources" }, "change_permissions": { "label": "Change permissions" }, "read": { "label": "Read" }, "create": { "label": "Create" }, "update": { "label": "Modify" }, "delete": { "label": "Delete" } } }, "service": { "label": "Сервис", "identity": "service", "permissions": { "connect": { "label": "Connection" }, "configure": { "label": "Configure" } } }, "datastruct": { "label": "Data structure", "identity": "datastruct", "permissions": { "write": { "label": "White" }, "read": { "label": "Read" } } }, "connection": { "label": "Connection", "identity": "connection", "permissions": { "write": { "label": "Write" }, "read": { "label": "Read" }, "connect": { "label": "Connect" } } }, "webmap": { "label": "Web-map", "identity": "webmap", "permissions": { "display": { "label": "Open" } } }, "data": { "label": "Data", "identity": "data", "permissions": { "write": { "label": "Write" }, "read": { "label": "Read" } } }, "metadata": { "label": "Metadata", "identity": "metadata", "permissions": { "write": { "label": "Write" }, "read": { "label": "Read" } } } }, "resources": { "raster_style": { "scopes": [ "resource", "data", "metadata" ], "identity": "raster_style", "label": "Raster style" }, "resource": { "scopes": [ "resource", "metadata" ], "identity": "resource", "label": "Resource" }, "postgis_connection": { "scopes": [ "connection", "resource", "metadata" ], "identity": "postgis_connection", "label": "PostGIS connection" }, "resource_group": { "scopes": [ "resource", "metadata" ], "identity": "resource_group", "label": "Resource group" }, "wmsclient_connection": { "scopes": [ "connection", "resource", "metadata" ], "identity": "wmsclient_connection", "label": "WMS connection" }, "mapserver_style": { "scopes": [ "resource", "data", "metadata" ], "identity": "mapserver_style", "label": "MapServer style" }, "vector_layer": { "scopes": [ "resource", "datastruct", "data", "metadata" ], "identity": "vector_layer", "label": "Vector layer" }, "qgis_vector_style": { "scopes": [ "resource", "data", "metadata" ], "identity": "qgis_vector_style", "label": "QGIS style" }, "wmsclient_layer": { "scopes": [ "resource", "datastruct", "data", "metadata" ], "identity": "wmsclient_layer", "label": "WMS layer" }, "basemap_layer": { "scopes": [ "resource", "data", "metadata" ], "identity": "basemap_layer", "label": "Basemap" }, "wfsserver_service": { "scopes": [ "resource", "service", "metadata" ], "identity": "wfsserver_service", "label": "WFS service" }, "lookup_table": { "scopes": [ "resource", "data", "metadata" ], "identity": "lookup_table", "label": "Reference" }, "postgis_layer": { "scopes": [ "resource", "datastruct", "data", "metadata" ], "identity": "postgis_layer", "label": "PostGIS layer" }, "webmap": { "scopes": [ "resource", "webmap", "metadata" ], "identity": "webmap", "label": "Web map" }, "wmsserver_service": { "scopes": [ "resource", "service", "metadata" ], "identity": "wmsserver_service", "label": "WMS service" }, "raster_layer": { "scopes": [ "resource", "datastruct", "data", "metadata" ], "identity": "raster_layer", "label": "Raster layer" } } } ``` ### Basic requests ### GET /api/resource/(*int:* id) Get JSON resource representation. Need resource read permission. ### PUT /api/resource/(*int:* id) Change resource by JSON payload data. Need read and write permissions. ### DELETE /api/resource/(*int:* id) Delete resource. ### GET /api/resource/ Get resource description in JSON. * **Parameters:** * **parent** (*integer*) – Parent resource identifier. ### POST /api/resource/ Create resource by JSON data payload. * **Parameters:** * **parent** (*integer*) – Parent resource identifier, may be in JSON payload. * **cls** (*string*) – Resource class (type). For a list of supported resource classes see [Resource classes](#ngwdev-resource-classes). ### Search resources To search resources execute the following request: ### GET /api/resource/search/?(*string:* key1)=(*string:* value1)&(*string:* key2)=(*string:* value2)... Search resources. * **Request Headers:** * [Accept](https://www.rfc-editor.org/rfc/rfc7231#section-5.3.2) – must be `*/*` * [Authorization](https://www.rfc-editor.org/rfc/rfc7235#section-4.2) – optional Basic auth string to authenticate * **Parameters:** * **key2...** (*key1,*) – resource properties (for example, cls, creation_date, keyname). If resource property has children they are divided by double underscore (`__`). The `serialization=full` parameter make return list of resources with full description, otherwise only `resource` key will be returned. * **value1,value2...** – key value to search. All `key=value` pairs form the following search string `key1=value1 AND key2=value2 AND ...`. * **Status Codes:** * [200 OK](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/200) – no error * **Response JSON Array of Objects:** * **resource** – Array of resource json representation. #### WARNING Now supported only `owner_user__id` key with child. #### NOTE Without parameters request returns all resources available to current user. **Example request**: Search by keyname ```http GET /api/resource/search/?keyname=satellite HTTP/1.1 Host: ngw_url Accept: */* ``` **Example response**: ```json [ { "resource": { "id": 856, "cls": "resource_group", "creation_date": "1970-01-01T00:00:00", "parent": { "id": 0, "parent": { "id": null } }, "owner_user": { "id": 4 }, "permissions": [], "keyname": "satellite", "display_name": "111222", "children": false, "interfaces": [], "scopes": [ "resource", "metadata" ] }, "resmeta": {} } ] ``` Found only one resource because keyname is unique in the whole NextGIS Web instance. **Example request**: Search by name ```http GET /api/resource/search/?display_name=photos HTTP/1.1 Host: ngw_url Accept: */* ``` Search for raster layers ```http GET /api/resource/search/?cls=raster_layer HTTP/1.1 Host: ngw_url Accept: */* ``` Search for QGIS vector styles with metadata ```http GET /api/resource/search/?cls=qgis_vector_style&serialization=full HTTP/1.1 Host: ngw_url Accept: */* ``` ### Child resource To get child resources of parent resource with identifier `id` execute the following request: ### GET /api/resource/?parent=(*int:* id) **Example JSON response**: ```json [ { "resource": { "id": 730, "cls": "webmap", "parent": { "id": 640, "parent": { "id": 639 } }, "owner_user": { "id": 4 }, "permissions": [], "keyname": null, "display_name": "OpenDroneMap sample", "description": null, "children": false, "interfaces": [], "scopes": [ "resource", "webmap", "metadata" ] }, "webmap": { "extent_left": -83.31, "extent_right": -83.3, "extent_bottom": 41.042, "extent_top": 41.034, "bookmark_resource": null, "root_item": { "item_type": "root", "children": [ { "layer_adapter": "image", "layer_enabled": true, "layer_max_scale_denom": null, "item_type": "layer", "layer_min_scale_denom": null, "display_name": "Seneca country", "layer_style_id": 642, "layer_transparency": null } ] } }, "basemap_webmap": { "basemaps": [ { "opacity": null, "enabled": true, "position": 0, "display_name": "HikeBikeMap", "resource_id": 1039 }, { "opacity": null, "enabled": true, "position": 1, "display_name": "Спутник", "resource_id": 1038 } ] }, "resmeta": { "items": {} } }, { "resource": { "id": 641, "cls": "raster_layer", "parent": { "id": 640, "parent": { "id": 639 } }, "owner_user": { "id": 4 }, "permissions": [], "keyname": null, "display_name": "odm_orthophoto_low", "description": null, "children": true, "interfaces": [ "IBboxLayer" ], "scopes": [ "resource", "datastruct", "data", "metadata" ] }, "resmeta": { "items": {} }, "raster_layer": { "srs": { "id": 3857 }, "xsize": 16996, "ysize": 17054, "band_count": 4 } }, { "resource": { "id": 1041, "cls": "wfsserver_service", "parent": { "id": 640, "parent": { "id": 639 } }, "owner_user": { "id": 4 }, "permissions": [], "keyname": null, "display_name": "WFS service for demo", "description": null, "children": false, "interfaces": [], "scopes": [ "resource", "service", "metadata" ] }, "resmeta": { "items": {} }, "wfsserver_service": { "layers": [ { "maxfeatures": 2222, "keyname": "lines", "display_name": "Просеки", "resource_id": 534 } ] } }, { "resource": { "id": 1036, "cls": "resource_group", "parent": { "id": 640, "parent": { "id": 639 } }, "owner_user": { "id": 4 }, "permissions": [], "keyname": null, "display_name": "Sample folder", "description": null, "children": true, "interfaces": [], "scopes": [ "resource", "metadata" ] }, "resmeta": { "items": {} } }, { "resource": { "id": 1037, "cls": "wmsserver_service", "parent": { "id": 640, "parent": { "id": 639 } }, "owner_user": { "id": 4 }, "permissions": [], "keyname": null, "display_name": "OpenDroneMap at NextGIS.com", "description": null, "children": false, "interfaces": [], "scopes": [ "resource", "service", "metadata" ] }, "resmeta": { "items": {} }, "wmsserver_service": { "layers": [ { "min_scale_denom": null, "keyname": "seneca_country", "display_name": "Seneca country", "max_scale_denom": null, "resource_id": 642 } ] } } ] ``` Obtain layers id and display_name in bash ### Resource properties To get resource properties execute the following request: ### GET /api/resource/(*int:* id) Resource properties. **Example request**: ```http GET /api/resource/1 HTTP/1.1 Host: ngw_url Accept: */* ``` **Example JSON response**: ```json { "resource": { "id": 2, "cls": "resource_group", "parent": { "id": 0, "parent": { "id": null } }, "owner_user": { "id": 4 }, "permissions": [], "keyname": null, "display_name": "test", "description": "", "children": true, "interfaces": [], "scopes": [ "resource", "metadata" ] }, "resmeta": { "items": {} } } ``` Where: * **resource** - resource description > * id - resource identifier > * cls - resource type (see. [Resource classes](#ngwdev-resource-classes)) > * parent - parent resource > * owner_user - resource owner identifier > * permissions - resource permissions array > * keyname - unique identifier (allowed only ASCII characters). Must be unique in whole NextGIS Web instance > * display_name - name showing in web user interface > * description - resource description showing in web user interface > * children - boolean value. True if resource has children resources > * interfaces - API interfaces supported by resource > * scope - which scope the resource is belongs * **resmeta** - resource metadata The map resource properties has the following json description: ```json { "resource": { "id": 1, "cls": "webmap", "parent": { "id": 2, "parent": { "id": 0 } }, "owner_user": { "id": 4 }, "permissions": [], "keyname": null, "display_name": "Main web map", "description": null, "children": false, "interfaces": [], "scopes": [ "resource", "webmap", "metadata" ] }, "webmap": { "extent_left": -180, "extent_right": 180, "extent_bottom": -90, "extent_top": 90, "draw_order_enabled": null, "bookmark_resource": null, "root_item": { "item_type": "root", "children": [ { "layer_adapter": "image", "layer_enabled": true, "draw_order_position": null, "layer_max_scale_denom": null, "item_type": "layer", "layer_min_scale_denom": null, "display_name": "Cities", "layer_style_id": 91, "layer_transparency": null }, { "group_expanded": false, "display_name": "Points of interest", "children": [ ], "item_type": "group" } ] } }, "basemap_webmap": { "basemaps": [ { "opacity": null, "enabled": true, "position": 0, "display_name": "OpenStreetMap Standard", "resource_id": 665 }, ] }, "resmeta": { "items": {} } } ``` Where: * **resource** - resource description (see upper for details) * **webmap** - web map description > * extent_left, extent_right, extent_bottom, extent_top - > * draw_order_enabled - use specific draw order or same as layers order > * bookmark_resource - vector layer resource identifier > * root_item - layers description group > > * item_type - always root > > * children - map layers and groups > > > * layer_adapter - `image` or `tile` (also see [Creating a Web Map](../../../docs_ngweb/source/webmaps_admin.md#ngw-map-create)) > > > * layer_enabled - is layer checked be default > > > * draw_order_position - if drawing order is enabled this is position in order. May be `null`. > > > * layer_max_scale_denom, layer_min_scale_denom - a scale range in format `1 : 10 000` > > > * item_type - may be `group` or `layer` > > > * display_name - layer or group name > > > * layer_style_id - vector or raster layer style resource identifier > > > * layer_transparency - transparency > > > * group_expanded - is group checked by default or not * **basemap_webmap** - array of web map basemaps > * opacity - basemap opacity > * enabled - is basemap should be present in web map basemaps combobox > * position - position in web map basemaps combobox > * display_name - name showing in web map basemaps combobox > * resource_id - basemap resource identifier * **resmeta** - resource metadata ### Changing resource permissions To change resource permissions you need to do `PUT` request to resource JSON endpoint. In general g permissions doesn’t different from g resource keyname or any other property. ```http PUT /api/resource/10 { "resource": { "permissions": [ { "action": "allow", "principal": { "id": 10 }, "identity": "", "scope": "", "permission": "", "propagate": true }, { "action": "allow", "principal": { "id": 20 }, "identity": "", "scope": "resource", "permission": "read", "propagate": true } ] } } ``` Where: > * `action` - `allow` or `deny`, priority of `deny` is higher then > `allow`. > * `principal` - user or group for which this rule applies. Users and groups > are principals, so they share same `id` space. > * `identity` - resource class for which this rule applies. Empty string > means that this rule applies to all resource classes. > * `scope` - see resource schema, empty string means “All resources”. > * `permission` - see resource schem, empty string means “All permissions”. > * `propagate` - should this rule apply to child resources or not. ### Feature count To get feature count in vector layer execute the following request: ### GET /api/resource/(*int:* id)/feature_count Get feature count * **Request Headers:** * [Accept](https://www.rfc-editor.org/rfc/rfc7231#section-5.3.2) – must be `*/*` * [Authorization](https://www.rfc-editor.org/rfc/rfc7235#section-4.2) – optional Basic auth string to authenticate * **Status Codes:** * [200 OK](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/200) – no error **Example request**: ```http GET /api/resoure/10/feature_count HTTP/1.1 Host: ngw_url Accept: */* ``` **Example response**: ```json { "total_count": 0 } ``` ### Get layer extent To get layer extent execute following request. You can request extent for vector and raster layers. Returned coordinates are in WGS84 (EPSG:4326) spatial reference. ### GET /api/resource/(*int:* id)/extent Get layer extent * **Request Headers:** * [Accept](https://www.rfc-editor.org/rfc/rfc7231#section-5.3.2) – must be `*/*` * [Authorization](https://www.rfc-editor.org/rfc/rfc7235#section-4.2) – optional Basic auth string to authenticate * **Response JSON Object:** * **extent** (*jsonobj*) – extent json object * **Status Codes:** * [200 OK](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/200) – no error **Example request**: ```http GET /api/resoure/10/extent HTTP/1.1 Host: ngw_url Accept: */* ``` **Example response**: ```json { "extent": { "minLat": 54.760400119987466, "maxLon": 35.08562149737197, "minLon": 35.06675807847286, "maxLat": 54.768358305249386 } } ``` ### Features and single feature To get a single feature of vector layer execute the following request: ### GET /api/resource/(*int:* id)/feature/(*int:* feature_id)/?srs=(*int:* srs) To get all vector layer features execute the following request: ### GET /api/resource/(*int:* id)/feature/?srs=(*int:* srs) Get features * **Query Parameters:** * **srs** – EPSG code for input SRS (will be automatically reprojected to destination SRS) * **Request Headers:** * [Accept](https://www.rfc-editor.org/rfc/rfc7231#section-5.3.2) – must be `*/*` * [Authorization](https://www.rfc-editor.org/rfc/rfc7235#section-4.2) – optional Basic auth string to authenticate * **Response JSON Array of Objects:** * **features** – features array * **Status Codes:** * [200 OK](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/200) – no error To get features using filters execute the following request: #### Versionadded Added in version 3.1. ### GET /api/resource/(*int:* id)/feature/?limit=(*int:* limit)&offset=(*int:* offset)&intersects=(*string:* wkt_string)&fields=(string:field_name_1,string:field_name_2,...)&fld_{field_name_1}=(*string:* value)&fld_{field_name_2}=(*string:* value)&fld_{field_name_3}_\_ilike=(*string:* value)&fld_{field_name_4}_\_like=(*string:* value)&extensions=(*string:* extensions) Get features with parameters * **Request Headers:** * [Accept](https://www.rfc-editor.org/rfc/rfc7231#section-5.3.2) – must be `*/*` * [Authorization](https://www.rfc-editor.org/rfc/rfc7235#section-4.2) – optional Basic auth string to authenticate * **Parameters:** * **limit** – limit feature count adding to return array * **offset** – skip some features before create features array * **order_by** – order results by fields. Add minus char to descending. * **intersects** – geometry as WKT string in EPSG:3857. Features intersect with this geometry will added to array * **fields** – comma separated list of fields in return feature * **fld_{field_name_1}...fld_{field_name_N}** – field name and value to filter return features. Parameter name forms as `fld_` + real field name (keyname). All pairs of field name = value form final `AND` SQL query. * **fld_{field_name_1}_\_{operation}...fld_{field_name_N}_\_{operation}** – field name and value to filter return features using operation statement. Supported operations are: `gt`, `lt`, `ge`, `le`, `eq`, `ne`, `like`, `ilike`. All pairs of field name - operation - value form final `AND` SQL query. * **geom_format** – `geojson` - output geometry in geojson format instead of WKT * **srs** – EPSG code - reproject geometry to EPSG * **geom** – yes - return geometry, no - don’t return geometry (defaults yes) * **dt_format** – iso - return date, time, timestamp in ISO format, obj - return date, time, timestamp as JSON object (default obj) * **extensions** – comma separated list of extensions. Available `description` and `attachments`. Defaults to `description,attachments` * **>jsonarray features:** features array * **Status Codes:** * [200 OK](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status/200) – no error Filter operations: * gt - greater (>) * lt - lower (<) * ge - greater or equal (>=) * le - lower or equal (<=) * eq - equal (=) * ne - not equal (!=) * like - LIKE SQL statement (for strings compare) * ilike - ILIKE SQL statement (for strings compare) To filter part of field use percent sign. May be at the start of a string, at the end or both. Works only for `like` and `ilike` operations. **Example request**: ```http GET api/resource/1878/feature/8 HTTP/1.1 Host: ngw_url Accept: */* ``` **Example JSON response**: ```json { "id": 8, "geom": "MULTIPOLYGON (((4071007.5456240694038570 7385427.4912760490551591, 4071010.5846461649052799 7385440.8649944914504886, 4071018.6441773008555174 7385439.0351102603599429, 4071019.4902054299600422 7385442.7727465946227312, 4071057.3388322992250323 7385434.1683989763259888, 4071056.4928041673265398 7385430.4307667789980769, 4071065.5208148718811572 7385428.1726148622110486, 4071062.6153761623427272 7385414.7794514624401927, 4071058.2961799190379679 7385415.5581231201067567, 4071055.1347063803113997 7385401.6588457319885492, 4071007.8795825401321054 7385412.3850365970283747, 4071011.1301116724498570 7385426.6931363716721535, 4071007.5456240694038570 7385427.4912760490551591)))", "fields": { "OSM_ID": 128383475, "BUILDING": "apartments", "A_STRT": "проспект Ленина", "A_SBRB": "", "A_HSNMBR": "209", "B_LEVELS": "14", "NAME": "" } } ``` **Example response with photo and description**: ```json { "id": 1, "geom": "MULTIPOINT (14690369.3387846201658249 5325725.3689366327598691)", "fields": { "name_official": "Краевое государственное автономное учреждение...", "name_short": "МФЦ Приморского края", "square": "702", "windows": "16", "start_date": "2013/12/30", "addr": "690080, Приморский край. г. Владивосток, ул. Борисенко д. 102", "phone_consult": "(423) 201-01-56", "opening_hours": "пн: 09:00-18:00 (по предварительной записи)вт: 09:00-20:00ср: 11:00-20:00чт: 09:00-20:00пт: 09:00-20:00 сб: 09:00-13:00 вс: выходной", "director": "Александров Сергей Валерьевич", "desc": "Центр создан в целях ...", "services_info": "Ознакомиться с перечнем можно ...", "issue_info": "ответственность должностных лиц ...", "website": "http://mfc-25.ru" }, "extensions": { "description": " Описание объекта в ...", "attachment": [ { "id": 1, "name": "fyADeqvXtXo.jpg", "size": 107458, "mime_type": "image/jpeg", "description": null, "is_image": true }, { "id": 2, "name": "0_12cb49_b02b5fb0_orig.jpg", "size": 65121, "mime_type": "image/jpeg", "description": "Текст подписи к фото", "is_image": true } ] } } ``` **Example request with parameters**: ```http GET api/resource/442/feature/?fld_ondatr_set=3.0 HTTP/1.1 Host: ngw_url Accept: */* ``` ```http GET api/resource/442/feature/?intersects=POLYGON((4692730.0186502402648329%206500222.2378559196367859,4692731.0186502402648330%206500222.2378559196367859,4692730.0186502402648331%206500222.2378559196367861,4692730.0186502402648329%206500222.2378559196367861,4692730.0186502402648329%206500222.2378559196367859)) HTTP/1.1 Host: ngw_url Accept: */* ``` ```http GET api/resource/442/feature/?fld_dataunreal=2018-04-15&fields=Desman_ID,Year_1 HTTP/1.1 Host: ngw_url Accept: */* ``` ```http GET /api/resource/197/feature/?geom_format=geojson&srs=4326 HTTP/1.1 Host: ngw_url Accept: */* ``` ```http GET /api/resource/197/feature/?order_by=NAME,-LEISURE HTTP/1.1 Host: ngw_url Accept: */* ``` **Example response with photo and description**: ```json [ { "id": 1, "geom": { "type": "LineString", "coordinates": [ [ 43.530026045806544, 56.54254685020393 ], [ 43.53069976860634, 56.5418515124425 ], [ 43.53178999904635, 56.54087804170086 ], [ 43.53378038747746, 56.53965877275228 ], [ 43.534406424553474, 56.53930211850715 ] ] }, "fields": { "ogc_fid": 5794, "CLCODE": 61220000, "CLNAME": " ", "ANGLE": null, "TEXT": null }, "extensions": { "description": null, "attachment": null } } ] ``` **Example request to get features without geometry**: ```http GET api/resource/442/feature/?geom=no HTTP/1.1 Host: ngw_url Accept: */* ``` **Example request to get features without extensions**: ```http GET api/resource/442/feature/?extensions= HTTP/1.1 Host: ngw_url Accept: */* ``` For large geometries use GET body to send such geometry. **Example request to get features with large geometry**: ```bash curl --request GET "http://sandbox.nextgis.com/api/resource/1234/feature/" --header "Content-Type: application/json" --data-raw "{\"intersects\": \"MULTIPOLYGON (((3821804.05999104725196958 5744803.73564852681010962, 3756055.8574127024039626 5562813.06612514425069094, 3927526.96338468883186579 5635924.2469089291989803, 3821804.05999104725196958 5744803.73564852681010962)))\"}" ``` ### Attachment Attachment URL forms from feature URL adding `attachment/` and attachment identifier. For example: ### GET /api/resource/(*int:* id)/feature/(*int:* feature_id)/attachment/(*int:* attachment_id)/download Attachment support loading any file types. For image files a preview generates during upload. ### GET /api/resource/(*int:* id)/feature/(*int:* feature_id)/attachment/(*int:* attachment_id)/image?size=200x150 ### Map web interface #### Versionadded Added in version 3.0. To get map web interface (not a map json representation) execute one of the following request: ### GET resource/{0}/display Web map user interface. **Example request**: ```http GET resource/42/display HTTP/1.1 Host: ngw_url Accept: */* ``` To get web interface without layer control and toolbars execute the following request: ### GET resource/{0}/display/tiny Web map `light` user interface. # resources.html.md # How data is managed Geodata in [Web GIS](description.md#ngcom-description) is managed with resource system. At the moment there are following types of resources: **Resources for managing local sources of geodata**: * [Raster layer](data_upload.md#ngcom-raster-layer) (created to upload and store raster geodata) * [Vector layer](data_upload.md#ngcom-vector-layer) (created to upload and store vector geodata) **Resources for managing external sources of geodata**: * [Basemap](data_connect.md#ngcom-basemap-layer) (created to add external basemaps to [Web maps](webmap_create.md#ngcom-webmap-create)) * [PostGIS connection](data_connect.md#ngcom-postgis-connection) (created to connect to external [PostGIS](../../glossary.md#term-PostGIS) database) * [PostGIS layer](data_connect.md#ngcom-postgis-layer) (created to connect to the specific table with geodata through existing PostGIS connection) * [WMS connection](data_connect.md#ngcom-wms-connection) (created to connect to an external [WMS](../../glossary.md#term-WMS) server) * [WMS layer](data_connect.md#ngcom-wms-layer) (created to connect to the specific raster layers through existing WMS connection) * [TMS connection](data_connect.md#ngcom-tms-connection) (created to connect to an external [TMS](../../glossary.md#term-TMS) server) * [TMS layer](data_connect.md#ngcom-tms-layer) (created to connect to the specific layers using an existing TMS connection) * [OGC API Features](https://docs.nextgis.com/docs_ngweb/source/services.html#ngw-ogc-api-features) (Third party software can use these services to edit vector data on server). **Resources for displaying and publishing geodata**: * [Style](styles.md#ngcom-styles) (special type of resource, created inside Raster layers, Vector layers and PostGIS layers to add them to Web map or publish using WMS protocol) * [Web map](webmap_create.md#ngcom-webmap-create) (created to display Raster layers, Vector layers, PostGIS layers and WMS layers on the map through built-in [web client](../../docs_ngweb/source/webmaps_client.md#ngw-webmaps-client)) * [WFS service](data_services.md#ngcom-wfs-service) (created to publish Vector layers and PostGIS layers using [WFS](../../glossary.md#term-WFS) protocol) * [WMS service](data_services.md#ngcom-wms-service) (created to publish Raster layers, Vector layers, PostGIS layers and WMS layers using WMS protocol) **Resources for geodata storage management**: * [Resource group](https://docs.nextgis.com/docs_ngweb/source/create_resource.html#create-resource-group-to-manage-data) (created to provide folderlike data structure) # resources.html.md # Working with cloud data With this plugin you can download data from Web GIS to QGIS to edit it. ## From Web GIS to QGIS ![Add to QGIS](docs_ngconnect/source/_static/add_to_qgis_en.png) Option is available if one of the following resources is selected in NextGIS Web resource tree: - ![vector_layer](docs_ngconnect/source/_static/symbol_vector_layer.png) Vector layer (NGW Vector Layer) - GeoJSON vector layer will be created in QGIS; - ![wfs_layer_symbol](docs_ngconnect/source/_static/symbol_wfs_layer.png) WFS Layer - a WFS layer will be created in QGIS; - ![resource_wfs](docs_ngconnect/source/_static/symbol_wfs_service.png) WFS service (NGW WFS Service) - WFS layer will be created in QGIS; - ![wms_layer_symbol](docs_ngconnect/source/_static/symbol_wms_layer.png) WMS Layer - the selected WMS layer will be added to QGIS; - ![resource_wms](docs_ngconnect/source/_static/symbol_wms_service.png) WMS Service - a WMS layer will be created in QGIS, the data source for which the selected WMS Service will be; - ![wms_connection_symbol](docs_ngconnect/source/_static/symbol_wms_connection.png) WMS Connection - you can select the WMS layer from the list to add to QGIS; - ![tms_layer_symbol](docs_ngconnect/source/_static/symbol_tms_layer.png) TMS layer; - ![tms_connection_symbol](docs_ngconnect/source/_static/symbol_tms_connection.png) TMS connection; - ![postgis_layer_symbol](docs_ngconnect/source/_static/symbol_postgis_layer.png) PostGIS layer; - ![resource_style](docs_ngconnect/source/_static/symbol_qgis_vector_style.png) QGIS Vector Layer style - if it’s a style of a vector layer, a GeoJSON vector layer with the identical style will be created in QGIS; if it’s a style of a WFS layer, a WFS with that style will be created; - ![raster_layer](docs_ngconnect/source/_static/symbol_raster_layer.png) Raster layer - a GeoTIFF raster layer will be created in QGIS; - ![basemap_symbol](docs_ngconnect/source/_static/symbol_basemap.png) Basemap; - ![resource_webmap](docs_ngconnect/source/_static/symbol_webmap.png) Web Map - a QGIS project will be created containing layers, styles and basemaps. A mutually exclusive group will be created for all the basemap layers. - ![demo_project_symbol](docs_ngconnect/source/_static/symbol_demo_project.png) [Demo Project](https://docs.nextgis.com/docs_ngcom/source/demoprojects.html) - a QGIS project will be created, containing layers, styles and basemaps; - ![resource_group](docs_ngconnect/source/_static/symbol_resource_group.png) Resource group - the group and resources inside it will be added to the QGIS project. Vector layers added from Web GIS can be [edited in QGIS](https://docs.nextgis.com/docs_ngconnect/source/edit.html#) right away. ## Add vector layer to QGIS NextGIS Connect plugin enables a fast export of vector data from Web GIS to QGIS for further processing, analysis, saving in different formats and other data operations. It’s possible due to the option of fast creation of GeoJSON vector layers in QGIS using vector data from Web GIS: * Select in NextGIS Connect Resources panel Vector layer which you want to export to QGIS; Press **Add to QGIS** button on NextGIS Connect control panel or select **Add to QGIS** in the layer context menu; ![image](docs_ngconnect/source/_static/NGConnect_export_select_en.png) * If the layer has multiple QGIS styles, there are several options depending on what you select in the Connect window: 1. If you select a layer with **multiple styles** in the Connect window, all the styles will be added, but you need to chose current style in a dialog window. Double-click the style to select it. This is the only case in which a dialog pops up. ![image](docs_ngconnect/source/_static/NGConnect_export_select_style_en.png) 1. If you select a **style** in the Connect window, all the styles of the layer will be added, with the selected style chosen as current style. 2. If you select a **resource group** containing layers with multiple styles, all the styles will be added. The style used as current will be the one with the same name as the layer or the first in alphabetical order. No dialog will be displayed. 3. If you add WFS/OGCF, no dialog will be displayed. The style with the same name as the layer or the first in alphabetical order will be chosen. You can change current style in the layer properties. If the layer is exported successfully you’ll see in QGIS Layers panel a new GeoJSON vector layer which you can use in your projects or save to your device in a required format. #### WARNING **Photos** made via NextGIS Collector/Mobile apps and uploaded to Web GIS as attachments to layers **wouldn’t be available** in desktop NextGIS QGIS after downloading these layers through NextGIS Connect plugin. ## Lookup tables In Web GIS you can create [Lookup tables](https://docs.nextgis.com/docs_ngweb/source/create_other.html#ngcom-lookup-table-for-layer) and link them to vector layers. When the layer is exported from Web GIS to QGIS the values of the lookup table will be added to the layer using value map widget. After that they will be available in the desktop app in the corresponding field of the table when you enter edit mode. ![image](docs_ngconnect/source/_static/ngc_lookup_en.png) In QGIS you can use Value relation widget to add another vector layer as a lookup table or upload a CSV file. When the layer is transfered to Web GIS, a Lookup table resource will be created for it. ## Synchronization with Web GIS Layer added to QGIS continues to be synced with the Web GIS server. It means that all the changes made via Web interface will be displayed in the desktop app and the edits made in QGIS [change the layer in the Web GIS](https://docs.nextgis.com/docs_ngconnect/source/edit.html). Synchronization is automatic. Set how often Connect checks for layer updates in [QGIS Options](https://docs.nextgis.com/docs_ngconnect/source/ngc_settings.html#ngc-set-sync). You can disable auto sync for a layer and synchronize it manually when needed. Go to layer properties and untick “Automatic synchronization”. ![image](docs_ngconnect/source/_static/ngc_layer_autosync_set_en.png) To start the synchronization manually, open the [layer status window](https://docs.nextgis.com/docs_ngconnect/source/edit.html) and press **Synchronization**. ## Open a project created on another device With NextGIS Connect v. 3.2.0 and up a project file that uses detached layers can be opened on another computer if they both have a connection to the same Web GIS. When the project is opened, the layers are loaded automatically. 1. In NextGIS Connect check the connection to the Web GIS or create it, if necessary. 2. Add the layers from Web GIS to QGIS project. 3. Save the project. 4. Copy the project file and transfer it to the other computer. 5. On the other computer in NextGIS Connect check the connection to the same Web GIS or create it if necessary. 6. Open the project. The data will be loaded from the Web GIS. To check if the synchronization was successful, click on the layer status icon next to its name. #### NOTE Open the project **after** the connection is set up. If you get “Handle Unavailable Layers” window, close the project, check the connection to Web GIS, then re-open the project. # rosreestr2coord.html.md # Get parcel geometry by number Get parcel geometry and attributes by number. The result is in KML and GeoJSON formats. Input: Cadastral number in 06:07:0400001:414 or 06:07:0400001 format. Output: KML and GeoJSON files. Launch instrument: [https://toolbox.nextgis.com/t/rosreestr2coord](https://toolbox.nextgis.com/t/rosreestr2coord) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # s2_search.html.md # Sentinel-2 scenes to GPKG Search and save Sentinel-2 scene previews to GPKG. Input: * **S2 tile index(es)** - Simple or list e.g. “36VWJ” or “36VWJ,36VXJ” - limit 50 id. You can check the ID of the scene you need on our [Web Map](https://demo.nextgis.com/resource/7697/display?panel=layers) or [`download the scene division file`](files/sentinel_2_index.gpkg); * **Year(s)** - Simple,list or range e.g. “2016,2020,2021-2024”; * **Month(s)** - Simple,list or range e.g. “1,5,9-12”; * **Max cloud** - Max cloud coverage in %, int or float e.g. 10 or 10.5; * **Custom order name** - optional, you can enter a name for the Toolbox task to make it easier to tell them apart without comparing all the parameters. There is also **No preview** option. If ticked, the resulting GeoPackage will contain only vector footprint itendifiers. Output: * GPKG file. If previews are included, to view the result in QGIS select Project ‣ Open From ‣ GeoPackage. Project also includes a layer with geometries of selected S2 tiles and a search_result layer containing scene IDs, attributes and borders of satellite images from dataspace catalog. By default, tile layer and the earliest preview are visible. Select the layers you want to display. ![image](docs_toolbox/source/_static/s2_search_output_en.png) Launch instrument: [https://toolbox.nextgis.com/t/s2_search](https://toolbox.nextgis.com/t/s2_search) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # satellite.html.md # How to open satellite data in QGIS * [Order satellite data](https://data.nextgis.com/en/) for your area of interest in GeoTIFF format. * Go to the [orders](https://data.nextgis.com/en/orders/actual/) page and download the archive when it’s complete. * **Unpack** the archive. * Download and install [QGIS](https://qgis.org/en/site/forusers/download.html). * Launch QGIS. * Drag and drop the upacked tif file from the folder to QGIS interface. ![image](docs_data/source/_static/add_satellite_qgis_drag_en.png) If you need to finetune the new layer, you can add it via menu: `Layer ‣ Add Layer ‣ Add Raster Layer`. # send2ge.html.md # Send2GE #### NOTE Qt6 compatible. Can be used in QGIS 4 Grab current location and send it to Google Earth in one click. After installation you’ll find the plugin in the Plugins toolbar. ## How to open a location from QGIS in Google Earth Activate plugin Send2GE ![button_send2ge](docs_ngqgis/source/_static/button_send2ge_2.png), the curser will look like this: ![cursor_send2ge](docs_ngqgis/source/_static/cursor_send2ge.png). Click on the map in QGIS. The Google Earth app will open on the selected point. ![image](docs_ngqgis/source/_static/qgis_googleearth_en_2.png) When you select a new point in QGIS, Google Earth also shifts to the new location. Instant transition between points allows to work simultaneously in both apps. See a similar plugin for Google Maps, OSM, Flickr Maps, GeoHack Map Sources - [Click-Fu](https://docs.nextgis.com/docs_ngqgis/source/clickfu.html). You can check out how the plugin works in our video: Watch on [youtube](https://youtu.be/HnNm7BhXPyU?si=p8-y3WwXlIB8zFLK). # services.html.md # Services ## Service groups Services can be added only to specific groups of services. Groups are created in Settings in **Service groups** tab. ![image](docs_geoserv_prem/source/_static/geosop_gr_serv1_en.png) You can delete or edit a group using buttons. ![image](docs_geoserv_prem/source/_static/geosop_gr_serv2_en.png) To create a new group, press **Add** and enter a name for it. ![image](docs_geoserv_prem/source/_static/geosop_gr_serv3_en.png) You can move the services between groups, the only exception is the Public group, its contents cannot be modified. ## Add service To create a new service, open the group you wish to add it to and press **Create service**. Three types of services are available: * [Basemap](https://docs.nextgis.com/docs_geoserv_prem/source/services.html#basemap-service) - based on OpenStreetMap data uploaded as PBF in the [Basemap settings](https://docs.nextgis.com/docs_geoserv_prem/source/settings.html#basemap); * [NGW](https://docs.nextgis.com/docs_geoserv_prem/source/services.html#ngw-web-maps)- it uses a Web Map created on the NextGIS Web platform as a source; * [External](https://docs.nextgis.com/docs_geoserv_prem/source/services.html#external-tms) - TMS from a third-party source. The tiles for a newly created service are generated when first queried, so the first user of the service may experience a delay in displaying the map. To avoid it, you can [generate the tiles beforehand](https://docs.nextgis.com/docs_geoserv_prem/source/services.html#seeding). When you delete a service, its cache remains on the server. It can be [deleted by the administrator](https://docs.nextgis.com/docs_geoserv_prem/source/admin.html#clear-cache). ## Basemap This type of service is based on OpenStreetMap data in PBF format. It can be uploaded in the [basemap settings](https://docs.nextgis.com/docs_geoserv_prem/source/settings.html#basemap). You can use one dataset to create multiple services with varying extent, style, zoom levels etc. Press **Create service** in the service group. Select “basemap” as type. ![image](docs_geoserv_prem/source/_static/geosop_ngw1_en.png) Configure the following parameters: * Name * Minimum zoom level * Maximum zoom level * Area * Select OpenStreetMap layers to be included in this service * Pick a style or upload a custom one as JSON file Press **Save**. Basemap services can be added to QGIS both as raster tiles and vector tiles. Vector tiles can be handy if you want more control over the labels. To add vector tiles to QGIS create a new connection and enter the style URL and the Vector XYZ URL of the service (see [Fig. 766.](#geosop-vector-tiles)). ![image](docs_geoserv_prem/source/_static/geosop_base_XYZ_en.png) ## NextGIS Web [NextGIS Web](https://nextgis.com/nextgis-web/) is a server-based geoinformation system for gathering, storing, visualising and analyzing geospacial data. NextGIS Web service allows to created cached tile services based on Web Maps created in NextGIS Web. Administrator enters URL of a Web Map in NextGIS Web, service name and scale limits for caching. After that the service will appear in the list. Service can be modified or deleted. Working with the service does not engage NextGIS Web itself, so the service can handle high peak loads and reduce the load on NextGIS Web. ![image](docs_geoserv_prem/source/_static/geosop_ngw1_en.png)![image](docs_geoserv_prem/source/_static/geosop_ngw2_en.png)![image](docs_geoserv_prem/source/_static/geosop_ngw3_en.png) ## External TMS GeoServices allows to add, cache and use external TMS. #### IMPORTANT Before using an external service, check its terms of use. Violating terms of use may result in blocking from the service side. Open the service group and click **Create service**. ![image](docs_geoserv_prem/source/_static/geosop_tms1_en.png) Enter the parameters: * name; * zoom levels; * URL of the TMS service; * select coordinate system. ![image](docs_geoserv_prem/source/_static/geosop_tms2_en.png) The newly created service will appear in the selected group. Service can be modified or deleted. ![image](docs_geoserv_prem/source/_static/geosop_tms3_en.png) ## Tileset You can upload a ZIP-file containing pre-made tiles to create a service. For example, basemap tiles [ordered on NextGIS Data](https://data.nextgis.com/en/region/custom/tiles/?from-docs=1). ![image](docs_geoserv_prem/source/_static/geosop_tms1_en.png) All you need to do is enter a name for the service and upload a ZIP-file. Other parameters will be set automatically. ![image](docs_geoserv_prem/source/_static/geosop_tiles_new_param_en.png) Click **Save** to complete. The newly created service will appear in the selected group. Services can be modified or deleted. ## Seeding To help services work faster you can cache tiles of the area. Press the pencil icon to enter the edit mode of the tile service. Go to the “Seeding” tab and press **Create new task**. ![image](docs_geoserv_prem/source/_static/geosop_seeding_create_task_en.png) In the opened dialog configure seeding parameters. * Cache type - Default raster (recommended) or Vector tiles; * Task type - defines how the cache is rendered: > * the default option is *Render only missing tiles*, the system checks already loaded tiles and loads the absent ones; > * *Full render* - all tiles for the area will be re-loaded, it’s a faster process; > * *Delete cache* - select it if you need to clear cache and remove all previously rendered tiles; * Zoom list - higher zoom levels need more time to process, so we recommend staying within level 12 unless necessary; #### NOTE Keep in mind that the API key also can have zoom limits. In this case there’s no point to set zoom levels beyond that limit for seeding. * Area - upload boundary as a file or draw it on the map. ![image](docs_geoserv_prem/source/_static/geosop_seeding_task_settings_en.png) After configuring seeding parameters press **Create**. The task will appear on the tab. Here you can check its status: pending, in progress, finished, failed with error. ![image](docs_geoserv_prem/source/_static/geosop_seeding_task_status_en.png) #### IMPORTANT Seeding tasks are processed sequentially, so the new task will start only after all the previous tasks are completed. On the Overview page the services that are waiting for their turn for seeding are marked by an hourglass: ![image](docs_geoserv_prem/source/_static/overview_seeding_task_pending.png) Service currently in process of seeding is marked by circular arrows: ![image](docs_geoserv_prem/source/_static/overview_seeding_task_in_progress.png) # services.html.md # Services Resources have auto-generated links that you can use to add the data to third-party applications: * Vector layers have link for [MVT Tiles](https://docs.nextgis.com/docs_ngweb/source/services.html#ngw-mvt); * Layer style (vector or raster), Web Map and WMS layer have [TMS link](https://docs.nextgis.com/docs_ngweb/source/services.html#ngw-tms-service); Additionally, you can create services that allow to access data via standard protocols: * [WFS](https://docs.nextgis.com/docs_ngweb/source/services.html#ngw-wfs-service) * [OGC API Features](https://docs.nextgis.com/docs_ngweb/source/services.html#ngw-OGC-API-Features) * [WMS|WMTS](https://docs.nextgis.com/docs_ngweb/source/services.html#ngw-wms-service) ## MVT vector tiles For each new [vector layer](https://docs.nextgis.com/docs_ngweb/source/layers.html#ngw-create-vector-layer) NextGIS Web automatically generates a link that can be used to access the data as [MVT](../../glossary.md#term-MVT) (Map Vector Tiles, [specification](https://github.com/mapbox/vector-tile-spec)). ### The main advantages of MVT With MVT you can store and transmit large volumes of geographical data in a compact format. This makes MVT especially useful for web maps and mobile applications, where it is crucial to use network resources efficiently and provide quick access to the data. The main advantages of this format are: * Fast data rendering; * Dynamic labels and map elements; * Big variety and flexible customization of data styles (display filters based on scale, time etc). Each tile includes vector geometrical data and attributes for a specific rectangular region of the map and contains all the necessary data for displaying a particular zoom level. Data is organized into layers, which can contain different types of geometry and attributes. MVT is supported by multiple libraries and tools for reading, writing, and displaying tiles * libraries (Mapbox GL, OpenLayers, Leaflet) * tile processing tools such as Tippecanoe and Mapbox Studio. ### Generating MVT link For every vector layer created in NextGIS Web a link to vector tiles is generated automatically:
https://demo.nextgis.com/api/component/feature_layer/mvt?resource=6243&z={z}&x={x}&y={y}

The highlighted parts are the Web GIS URL and the resource ID of the vector layer. You can use it in third-party web applications and map builders. This link is used to transmit the information about the layer. The layer’s style is configured on the client side. You’ll find this link in the External access section of the resource page. ![image](docs_ngweb/source/_static/mvt_link_en.png) ### Using MVT with NextGIS Frontend Libraries To connect a vector layer as MVT to your application all you need is the URL of your Web GIS and the resource ID. Our team has developed JavaScript libraries for this purpose. All libraries are available for free download on [NextGIS Frontend](https://code.nextgis.com/). The service also provides examples of their use. Let’s take [one of these examples](https://code.nextgis.com/ngw-mapbox-examples-ngw-mvt-match-paint) to display a vector layer. Add the link to the Web GIS to the “baseURL” line (32) and the resource ID to the “resource” line (38). ![image](docs_ngweb/source/_static/mvt_frontend_code_en.png) Open the HTML page in a web browser to see the map. You can configure additional map elements using NextGIS Frontend. ![image](docs_ngweb/source/_static/mvt_frontend_map_en.jpg) To display data from your Web GIS in external applications, you need to open [read access to the layer](https://docs.nextgis.com/docs_ngcom/source/permissions.html) in the Web GIS settings. Alternatively, you can specify Web GIS login credentials in the web application itself. In the Web GIS settings, you need to [configure your CORS](https://docs.nextgis.com/docs_ngweb/source/cors.html) (Cross-Origin Resource Sharing) settings. ### Connecting MVT from NextGIS Web to QGIS You can use the link to vector tiles generated by NextGIS Web in QGIS to set up representation of a vector layer from your Web GIS in the desktop application. To connect the tiles, select Layer -> Add layer -> Add Vector Tile Layer in QGIS. ![image](docs_ngweb/source/_static/mvt_qgis_en.jpg) You can use the layer as a basemap, customize its style, identify objects and view attribute descriptions. ## TMS service NextGIS Web is a TMS server. Layers and styles created in it can be accessed via any software supporting TMS protocol. You will need the URL for the TMS service. TMS service is automatically created for the following resource types: * Vector layer style * Raster layer style * WMS layer * Web Map You’ll find this link in the External access section of the resource page. ![image](docs_ngweb/source/_static/tms_link_style_en.png) The link should look like this:
https://demo.nextgis.com/api/component/render/tile?z={z}&x={x}&y={y}&resource=6244

This link allows you to use any layer created in Web GIS [as a basemap](https://docs.nextgis.com/docs_ngweb/source/webmaps_admin.html#ngw-layer-as-basemap). To use TMS service through GDAL utilities you need to create an XML file. You will need the TMS link.Enter these parameters to ServerUrl string in example below. The rest remains unchanged. ```xml https://demo.nextgis.com/api/component/render/tile?z={z}&x={x}&y={y}&resource=234 -20037508.34 20037508.34 20037508.34 -20037508.34 18 1 1 top EPSG:3857 256 256 4 ``` ## OGC API – Features service Vector data uploaded to Web GIS can be published via OGC API Features protocol. This allows editing data with external applications. The [OGC API Features](../../glossary.md#term-OGC-API-Features) service is configured in the same way as for a WFS service. NextGIS Web acts as OGC API Features server and publishes OGC API Features services based on vector layers. Third party software can use these services to edit vector data on server. Supported OGC API Features protocol versions is 1.0.0. To deploy a OGC API Features service press **Create resource** button and select **OGC API Features service** (see [Fig. 346.](#create-ogc-api-features-service-pic)). ![image](docs_ngweb/source/_static/ngweb_create_service_OGC_en.png) Enter the name of the resource that will be displayed in the administrator interface. ![image](docs_ngweb/source/_static/admin_layers_create_ogc_api_features_service_name_en_2.png) Also you can add [Description and metadata](https://docs.nextgis.com/docs_ngweb/source/edit_resource.html#ngw-update-info-metada). Switch to “OGC API Features service” tab and add required layers to a list (see [Fig. 348.](#ogc-api-features-service-settings)) For each layer you can set a limit for the number of features returned from the vector layer. By default, the value is 1000. If this parameter is set to empty, the limit will be disabled and all features will be returned to the client. This may result in high server load and significant timeouts in case of large data volume. ![image](docs_ngweb/source/_static/admin_layers_create_ogc_api_features_service_settings_en.png) ### Using OGC API Features service After the resource is created, a URL for the OGC API Features service is available. You can use it in other software, for example **QGIS**. You can [set access permissions for OGC API Features service](https://docs.nextgis.com/docs_ngcom/source/permissions.html#ngcom-permissions-auth-wms) if needed. OGC API Features services can also be accessed with links of the following type ([basic auth](https://docs.nextgis.com/docs_ngweb_dev/doc/developer/auth.html) is supported): ```http https://yourwebgis.nextgis.com/api/resource/208/ogcf ``` ## WFS service NextGIS Web acts as WFS server and publishes WFS services based on vector layers. Third party software can use these services to edit vector data on server. Supported WFS protocol versions are 1.0, 1.1, 2.0, 2.0.2. #### NOTE Currently supported filters are Intersects, ResourceId (ObjectId, FeatureId). To deploy a WFS service press **Create resource** button and select **WFS service** (see [Fig. 349.](#admin-layers-create-wfs-service)). ![image](docs_ngweb/source/_static/ngweb_create_wfs_service_en.png) Enter the name of the resource that will be displayed in the administrator interface. Also you can add [Description and metadata](https://docs.nextgis.com/docs_ngweb/source/edit_resource.html#ngw-update-info-metada). On the “WFS service” tab add required layers to a list (see [Fig. 350.](#ngweb-admin-layers-create-wfs-service-url)). For each layer you can set a limit for the number of features returned from the vector layer. By default the value is 1000. If this parameter is set to empty, the limit will be disabled and all features will be returned to the client. This may result in high server load and significant timeouts in case of large data volume. ![image](docs_ngweb/source/_static/create_wfs_service_settings_en.png) ### Using WFS service After the resource is created, a URL for the WFS service is available. You can use it in other software, for example **NextGIS QGIS**. You can set access permissions for WFS service if needed. See [this section](https://docs.nextgis.com/docs_ngcom/source/permissions.html) for details. WFS allows to edit data in desktop apps. WFS services can also be accessed with links of the following type ([basic auth](https://docs.nextgis.com/docs_ngweb_dev/doc/developer/auth.html) is supported): ```http https://mywebgis.nextgis.com/api/resource/2413/wfs?SERVICE=WFS&TYPENAME=ngw_id_2412&username=administrator&password=mypassword&srsname=EPSG:3857&VERSION=1.0.0&REQUEST=GetFeature ``` ## WMS service NextGIS Web can be used as WMS server. This protocol is provides images with a requested extent. To deploy a WMS service you need to add a resource. Press **Create resource** button and select **WMS service** (see [Fig. 351.](#admin-layers-create-wms-service)). ![image](docs_ngweb/source/_static/ngweb_create_wms_service_en.png) Enter the name of the resource that will be displayed in the administrator interface. ![image](docs_ngweb/source/_static/admin_layers_create_wms_service_name_eng_3.png) Also you can add [Description and metadata](https://docs.nextgis.com/docs_ngweb/source/edit_resource.html#ngw-update-info-metada). Switch to “WMS service” tab and add links to required layers or layer styles. You can also set the min and max scale for the data visualization. ![image](docs_ngweb/source/_static/admin_layers_create_wms_service_url_eng_2.png) After the resource is created, on its page you’ll find three URLs: WMS service [WMTS](../../glossary.md#term-WMTS) service (KVP) [WMTS](../../glossary.md#term-WMTS) service (REST) You can use these URS to access the data in other software, e.g. **NextGIS QGIS** or **JOSM**. Then you need to [set access permissions for the WMS service](https://docs.nextgis.com/docs_ngcom/source/permissions.html#ngcom-permissions-auth-wms). NextGIS Web layer can be added to desktop, mobile and Web GIS in different ways. ### Using WMS service NextGIS Web acts as a WMS server: WMS services created in NextGIS Web can be added to any software that supports WMS protocol. For that you need to know the WMS service URL. You can get it on the WMS service page. The link may look like this: ```html https://demo.nextgis.com/api/resource/4817/wms? ``` To use WMS service through GDAL utilities you need to create an XML file for the required layer. All it requires it the URL of the WMS service. Enter these parameters to the ServerUrl string in example below. The rest remains unchanged. ```xml 1.1.1 https://demo.nextgis.com/api/resource/4817/wms? EPSG:3857 image/png moscow_boundary_multipolygon -20037508.34 20037508.34 20037508.34 -20037508.34 40075016 40075016.857 EPSG:3857 3 ``` If you need an image with transparency (alpha channel) set `4`. Here is an example of a GDAL command. The utility gets an image by WMS from NextGIS Web and saves it to a GeoTIFF format. ```bash $ gdal_translate -of "GTIFF" -outsize 1000 0 -projwin 4143247 7497160 \ 4190083 7468902 ngw.xml test.tiff ``` # setting_up.html.md # Setting up After the app is installed to your device, you need to set it up to begin track recording. ## Track recording settings When you open the app for the first time, give the following permissions: * allow NextGIS Tracker to access location. If you see the dialog shown on [Fig. 1121.](#ngtr-allow-location-pic), select **Precise** and **While using app**. ![image](docs_ngtracker/source/_static/ngtr_allow_location_en.png) * in the newer Android version you also need to allow notifications from NextGIS Tracker. ## Setting up sending tracks to Web GIS To upload tracks to your Web GIS (cloud-based or on-premise), set up synchronization. In the top bar turn on **Sync with the cloud** switch (see [Fig. 1122.](#sync-with-cloud-pic)), then enter your Web GIS credentials and save, as shown on [Fig. 1123.](#webgis-creds-pic). ![image](docs_ngtracker/source/_static/sync_with_cloud_main_en.png)![image](docs_ngtracker/source/_static/webgis_creds_en.png) When the settings are saved, you’ll get a notification saying “Tracker is created”. Under the “Sync” slider you’ll see a message: “Automatically send tracking information to *Web GIS URL*”, as shown on [Fig. 1124.](#synced-success-pic). ![image](docs_ngtracker/source/_static/synced_created_en.png) # settings.html.md # Settings ## Profile **Profile** section contains user information. It is devided into two tabs: *My profile* and *My API keys*. **My profile** tab has the following settings: * Login * Password (can be modified after you log in for the first time) * Username * E-mail ![image](docs_geoserv_prem/source/_static/geosop_gr_profile1_en.png) **My API keys** are used for integration with other NextGIS services and external applications. For instance, you’ll need an API key to work In this section Administrator can create and delete API keys. While creating an API key, Administrator can set an expiration date for it. Other API key settings include extent boundary, scale limits and origins. ![image](docs_geoserv_prem/source/_static/geosop_gr_profile2_en.png)![image](docs_geoserv_prem/source/_static/geosop_gr_profile3_en.png) ## Users and user groups Available settings depend on user access rights. Administrator has full access and can create users, user groups, add users to the groups, delete and modify users and groups. ![image](docs_geoserv_prem/source/_static/geosop_gr_users1_en.png) To create a new user press **Add** and fill the following fields: * Login * Password * Username * E-mail * Group to which the new user will be added (optional) ![image](docs_geoserv_prem/source/_static/geosop_gr_users2_en.png)![image](docs_geoserv_prem/source/_static/geosop_gr_users3_en.png) To create a User group, in the list of groups press **Add**. Enter the name for the group. You can select users to be included in the group from a dropdown menu. ![image](docs_geoserv_prem/source/_static/geosop_gr_users4_en.png) ## Basemap In this section you can upload data that will be used for basemap services. You can upload a PBF file (you can [order on NextGIS Data](https://data.nextgis.com/en/region/custom/base/)). Upload progress is displayed on the same tab. ![image](docs_geoserv_prem/source/_static/geosop_base_upload_en.png) When the files are uploaded, press **Submit new basemap data** on the top of the page. ![image](docs_geoserv_prem/source/_static/geosop_base_submit_en_3.png) When the process is finished, it will be marked by a green dot in the Log . ![image](docs_geoserv_prem/source/_static/geosop_base_log_en.png) Default basemap that you configured can be found in the Public service group. Use the link for the tile service XYZ to add it to external software such as NextGIS Web or QGIS. You can use the basemap data to [create more services](https://docs.nextgis.com/docs_geoserv_prem/source/services.html#basemap-service). ![image](docs_geoserv_prem/source/_static/geosop_base_XYZ_en.png) ## Log The log registers data processing history and other actions performed by the app. Log entries include status, process source, beginning and end times, task ID and messages. ![image](docs_geoserv_prem/source/_static/geosop_journal1_en.png)![image](docs_geoserv_prem/source/_static/geosop_journal_messages_en.png) ## Storage In this section you can see the size of the cache stored in S3. To start estimation process, click **Estimate storage**. Beside this button you’ll see the date and time of the last estimation. ![image](docs_geoserv_prem/source/_static/settings_storage_en.png) Storage usage is estimated for all the cache combined as well as for individual services. To view the storage used by a particular service, open its preview. ![image](docs_geoserv_prem/source/_static/service_storage_en.png) ## About This section has information on the current versions of the components. ![image](docs_geoserv_prem/source/_static/geosop_about_en.png) # settings.html.md # Settings dialogue Depending on the screen size Settings dialogue can fit into one or two panels. Settings dialogue is shown on [Fig. 949.](#ngmobile-settings-pic) (one panel mode). ![image](docs_ngmobile/source/_static/ngmobile_settings_eng_new.png) There are following Settings on the main panel: * [General](https://docs.nextgis.com/docs_ngmobile/source/settings.html#general) * [Map](https://docs.nextgis.com/docs_ngmobile/source/settings.html#map) * [Location](https://docs.nextgis.com/docs_ngmobile/source/settings.html#location) * [My tracks](https://docs.nextgis.com/docs_ngmobile/source/settings.html#my-tracks) * Web GIS * Account ## General “General” settings allow to change basic settings of the map (see [Fig. 950.](#ngmobile-settings-general-pic)). ![image](docs_ngmobile/source/_static/ngmobile_settings3en.png) Here you can select the theme (Light or Dark) and tune up compass settings. ## Map “Map” settings allow to change basic settings of the map (see [Fig. 951.](#ngmobile-settings-map-pic)). ![image](docs_ngmobile/source/_static/ngmobile_settings1.png) Map settings include: * Show/hide Status info panel * The way current location is displayed (show current location, show marker, how marker & accuracy radius) * Show mini compass * Keep map screen on - works only on the map screen * Show/hide zoom control buttons on the map * Measurement system * Show scale ruler * Show zoom level * Show measuring button * Coordinates format (for coordinates in Status bar and other dialogs and screens) * Decimal places * Map background (light, dark, neutral) * Map path (here you can specify a path where map and layers data will be stored) * [Restore broken layers](https://docs.nextgis.com/docs_ngmobile/source/settings.html#restore-layers) #### NOTE For devices with several SD cards and Android 4.4 and higher, map path not on the main SD card can only be specified in the application home directory and its subdirectories (for example: Android/data/com.nextgis.mobile). This is also true for some devices without root access. Read-only folders won’t show up in path selection dialog. ## Restore layers Sometimes in case of memory malfunction, problems with writing data etc the synchronization between the layer on the map and in the app’s memory may break. To restore a broken layer open Settings –> Map and click **Restore broken layers**. Select a layer you want to restore. ![image](docs_ngmobile/source/_static/settings_restore_en.png) In this menu you’ll see the names of the local files in your device memory. The standard vector layers created during the installation of the app are: * Points - vector_a * Lines - vector_b * Polygons - vector_c To see the name of the file corresponding to another layer, open its context menu (three dots), go to Settings. On the [General](https://docs.nextgis.com/docs_ngmobile/source/layer_settings.html#ngmobile-tab-general-settings) tab you’ll find the full path to the file. ## Location “Location” settings offer a few location specific settings (see [Fig. 953.](#ngmobile-settings-place-pic)). ![image](docs_ngmobile/source/_static/ngmobile_settings2.png) Location settings include: * Coordinate source (mobile networks/Wi-Fi + [GPS](../../glossary.md#term-GPS), Other networks or only GPS) * Minimum update time * Minimum update distance * Count of GPS fixes ## My tracks “Tracks” settings are similar to the location settings, but they are applied only for track recording. Check “Send location to server” if you want to view tracks on a Web Map or save them to a vector layer. In this settings page you can also check your UID (you’ll need it to create a tracker in Web GIS). [More about tracking](https://docs.nextgis.com/docs_ngcom/source/tracking.html). ![image](docs_ngmobile/source/_static/Mobile_send_to_server_en.png) #### NOTE If you set value of the minimum update distance at more than 5 m, the operating system will start to smooth the track (remove outliers). # share.html.md # Exporting data ## Exporting data in GeoJSON To export data from NextGIS Mobile vector layer open Layers tree panel (item 1 in [Fig. 943.](main.md#ngmobile-main-activity-pic-1)). Then tap on the contextual menu icon next to the layer name (item 5 in [Fig. 944.](main.md#ngmobile-layer-tree-pic)). This will open the contextual menu items as shown in item 6 in [Fig. 944.](main.md#ngmobile-layer-tree-pic) There you need to select “Share”. Android standard Share dialogue window with a list of available Share options will open as shown in [Fig. 1023.](#ngmobile-share-pic). ![image](docs_ngmobile/source/_static/ngmobile_share.png) After you select a share option, data in the selected layer will be recorded in [GeoJSON](../../glossary.md#term-GeoJSON) format ([coordinate system](../../glossary.md#term-coordinate-system) Web Mercator, EPSG:3857) and exported via the selected application. The name of GeoJSON file will be the same as the name of the exported layer. Some of the share options (availability is dependent on the apps installed on your device): * You can send the file as an attachment via Gmail or different Email app. * You can upload the file to Google Drive/Dropbox/other cloud service and then share it with your colleagues. * You can send the file to another device via Bluetooth or SHAREit. * You can save the file on a memory card. #### WARNING In many Android versions to save a file on the device memory card you need a file manager app (for example, ES Explorer or similar). See how to change the default sharing method: Watch on [youtube](https://youtu.be/ducW-h1T-8M?si=9oYserBatgQ72jum). ## Exporting attachments Each feature in vector layer can have one or more photos attached to it. Photos are stored separately as image files and added to archive file with layer data during the export. For each feature a separate attachments folder is generated in the archive, the name of the folder corresponds to feature ID. Example: (4:10000002.jpg,10000000.jpg,10000001.jpg,10000003.jpg) Explanation: 4 photos are attached to a feature. These 4 photos are stored in the folder which name is similar to the feature ID. ## Exporting tracks in GPX To start exporting tracks first find “My Tracks” group in Layers tree panel. Then tap on contextual menu button as shown in [Fig. 1024.](#ngmobile-tree-layers-gpx-pic) and select “List”. ![image](docs_ngmobile/source/_static/tree_layers_gpx.png) This will open a list of recorded tracks as shown in [Fig. 1020.](tracks.md#ngmobile-tracks-list-gpx-pic). If there are few tracks recorded in a day, tracks will be divided into sessions. If a track was recorded during few days, this track will be divided into parts corresonding to recording days. Select a track you want to export by ticking the corresponding checkbox, and buttons in Top toolbar will become active as shown in [Fig. 1021.](tracks.md#ngmobile-layer-gpx-selected-pic) To export the track, tap on Share button (see item 4 in [Fig. 1021.](tracks.md#ngmobile-layer-gpx-selected-pic)). It will open the same Share dialogue window as shown in [Fig. 1023.](#ngmobile-share-pic) above. After you select a share option, data in the selected track will be recorded in GPX format and exported via the selected application. # shortcut.html.md # Shortcut Manager Create a shortcuts toolbar to run external programs and open web pages directly from QGIS . After installation Shortcut Manager will appear in the Plugins menu. ![image](docs_ngqgis/source/_static/shortcut_open_en.png) * Activate the plugin and press **Create shortcut**. ![image](docs_ngqgis/source/_static/shortcut_new_en.png) * Select an app from your desktop, enter a path to a file on your device or a URL. ![image](docs_ngqgis/source/_static/shortcut_select_en.png) * Enter a name for the shorcut button. ![image](docs_ngqgis/source/_static/shortcut_name_en.png) * Select the icon. ![image](docs_ngqgis/source/_static/shortcut_icon_en.png) * Press **Finish**. The shortcut button will appear on the Plugins toolbar. You can edit and delete the shortcuts. ![image](docs_ngqgis/source/_static/shortcut_list_en.png) See how the plugin works in our video: Watch on [youtube](https://youtu.be/cVYAEHkRkG0?si=Pi8ikqmOAQ69lJBK). # sidebar.html.md # Navigation * [Get Started with NextGIS](docs_ngcom/source/index.md) * [Intro](docs_ngcom/source/intro.md) * [Web GIS: Description and Main Features](docs_ngcom/source/description.md) * [Account](docs_ngcom/source/create.md) * [How to create account (NextGIS ID)](docs_ngcom/source/create.md#how-to-create-account-nextgis-id) * [Sign-in via NextGIS ID](docs_ngcom/source/create.md#sign-in-via-nextgis-id) * [Change or recover NextGIS ID password](docs_ngcom/source/create.md#change-or-recover-nextgis-id-password) * [My account](docs_ngcom/source/create.md#my-account) * [Where can I use NextGIS ID](docs_ngcom/source/create.md#ngcom-ngid-use) * [Team](docs_ngcom/source/teams.md) * [Team information](docs_ngcom/source/teams.md#team-information) * [Manage your team](docs_ngcom/source/teams.md#manage-your-team) * [Allow team members to access Web GIS](docs_ngcom/source/teams.md#allow-team-members-to-access-web-gis) * [Team memberships](docs_ngcom/source/teams.md#team-memberships) * [How to create Web GIS](docs_ngcom/source/create_webgis.md) * [How to sign in to your Web GIS](docs_ngcom/source/create_webgis.md#how-to-sign-in-to-your-web-gis) * [Main menu](docs_ngcom/source/create_webgis.md#main-menu) * [Subscription](docs_ngcom/source/subscription.md) * [Upgrade subscription plan](docs_ngcom/source/subscription.md#upgrade-subscription-plan) * [Cancel subscription](docs_ngcom/source/subscription.md#cancel-subscription) * [Which data formats and protocols are supported in Web GIS](docs_ngcom/source/data_types.md) * [How data is managed](docs_ngcom/source/resources.md) * [Demo projects](docs_ngcom/source/demoprojects.md) * [What you can do with demo projects](docs_ngcom/source/demoprojects.md#what-you-can-do-with-demo-projects) * [Tutorial: Store, manage and publish your spatial data](docs_ngcom/source/tutorial_webgis.md) * [Step 1/6 Create free account and Web GIS](docs_ngcom/source/tutorial_webgis.md#step-1-6-create-free-account-and-web-gis) * [Step 2/6 Access your Web GIS and create resource group](docs_ngcom/source/tutorial_webgis.md#step-2-6-access-your-web-gis-and-create-resource-group) * [Step 3/6 Upload and publish vector layer](docs_ngcom/source/tutorial_webgis.md#step-3-6-upload-and-publish-vector-layer) * [Step 4/6 Upload a style](docs_ngcom/source/tutorial_webgis.md#step-4-6-upload-a-style) * [Step 5/6 Upload and publish raster layer](docs_ngcom/source/tutorial_webgis.md#step-5-6-upload-and-publish-raster-layer) * [Step 6/6 Publish Web Map](docs_ngcom/source/tutorial_webgis.md#step-6-6-publish-web-map) * [Add external WMS layer to Web Map](docs_ngcom/source/tutorial_webgis.md#wms) * [Add basemaps to Web Map](docs_ngcom/source/tutorial_webgis.md#add-basemaps-to-web-map) * [Create vector layer inside Web GIS](docs_ngcom/source/tutorial_webgis.md#empty-layer) * [Edit vector layer on a Web Map, add file attachments](docs_ngcom/source/tutorial_webgis.md#edit-vector-layer-on-a-web-map-add-file-attachments) * [Publish OGC API — Features service](docs_ngcom/source/tutorial_webgis.md#ogc-api) * [What next](docs_ngcom/source/tutorial_webgis.md#next) * [Tutorial: Seamless QGIS Integration](docs_ngcom/source/tutorial_qgis.md) * [Step 1/5 Create free account and Web GIS](docs_ngcom/source/tutorial_qgis.md#step-1-5-create-free-account-and-web-gis) * [Step 2/5 Open and explore QGIS project](docs_ngcom/source/tutorial_qgis.md#step-2-5-open-and-explore-qgis-project) * [Step 3/5 Install NextGIS Connect plugin](docs_ngcom/source/tutorial_qgis.md#step-3-5-install-nextgis-connect-plugin) * [Step 4/5 Create a connection](docs_ngcom/source/tutorial_qgis.md#step-4-5-create-a-connection) * [Step 5/5 Publish QGIS project to NextGIS Web](docs_ngcom/source/tutorial_qgis.md#step-5-5-publish-qgis-project-to-nextgis-web) * [Connect to Web Map from QGIS](docs_ngcom/source/tutorial_qgis.md#id2) * [Modify layer styles on the Web Map from QGIS](docs_ngcom/source/tutorial_qgis.md#modify-layer-styles-on-the-web-map-from-qgis) * [Update raster layer style on a Web Map](docs_ngcom/source/tutorial_qgis.md#raster-style) * [Edit data from QGIS and explore results on the Web Map](docs_ngcom/source/tutorial_qgis.md#edit-data-from-qgis-and-explore-results-on-the-web-map) * [How to upload data](docs_ngcom/source/data_upload.md) * [Quick preview](docs_ngcom/source/data_upload.md#quick-preview) * [Raster data](docs_ngcom/source/data_upload.md#raster-data) * [Vector data](docs_ngcom/source/data_upload.md#vector-data) * [How to connect data from external sources](docs_ngcom/source/data_connect.md) * [Basemaps](docs_ngcom/source/data_connect.md#basemaps) * [External PostGIS databases](docs_ngcom/source/data_connect.md#external-postgis-databases) * [External WMS services](docs_ngcom/source/data_connect.md#external-wms-services) * [External TMS services](docs_ngcom/source/data_connect.md#external-tms-services) * [How to create map styles for data visualization](docs_ngcom/source/styles.md) * [QGIS style](docs_ngcom/source/styles.md#qgis-style) * [MapServer style](docs_ngcom/source/styles.md#mapserver-style) * [Raster style](docs_ngcom/source/styles.md#raster-style) * [How to create a Web Map](docs_ngcom/source/webmap_create.md) * [Create Web Map](docs_ngcom/source/webmap_create.md#create-web-map) * [Open Web Map](docs_ngcom/source/webmap_create.md#open-web-map) * [Add a description](docs_ngcom/source/webmap_create.md#add-a-description) * [How to embed a Web Map on your website](docs_ngcom/source/embed_webmap.md) * [Embeded map settings](docs_ngcom/source/embed_webmap.md#embeded-map-settings) * [How to share a link to a particular Web Map feature](docs_ngcom/source/embed_webmap.md#how-to-share-a-link-to-a-particular-web-map-feature) * [How to publish data using standard protocols](docs_ngcom/source/data_services.md) * [WMS service](docs_ngcom/source/data_services.md#wms-service) * [WFS service](docs_ngcom/source/data_services.md#wfs-service) * [How to connect a Lookup table to a vector layer](docs_ngcom/source/lookup.md) * [How to use a lookup table for layer editing in NextGIS Web](docs_ngcom/source/lookup.md#how-to-use-a-lookup-table-for-layer-editing-in-nextgis-web) * [How to use a lookup table in QGIS](docs_ngcom/source/lookup.md#how-to-use-a-lookup-table-in-qgis) * [How to manage data with desktop app QGIS](docs_ngcom/source/ngqgis_connect.md) * [How to enable the monitoring of moving objects (tracking)](docs_ngcom/source/tracking.md) * [Introduction](docs_ngcom/source/tracking.md#introduction) * [How tracking works](docs_ngcom/source/tracking.md#how-tracking-works) * [Creating tracker groups](docs_ngcom/source/tracking.md#creating-tracker-groups) * [Tracking in NextGIS Mobile, Collector and Tracker](docs_ngcom/source/tracking.md#tracking-in-nextgis-mobile-collector-and-tracker) * [Tracking results on the Web Map](docs_ngcom/source/tracking.md#tracking-results-on-the-web-map) * [Managing access rights](docs_ngcom/source/permissions.md) * [Terms](docs_ngcom/source/permissions.md#terms) * [Viewing user permissions](docs_ngcom/source/permissions.md#viewing-user-permissions) * [Permissions tab in Settings](docs_ngcom/source/permissions.md#permissions-tab-in-settings) * [Common cases of assigning permissions](docs_ngcom/source/permissions.md#common-cases-of-assigning-permissions) * [How to begin data collection in your Web GIS](docs_ngcom/source/collector.md) * [Introduction](docs_ngcom/source/collector.md#introduction) * [Principles of work with NextGIS Collector](docs_ngcom/source/collector.md#principles-of-work-with-nextgis-collector) * [Organizer of data collection: adding team participants in Web GIS](docs_ngcom/source/collector.md#organizer-of-data-collection-adding-team-participants-in-web-gis) * [Organizer of data collection: creating data collection project](docs_ngcom/source/collector.md#organizer-of-data-collection-creating-data-collection-project) * [Team participants: mobile app installation and start of data collection](docs_ngcom/source/collector.md#team-participants-mobile-app-installation-and-start-of-data-collection) * [Administrator’s check-list](docs_ngcom/source/collector.md#administrator-s-check-list) * [How to use Web GIS for creation of end-user apps](docs_ngcom/source/ngapi.md) * [How to improve translation](docs_ngcom/source/translation.md) * [Join the project](docs_ngcom/source/translation.md#join-the-project) * [How to translate](docs_ngcom/source/translation.md#how-to-translate) * [Toubleshooting](docs_ngcom/source/help.md) * [Styles compatibility between QGIS and NextGIS Web](docs_ngcom/source/help.md#styles-compatibility-between-qgis-and-nextgis-web) * [How to get help or send a bug report](docs_ngcom/source/help.md#how-to-get-help-or-send-a-bug-report) * [Problem Solving (Q&A)](docs_ngcom/source/faq_webgis.md) * [How to sign in to Web GIS](docs_ngcom/source/faq_webgis.md#how-to-sign-in-to-web-gis) * [Access recovery and passwords](docs_ngcom/source/faq_webgis.md#access-recovery-and-passwords) * [Personal data](docs_ngcom/source/faq_webgis.md#personal-data) * [Two NextGIS accounts. Background](docs_ngcom/source/faq_webgis.md#two-nextgis-accounts-background) * [How to…](docs_ngcom/source/howtos.md) * [Tutorials](docs_howto/source/index.md) * [NextGIS Toolbox](docs_toolbox/source/index.md) * [Introduction](docs_toolbox/source/intro.md) * [Purpose](docs_toolbox/source/intro.md#purpose) * [Installation and running](docs_toolbox/source/intro.md#installation-and-running) * [Authorization](docs_toolbox/source/intro.md#authorization) * [Use via MCP](docs_toolbox/source/mcp.md) * [ChatGPT (web)](docs_toolbox/source/mcp.md#chatgpt-web) * [Claude (web)](docs_toolbox/source/mcp.md#claude-web) * [Claude Code](docs_toolbox/source/mcp.md#claude-code) * [Cursor IDE](docs_toolbox/source/mcp.md#cursor-ide) * [Tools](docs_toolbox/source/tools.md) * [Add region and settlement names to attributes](docs_toolbox/source/add_regions.md) * [Adobe Illustrator (\*.ai) to geodata](docs_toolbox/source/ai2geo.md) * [Aggregate raster layer to H3 grid](docs_toolbox/source/aggregate_raster_layer_to_h3.md) * [Aggregate vector layer to H3 grid](docs_toolbox/source/aggregate_vector_layer_to_h3.md) * [Layer list from DWG file](docs_toolbox/source/autocad_file_schema.md) * [Report DWG / DXF file version](docs_toolbox/source/autocad_version.md) * [ASCII raster to GeoTIFF](docs_toolbox/source/ascii2geotiff.md) * [Buffer](docs_toolbox/source/buffer.md) * [Central lines of polygons](docs_toolbox/source/centerline.md) * [Points inside polygons](docs_toolbox/source/centroid2attr.md) * [Check geometries](docs_toolbox/source/check_geometries.md) * [Calculate areas of intersection](docs_toolbox/source/clip_polys_poly.md) * [Convert format of vector layer](docs_toolbox/source/convert.md) * [Reproject coordinates](docs_toolbox/source/coord_recalc.md) * [Coordinates to polygon](docs_toolbox/source/coords2poly.md) * [Count TMS tiles for polygon](docs_toolbox/source/count_tiles.md) * [Count number of layer intersections](docs_toolbox/source/crossing_borders.md) * [Extract elevations from DEM](docs_toolbox/source/deminpoints.md) * [DOC(X) to PDF](docs_toolbox/source/doc2pdf.md) * [Prepare and download Sentinel-2 data](docs_toolbox/source/download_and_prepare_l8_s2.md) * [Download Landsat Analysis Ready Data (GLAD ARD)](docs_toolbox/source/download_glad.md) * [Embed SVG into QGS/QML](docs_toolbox/source/embedsvg.md) * [Empty geometries in Web GIS layer](docs_toolbox/source/empty_geoms.md) * [Erase overlapping areas from layer](docs_toolbox/source/eraser.md) * [Erosion Susceptibility Analysis](docs_toolbox/source/erosion_analysis.md) * [Photos with EXIF to NGW layer](docs_toolbox/source/exif2resource.md) * [Change attributes in layer group](docs_toolbox/source/field_value_changer.md) * [Fix geometries](docs_toolbox/source/fix_geometries.md) * [Strip ZM from vector layer](docs_toolbox/source/flatten.md) * [Flood Susceptibility Analysis](docs_toolbox/source/flood_analysis.md) * [GBIF species observations to geodata](docs_toolbox/source/gbif_download.md) * [Advanced vector generalization](docs_toolbox/source/generalization.md) * [Geocode table](docs_toolbox/source/geocodetable.md) * [Geodata to PMTiles](docs_toolbox/source/geodata2pmtiles.md) * [Change geometries in layer groups](docs_toolbox/source/geometry_changer.md) * [GeoPackage to MapInfo Enhanced TAB](docs_toolbox/source/gpkg2etab.md) * [GPS track animation for social media](docs_toolbox/source/gpxanimation.md) * [Geotag photos using GPX track](docs_toolbox/source/gpx2exif.md) * [Clip GPX file by bounding box](docs_toolbox/source/gpxclipbbox.md) * [Split GPX file by days](docs_toolbox/source/gpxdailysplit.md) * [Merge GPX files](docs_toolbox/source/gpxmerge.md) * [Split GPX into individual tracks](docs_toolbox/source/gpxtracksplit.md) * [Meter grid](docs_toolbox/source/grid.md) * [Hello, World!](docs_toolbox/source/hello.md) * [iNaturalist species observations to geodata](docs_toolbox/source/inaturalist_download.md) * [Image classification](docs_toolbox/source/image_classification.md) * [Image clustering](docs_toolbox/source/image_clustering.md) * [Copernicus Sentinel image search](docs_toolbox/source/imagesearch.md) * [DWG to DXF](docs_toolbox/source/import_dwg.md) * [DWG to DXF (libdxfrw)](docs_toolbox/source/import_dwg_libdxfrw.md) * [Improve DEM](docs_toolbox/source/improvedem.md) * [Intersection registry](docs_toolbox/source/intersect_layers.md) * [Join layer and table by field](docs_toolbox/source/join_by_field.md) * [KML to geodata](docs_toolbox/source/kml2geodata.md) * [Projection (Dae, Collada) to Shapefile](docs_toolbox/source/kmldae2footprints.md) * [Search and save Landsat-L2C2 scene previews](docs_toolbox/source/landsat_search.md) * [Landsat radiometric calibration](docs_toolbox/source/landsat_to_radiance.md) * [Landsat reflectance calculation](docs_toolbox/source/landsat_to_reflectance.md) * [Landslide Susceptibility Analysis](docs_toolbox/source/landslide_analysis.md) * [Vector layers in Web GIS from archive](docs_toolbox/source/layers2ngw.md) * [Form multi-channel raster from individual channels](docs_toolbox/source/layerstack.md) * [Lines to polygons](docs_toolbox/source/lines2poly.md) * [Temporal polygons from lines and points](docs_toolbox/source/lines2polygons.md) * [MapInfo ready for QGIS](docs_toolbox/source/mapinfo2qgis.md) * [Vertical map for Social Media](docs_toolbox/source/mappy.md) * [Max distance between polygon nodes](docs_toolbox/source/maxdist.md) * [MBTiles to NGRC](docs_toolbox/source/mbtiles2ngrc.md) * [Marine traffic report](docs_toolbox/source/mt2report.md) * [Normalized difference index](docs_toolbox/source/ndi.md) * [Attribute to description for Web GIS](docs_toolbox/source/ngw_attribute2description.md) * [Contribution activity report for resource](docs_toolbox/source/ngw_contribution_activity.md) * [Copy nextgis.com resource group with data](docs_toolbox/source/ngw_copy_group.md) * [Duplicate Web GIS layer](docs_toolbox/source/ngw_copy_layer.md) * [Feature history](docs_toolbox/source/ngw_feature_history.md) * [Resource group to Web Map](docs_toolbox/source/ngw_group2webmap.md) * [Intersection registry for Web GIS](docs_toolbox/source/ngw_intersect.md) * [Get the layer historical state](docs_toolbox/source/ngw_layer_historical_state.md) * [Manage Web GIS layer structure](docs_toolbox/source/ngw_layer_schema.md) * [Merge two Web GIS vector layers](docs_toolbox/source/ngw_merge_layers.md) * [Vector layers from Web GIS to GeoPackage](docs_toolbox/source/ngw_to_gpkg.md) * [Web Map to image](docs_toolbox/source/ngw_webmap2image.md) * [Combine two Web Maps into a new one](docs_toolbox/source/ngw_webmap_combiner.md) * [Geocode with Nominatim](docs_toolbox/source/nominatim_geocode.md) * [Merge vector layers](docs_toolbox/source/ogrmerge.md) * [Download OpenStreetMap](docs_toolbox/source/osm_download.md) * [Clip PBF file by bbox](docs_toolbox/source/osmclip_bbox.md) * [Convert Garden Gnome Package panoramas to JPEG](docs_toolbox/source/pano2vr.md) * [Add Google Photosphere XMP metadata to photos](docs_toolbox/source/panotag.md) * [Import PastVu photos to Web GIS](docs_toolbox/source/pastvu2webgis.md) * [Search & download Planetary Computer](docs_toolbox/source/planetary_search.md) * [Point cloud to tileset](docs_toolbox/source/pointcloud2tileset.md) * [Statistics of points and tracks in polygons from NGW](docs_toolbox/source/points_on_tracks_stats.md) * [Polygons topological simplifier](docs_toolbox/source/polysimplifier.md) * [Parse addresses](docs_toolbox/source/postal.md) * [Predict satellite overpass](docs_toolbox/source/predict_overpass.md) * [Prepare raster](docs_toolbox/source/prepare_raster.md) * [Check geometries (QGIS)](docs_toolbox/source/qgis_check_geometries.md) * [Fix geometries (QGIS)](docs_toolbox/source/qgis_fix_geometries.md) * [Multipart to singleparts](docs_toolbox/source/qgis_multiparttosingleparts.md) * [QGIS project to PDF](docs_toolbox/source/qgis2pdf.md) * [Set of squares with transects](docs_toolbox/source/quadro.md) * [Raster calculator (GRASS)](docs_toolbox/source/r_mapcalc.md) * [Raster calculator (GDAL)](docs_toolbox/source/raster_calculator.md) * [Raster to NGRC](docs_toolbox/source/raster2tiles.md) * [Erase features](docs_toolbox/source/removecontents.md) * [Sentinel-2 scenes to GPKG](docs_toolbox/source/s2_search.md) * [Sunlight hours prediction](docs_toolbox/source/solar_hours.md) * [Spatial Join (Join by location)](docs_toolbox/source/spatial_join.md) * [Compute spectral index](docs_toolbox/source/spectral_indices.md) * [Split into equal parts](docs_toolbox/source/split_to_equal.md) * [Split into rectangles and calculate their number](docs_toolbox/source/split_to_rect.md) * [Split at 180th meridian](docs_toolbox/source/split180.md) * [Split Complex Polygons](docs_toolbox/source/splitcomplex.md) * [Google Sheets to Web GIS](docs_toolbox/source/spreadsheet2layer.md) * [Table to vector file](docs_toolbox/source/table2geo.md) * [Create temporal cache](docs_toolbox/source/temporal_split.md) * [Comprehensive Terrain Analysis](docs_toolbox/source/terrain_analysis.md) * [TROPOMI to GeoTIFF](docs_toolbox/source/tropomi2geotiff.md) * [Update Web GIS layer from CSV](docs_toolbox/source/update_vector_layer.md) * [Prepare vector layer for DataLens](docs_toolbox/source/vector2datalens.md) * [Layer intersection](docs_toolbox/source/vectorclip.md) * [Web GIS structure to spreadsheet](docs_toolbox/source/web_gis_structure.md) * [Web Map to QGIS project](docs_toolbox/source/webmap2qgis.md) * [Wildfire Susceptibility Analysis (Topographic)](docs_toolbox/source/wildfire_analysis.md) * [NextGIS Data](docs_data/source/index.md) * [General issues](docs_data/source/common.md) * [How to order data](docs_data/source/order.md) * [How to switch accounts](docs_data/source/logout.md) * [How to open the entire map (project)](docs_data/source/open_map.md) * [How to order printable map](docs_data/source/order_printmap.md) * [How to open a particular layer](docs_data/source/open_layer.md) * [How to find the object I need on OpenStreetMap](docs_data/source/osm_search.md) * [How to get coordinates of a target object](docs_data/source/coord.md) * [How to get municipal boundaries for a target region](docs_data/source/district.md) * [How to select all of my city’s hospitals on the map](docs_data/source/hospital.md) * [How to prepare map for printing](docs_data/source/print.md) * [How to change the language of labels in OSM data](docs_data/source/label_lang.md) * [NextGIS Data extracts](docs_data/source/extracts.md) * [Our data in other software](docs_data/source/other_soft.md) * [How to upload data to NextGIS Web with NextGIS Connect](docs_data/source/connect2ngw.md) * [How to upload Tileset to NextGIS Web](docs_data/source/tiles2ngw_en.md) * [How to open elevation data in QGIS](docs_data/source/elevation_qgis.md) * [How to load elevation data into QGIS 3D window](docs_data/source/3d_dem_qgis.md) * [How to open satellite data in QGIS](docs_data/source/satellite.md) * [How to upload data to Google maps](docs_data/source/google_mymaps.md) * [How to import data into AutoCAD](docs_data/source/autocad.md) * [How to add a layer in AutoCAD Map 3D](docs_data/source/map3d.md) * [How to load data in R](docs_data/source/r.md) * [How to load data in GeoPandas](docs_data/source/geopandas.md) * [How to open data in Excel](docs_data/source/excel.md) * [How to upload text data into Microsoft Power BI](docs_data/source/power_bi.md) * [How to load vector layer into Microsoft Power BI](docs_data/source/power_bi_map.md) * [How to vizualize data with Highcharts Maps (highcharts.js)](docs_data/source/highcharts.md) * [How to use data in Leaflet (leaflet.js)](docs_data/source/leaflet.md) * [How to use data in D3 (d3.js)](docs_data/source/d3.md) * [How to load data into PostgreSQL/PostGIS](docs_data/source/pg.md) * [How to load multiple tables of different regions in PostgreSQL/PostGIS](docs_data/source/upload_tables_postgis.md) * [How to load layer into Tableau](docs_data/source/tableau.md) * [How to upload data to Blender GIS](docs_data/source/blender.md) * [How to load data into Qlik Sense](docs_data/source/qlik.md) * [How to open your project in MapInfo](docs_data/source/mapinfo.md) * [How to open raster data in MapInfo](docs_data/source/mapinfo_raster.md) * [How to open your basemap project in ArcGIS Pro](docs_data/source/arcgispro.md) * [How to open a map or a project in ArcGIS Pro](docs_data/source/arcgis.md) * [How to upload data to Locus GIS mobile app](docs_data/source/locus.md) * [Data conversion](docs_data/source/transform.md) * [How to process your data](docs_data/source/process.md) * [How to change coordinate reference system of the data](docs_data/source/cs_change.md) * [How to convert file to another GIS format](docs_data/source/type_change.md) * [How to change data encoding](docs_data/source/encoding_change.md) * [Solving technical problems](docs_data/source/problems.md) * [When area or distance differs from the expected value](docs_data/source/calc_area.md) * [NextGIS Web](docs_ngweb/source/index.md) * [Introduction](docs_ngweb/source/intro.md) * [General Information](docs_ngweb/source/general.md) * [Key features of NextGIS Web](docs_ngweb/source/general.md#key-features-of-nextgis-web) * [Minimum hardware](docs_ngweb/source/general.md#minimum-hardware) * [Recommended software versions](docs_ngweb/source/general.md#recommended-software-versions) * [Main interface](docs_ngweb/source/admin_interface.md) * [Authorization](docs_ngweb/source/admin_interface.md#authorization) * [Home page](docs_ngweb/source/admin_interface.md#home-page) * [Language change](docs_ngweb/source/admin_interface.md#language-change) * [Resource search](docs_ngweb/source/admin_interface.md#resource-search) * [Control panel](docs_ngweb/source/admin_interface.md#control-panel) * [Resource view](docs_ngweb/source/admin_interface.md#resource-view) * [Feature table](docs_ngweb/source/admin_interface.md#feature-table) * [Data export](docs_ngweb/source/admin_interface.md#data-export) * [Interface for guests](docs_ngweb/source/admin_interface.md#interface-for-guests) * [Adding resources](docs_ngweb/source/create_resource.md) * [Create Resource group to manage data](docs_ngweb/source/create_resource.md#create-resource-group-to-manage-data) * [Data preview](docs_ngweb/source/create_resource.md#data-preview) * [Typical structure](docs_ngweb/source/create_resource.md#typical-structure) * [Gallery](docs_ngweb/source/gallery.md) * [Gallery items](docs_ngweb/source/gallery.md#gallery-items) * [Gallery settings](docs_ngweb/source/gallery.md#gallery-settings) * [Add layers](docs_ngweb/source/layers.md) * [Vector layer](docs_ngweb/source/layers.md#ngw-create-vector-layer) * [Raster layer](docs_ngweb/source/layers.md#ngw-create-raster-layer) * [Tileset](docs_ngweb/source/layers.md#ngw-tile-set) * [Raster layer storage](docs_ngweb/source/layers.md#raster-storage) * [Services](docs_ngweb/source/services.md) * [MVT vector tiles](docs_ngweb/source/services.md#mvt-vector-tiles) * [TMS service](docs_ngweb/source/services.md#tms-service) * [OGC API – Features service](docs_ngweb/source/services.md#ogc-api-features-service) * [WFS service](docs_ngweb/source/services.md#wfs-service) * [WMS service](docs_ngweb/source/services.md#wms-service) * [Update resource](docs_ngweb/source/edit_resource.md) * [Move resource](docs_ngweb/source/edit_resource.md#move-resource) * [Delete resource](docs_ngweb/source/edit_resource.md#delete-resource) * [Edit description and metadata](docs_ngweb/source/edit_resource.md#edit-description-and-metadata) * [Keyname for API integrations](docs_ngweb/source/edit_resource.md#keyname-for-api-integrations) * [Managing Feature table](docs_ngweb/source/feature_table.md) * [Feature table on a separate page](docs_ngweb/source/feature_table.md#feature-table-on-a-separate-page) * [Feature table on a Web Map](docs_ngweb/source/feature_table.md#feature-table-on-a-web-map) * [Search and filter](docs_ngweb/source/feature_table.md#search-and-filter) * [Filter layer features on the Web Map by area](docs_ngweb/source/feature_table.md#filter-layer-features-on-the-web-map-by-area) * [View feature entry](docs_ngweb/source/feature_table.md#view-feature-entry) * [Create new feature](docs_ngweb/source/feature_table.md#create-new-feature) * [Edit features](docs_ngweb/source/feature_table.md#edit-features) * [Delete feature](docs_ngweb/source/feature_table.md#delete-feature) * [Export to file](docs_ngweb/source/feature_table.md#export-to-file) * [Displaying selected fields and feature edit information](docs_ngweb/source/feature_table.md#displaying-selected-fields-and-feature-edit-information) * [Other tools](docs_ngweb/source/feature_table.md#other-tools) * [Edit vector features](docs_ngweb/source/feature_edit.md) * [Edit mode on a Web Map](docs_ngweb/source/feature_edit.md#edit-mode-on-a-web-map) * [Create a new feature (point, line, polygon)](docs_ngweb/source/feature_edit.md#create-a-new-feature-point-line-polygon) * [Delete feature](docs_ngweb/source/feature_edit.md#delete-feature) * [Move feature](docs_ngweb/source/feature_edit.md#move-feature) * [Edit vertices](docs_ngweb/source/feature_edit.md#edit-vertices) * [Add and delete vertices](docs_ngweb/source/feature_edit.md#add-and-delete-vertices) * [Create holes](docs_ngweb/source/feature_edit.md#create-holes) * [Edit feature’s attributes](docs_ngweb/source/feature_edit.md#edit-feature-s-attributes) * [Attachments](docs_ngweb/source/feature_edit.md#attachments) * [Disable editing on the map](docs_ngweb/source/feature_edit.md#disable-editing-on-the-map) * [Styles](docs_ngweb/source/mapstyles.md) * [Formats](docs_ngweb/source/mapstyles.md#formats) * [QGIS Vector Style](docs_ngweb/source/mapstyles.md#qgis-vector-style) * [Editing QGIS style](docs_ngweb/source/mapstyles.md#editing-qgis-style) * [MapServer style](docs_ngweb/source/mapstyles.md#mapserver-style) * [Raster style](docs_ngweb/source/mapstyles.md#raster-style) * [Tile cache](docs_ngweb/source/mapstyles.md#tile-cache) * [Adding a style on the map](docs_ngweb/source/mapstyles.md#adding-a-style-on-the-map) * [Creating other types of resources](docs_ngweb/source/create_other.md) * [Lookup table](docs_ngweb/source/create_other.md#lookup-table) * [File bucket](docs_ngweb/source/create_other.md#file-bucket) * [Versioning](docs_ngweb/source/version.md) * [Versioning in the NextGIS Web interface](docs_ngweb/source/version.md#versioning-in-the-nextgis-web-interface) * [Versioning in NextGIS Web API](docs_ngweb/source/version.md#versioning-in-nextgis-web-api) * [Versioning in QGIS](docs_ngweb/source/version.md#versioning-in-qgis) * [Vector layer settings](docs_ngweb/source/layers_settings.md) * [Edit vector layer attributes table](docs_ngweb/source/layers_settings.md#edit-vector-layer-attributes-table) * [Delete or replace all features](docs_ngweb/source/layers_settings.md#delete-or-replace-all-features) * [Change layer geometry](docs_ngweb/source/layers_settings.md#change-layer-geometry) * [Advanced options for uploading vector layer from a file](docs_ngweb/source/vect_layer_upload_params.md) * [Processing possible errors](docs_ngweb/source/vect_layer_upload_params.md#processing-possible-errors) * [Detecting geometry type](docs_ngweb/source/vect_layer_upload_params.md#detecting-geometry-type) * [Object ID detection settings (FID)](docs_ngweb/source/vect_layer_upload_params.md#object-id-detection-settings-fid) * [PostGIS](docs_ngweb/source/postgis_details.md) * [Creating PostGIS connection](docs_ngweb/source/postgis_details.md#creating-postgis-connection) * [Creating PostGIS layer](docs_ngweb/source/postgis_details.md#creating-postgis-layer) * [Multiple geometries in a singe table](docs_ngweb/source/postgis_details.md#multiple-geometries-in-a-singe-table) * [PostGIS diagnostics](docs_ngweb/source/postgis_details.md#postgis-diagnostics) * [PostGIS layer troubleshooting](docs_ngweb/source/postgis_details.md#postgis-layer-troubleshooting) * [Create layers with conditions](docs_ngweb/source/postgis_details.md#create-layers-with-conditions) * [WFS, WMS, TMS layers](docs_ngweb/source/connections.md) * [WFS](docs_ngweb/source/connections.md#ngw-wfs-in) * [WMS](docs_ngweb/source/connections.md#ngw-wms-in) * [TMS](docs_ngweb/source/connections.md#ngw-tms-in) * [Adding Web Maps](docs_ngweb/source/webmaps_admin.md) * [Creating a Web Map](docs_ngweb/source/webmaps_admin.md#creating-a-web-map) * [Web Map Layers](docs_ngweb/source/webmaps_admin.md#web-map-layers) * [Basemaps](docs_ngweb/source/webmaps_admin.md#basemaps) * [Settings](docs_ngweb/source/webmaps_admin.md#settings) * [Legend](docs_ngweb/source/webmaps_admin.md#legend) * [Extent](docs_ngweb/source/webmaps_admin.md#ngw-map-extent) * [Bookmarks](docs_ngweb/source/webmaps_admin.md#bookmarks) * [Hide or show panels and identification sections](docs_ngweb/source/webmaps_admin.md#hide-or-show-panels-and-identification-sections) * [Social](docs_ngweb/source/webmaps_admin.md#social) * [Final steps](docs_ngweb/source/webmaps_admin.md#final-steps) * [Open Web Map settings](docs_ngweb/source/webmaps_admin.md#open-web-map-settings) * [How to optimize Web Map performance](docs_ngweb/source/webmaps_admin.md#how-to-optimize-web-map-performance) * [Web Map Cloning](docs_ngweb/source/webmap_clone.md) * [Clone to another group](docs_ngweb/source/webmap_clone.md#clone-to-another-group) * [Clone to a new group](docs_ngweb/source/webmap_clone.md#clone-to-a-new-group) * [Web Map viewer](docs_ngweb/source/webmaps_client.md) * [Zoom and rotation](docs_ngweb/source/webmaps_client.md#zoom-and-rotation) * [Panels](docs_ngweb/source/webmaps_client.md#ngw-webmaps-client-panels) * [Map tools](docs_ngweb/source/webmaps_client.md#ngw-webmaps-client-tools) * [Share](docs_ngweb/source/webmaps_client.md#ngw-webmaps-client-share) * [Link to a Web Map feature](docs_ngweb/source/webmaps_client.md#link-to-a-web-map-feature) * [Legend in the layers tree](docs_ngweb/source/webmaps_client.md#legend-in-the-layers-tree) * [Layer menu](docs_ngweb/source/webmaps_client.md#layer-menu) * [Filter](docs_ngweb/source/webmaps_client.md#filter) * [Feature identification](docs_ngweb/source/webmaps_client.md#ngw-webmaps-client-ident) * [Search](docs_ngweb/source/webmaps_client.md#ngw-webmaps-client-search) * [Basemap](docs_ngweb/source/webmaps_client.md#basemap) * [Contact Web GIS owner](docs_ngweb/source/webmaps_client.md#contact-web-gis-owner) * [Print a Web Map or save as image](docs_ngweb/source/print.md) * [Embed Web Map on a Web page](docs_ngweb/source/embed_webmap.md) * [Embeded map settings](docs_ngweb/source/embed_webmap.md#embeded-map-settings) * [Web Map Settings](docs_ngweb/source/webmap_set.md) * [Navigation menu vizibility](docs_ngweb/source/webmap_set.md#navigation-menu-vizibility) * [Identify panel](docs_ngweb/source/webmap_set.md#ngw-contr-panel-webmap-ident) * [Measurements](docs_ngweb/source/webmap_set.md#measurements) * [Address search](docs_ngweb/source/webmap_set.md#address-search) * [Favorites](docs_ngweb/source/favorites.md) * [How to add Web Map fragment to Favorites](docs_ngweb/source/favorites.md#how-to-add-web-map-fragment-to-favorites) * [Favorites list editing](docs_ngweb/source/favorites.md#favorites-list-editing) * [Web Map annotations](docs_ngweb/source/annotation.md) * [Annotation. What is it?](docs_ngweb/source/annotation.md#annotation-what-is-it) * [How to enable Web Map annotations?](docs_ngweb/source/annotation.md#how-to-enable-web-map-annotations) * [Web Map: Annotations panel](docs_ngweb/source/annotation.md#web-map-annotations-panel) * [Web Map: annotation editting](docs_ngweb/source/annotation.md#web-map-annotation-editting) * [Web Map: user’s permissions associated with annotations](docs_ngweb/source/annotation.md#web-map-user-s-permissions-associated-with-annotations) * [Managing users](docs_ngweb/source/users.md) * [Create new user group](docs_ngweb/source/users.md#create-new-user-group) * [Global permissions](docs_ngweb/source/users.md#global-permissions) * [How to find user identification number](docs_ngweb/source/users.md#how-to-find-user-identification-number) * [Disable or delete users](docs_ngweb/source/users.md#disable-or-delete-users) * [How to bind NextGIS ID to an existing Web GIS user](docs_ngweb/source/users.md#how-to-bind-nextgis-id-to-an-existing-web-gis-user) * [Create new local user](docs_ngweb/source/users.md#create-new-local-user) * [Update local user password](docs_ngweb/source/users.md#update-local-user-password) * [Permission system in NextGIS Web](docs_ngweb/source/permissions.md) * [Permissions and its types (scopes)](docs_ngweb/source/permissions.md#permissions-and-its-types-scopes) * [Access control list and the rules](docs_ngweb/source/permissions.md#access-control-list-and-the-rules) * [Permissions dependencies](docs_ngweb/source/permissions.md#permissions-dependencies) * [Computing Effective Permissions](docs_ngweb/source/permissions.md#computing-effective-permissions) * [Assigning permissions to users before their first sign in](docs_ngweb/source/permissions.md#assigning-permissions-to-users-before-their-first-sign-in) * [Spacial Reference Systems](docs_ngweb/source/ngw_srs.md) * [Custom Spacial Reference Systems](docs_ngweb/source/ngw_srs.md#custom-spacial-reference-systems) * [How to edit or delete SRS](docs_ngweb/source/ngw_srs.md#how-to-edit-or-delete-srs) * [Usage of additional SRS](docs_ngweb/source/ngw_srs.md#usage-of-additional-srs) * [Custom SRS support for external PostGIS Databases](docs_ngweb/source/ngw_srs.md#custom-srs-support-for-external-postgis-databases) * [Collector projects](docs_ngweb/source/collector.md) * [List of collectors](docs_ngweb/source/collector.md#list-of-collectors) * [Data collection project](docs_ngweb/source/collector.md#ngw-collector-create-project) * [Form for data collection](docs_ngweb/source/collector.md#form-for-data-collection) * [Form elements](docs_ngweb/source/form_elements.md) * [Label](docs_ngweb/source/form_elements.md#id2) * [Spacer](docs_ngweb/source/form_elements.md#id4) * [Tabs](docs_ngweb/source/form_elements.md#id6) * [Text edit](docs_ngweb/source/form_elements.md#text-edit) * [Checkbox](docs_ngweb/source/form_elements.md#checkbox) * [Date and time](docs_ngweb/source/form_elements.md#datetime) * [Coordinates](docs_ngweb/source/form_elements.md#id10) * [Distance meter](docs_ngweb/source/form_elements.md#distance) * [Average calculator](docs_ngweb/source/form_elements.md#average) * [Photo](docs_ngweb/source/form_elements.md#id14) * [System field](docs_ngweb/source/form_elements.md#sytem) * [Dropdown](docs_ngweb/source/form_elements.md#id17) * [Dual dropdown](docs_ngweb/source/form_elements.md#id19) * [Radio group](docs_ngweb/source/form_elements.md#radio) * [Dependent dropdowns](docs_ngweb/source/form_elements.md#dependet-dropdown) * [Import options](docs_ngweb/source/form_elements.md#import-options) * [Import options from CSV](docs_ngweb/source/form_elements.md#import-options-from-csv) * [Data collection on premise](docs_ngweb/source/data_collection_on_premise.md) * [Introduction](docs_ngweb/source/data_collection_on_premise.md#introduction) * [Administrator’s check-list](docs_ngweb/source/data_collection_on_premise.md#administrator-s-check-list) * [Trackers settings](docs_ngweb/source/trackers.md) * [Viewing tracks on a Web Map](docs_ngweb/source/trackers.md#viewing-tracks-on-a-web-map) * [Reports](docs_ngweb/source/trackers.md#reports) * [Export to GPX](docs_ngweb/source/trackers.md#export-to-gpx) * [Cross-origin resource sharing (CORS)](docs_ngweb/source/cors.md) * [Web GIS information](docs_ngweb/source/infowebgis.md) * [System information](docs_ngweb/source/infowebgis.md#system-information) * [Plan and features](docs_ngweb/source/infowebgis.md#plan-and-features) * [Storage](docs_ngweb/source/infowebgis.md#storage) * [Available updates](docs_ngweb/source/infowebgis.md#available-updates) * [Backup policy](docs_ngweb/source/infowebgis.md#backup-policy) * [Backups](docs_ngweb/source/infowebgis.md#backups) * [User activity log](docs_ngweb/source/infowebgis.md#user-activity-log) * [Metrics and analytics](docs_ngweb/source/analytics.md) * [Design customization](docs_ngweb/source/look.md) * [Web GIS name](docs_ngweb/source/look.md#web-gis-name) * [Font management](docs_ngweb/source/look.md#font-management) * [Upload a logo](docs_ngweb/source/look.md#upload-a-logo) * [Customize the design with CSS](docs_ngweb/source/look.md#customize-the-design-with-css) * [Custom CSS examples](docs_ngweb/source/look.md#custom-css-examples) * [Hide resource export](docs_ngweb/source/look.md#hide-resource-export) * [How to change the homepage address](docs_ngweb/source/look.md#how-to-change-the-homepage-address) * [How to change Web GIS domain](docs_ngweb/source/domain.md) * [Customize UI Elements (White label)](docs_ngweb/source/label.md) * [Company logo on Web Map](docs_ngweb/source/label.md#company-logo-on-web-map) * [Company URL](docs_ngweb/source/label.md#company-url) * [Help page](docs_ngweb/source/label.md#help-page) * [Support URL](docs_ngweb/source/label.md#support-url) * [Other items](docs_ngweb/source/label.md#other-items) * [NextGIS Web on-premise](docs_ngweb/source/ngw_op.md) * [System requirements](docs_ngweb/source/op_sys_req.md) * [Installation](docs_ngweb/source/op_install.md) * [Endpoints](docs_ngweb/source/op_install.md#endpoints) * [Install and configure Docker](docs_ngweb/source/op_install.md#install-and-configure-docker) * [Deploy Docker stack](docs_ngweb/source/op_install.md#deploy-docker-stack) * [Weekly maintenance and backup](docs_ngweb/source/op_install.md#weekly-maintenance-and-backup) * [Backups](docs_ngweb/source/op_backup.md) * [Backups location](docs_ngweb/source/op_backup.md#backups-location) * [Offline backup](docs_ngweb/source/op_backup.md#offline-backup) * [Online backup](docs_ngweb/source/op_backup.md#online-backup) * [Upgrade](docs_ngweb/source/op_upgrade.md) * [Upgrade to 3.3.x from 3.2.x](docs_ngweb/source/op_upgrade.md#upgrade-to-3-3-x-from-3-2-x) * [Upgrade to 3.2.x from 3.1.x](docs_ngweb/source/op_upgrade.md#upgrade-to-3-2-x-from-3-1-x) * [Upgrade to 3.1.x from 3.0.x](docs_ngweb/source/op_upgrade.md#upgrade-to-3-1-x-from-3-0-x) * [Upgrade to 3.0.x from 2.9.x](docs_ngweb/source/op_upgrade.md#upgrade-to-3-0-x-from-2-9-x) * [Upgrade to 2.9.x from 2.8.x](docs_ngweb/source/op_upgrade.md#upgrade-to-2-9-x-from-2-8-x) * [Upgrade to 2.8.x from 2.7.x](docs_ngweb/source/op_upgrade.md#upgrade-to-2-8-x-from-2-7-x) * [Upgrade to 2.7.x from 2.6.x](docs_ngweb/source/op_upgrade.md#upgrade-to-2-7-x-from-2-6-x) * [Upgrade to 2.6.x from 2.5.x](docs_ngweb/source/op_upgrade.md#upgrade-to-2-6-x-from-2-5-x) * [Upgrade to 2.5.x from earlier versions](docs_ngweb/source/op_upgrade.md#upgrade-to-2-5-x-from-earlier-versions) * [Configure](docs_ngweb/source/op_setup.md) * [Change endpoints](docs_ngweb/source/op_setup.md#change-endpoints) * [Migrating to another server](docs_ngweb/source/op_setup.md#migrating-to-another-server) * [Additional information](docs_ngweb/source/op_additional.md) * [Examples of docker-compose.yaml](docs_ngweb/source/op_additional.md#examples-of-docker-compose-yaml) * [Configuring reverse proxy: Nginx](docs_ngweb/source/op_additional.md#configuring-reverse-proxy-nginx) * [Changelog](docs_ngweb/source/sysadmin_updates.md) * [NextGIS Web 3D](docs_ngweb_3D/source/index.md) * [Introduction](docs_ngweb_3D/source/intro.md) * [Uploading 3D Models](docs_ngweb_3D/source/3D_models.md) * [Uploading and storing 3D datasets](docs_ngweb_3D/source/3D_tilesets.md) * [Uploading elevation data](docs_ngweb_3D/source/DEM.md) * [3D data Styles](docs_ngweb_3D/source/3D_style.md) * [General](docs_ngweb_3D/source/3D_style.md#general) * [3D Style](docs_ngweb_3D/source/3D_style.md#d-style) * [POI](docs_ngweb_3D/source/3D_style.md#poi) * [3D Model](docs_ngweb_3D/source/3D_style.md#d-model) * [Creation of 3D scenes](docs_ngweb_3D/source/3D_scenes.md) * [Rendering 3D scenes](docs_ngweb_3D/source/3D_scene_visualization.md) * [NextGIS Toolbox on-premise](docs_toolbox_prem/source/index.md) * [Overview](docs_toolbox_prem/source/intro.md) * [System requirements](docs_toolbox_prem/source/sys_req.md) * [Authorization](docs_toolbox_prem/source/auth.md) * [User interface](docs_toolbox_prem/source/ui.md) * [Tools](docs_toolbox_prem/source/tools.md) * [Administrator manual for NextGIS Toolbox on-premise](docs_toolbox_prem/source/admin.md) * [Select connection addresses](docs_toolbox_prem/source/admin.md#select-connection-addresses) * [NextGIS ID authorization](docs_toolbox_prem/source/admin.md#nextgis-id-authorization) * [Install and configure Docker](docs_toolbox_prem/source/admin.md#install-and-configure-docker) * [Install NextGIS Toolbox](docs_toolbox_prem/source/admin.md#install-nextgis-toolbox) * [Recommendations for reverse proxy setup](docs_toolbox_prem/source/admin.md#recommendations-for-reverse-proxy-setup) * [Operability check](docs_toolbox_prem/source/admin.md#operability-check) * [NextGIS GeoServices on-premise](docs_geoserv_prem/source/index.md) * [Introduction](docs_geoserv_prem/source/intro.md) * [System requirements](docs_geoserv_prem/source/sys_req.md) * [Minimum hardware requirements](docs_geoserv_prem/source/sys_req.md#minimum-hardware-requirements) * [Recommended OS](docs_geoserv_prem/source/sys_req.md#recommended-os) * [Authorization](docs_geoserv_prem/source/auth.md) * [Services](docs_geoserv_prem/source/services.md) * [Service groups](docs_geoserv_prem/source/services.md#service-groups) * [Add service](docs_geoserv_prem/source/services.md#add-service) * [Basemap](docs_geoserv_prem/source/services.md#id1) * [NextGIS Web](docs_geoserv_prem/source/services.md#nextgis-web) * [External TMS](docs_geoserv_prem/source/services.md#external-tms) * [Tileset](docs_geoserv_prem/source/services.md#tileset) * [Seeding](docs_geoserv_prem/source/services.md#seeding) * [Settings](docs_geoserv_prem/source/settings.md) * [Profile](docs_geoserv_prem/source/settings.md#profile) * [Users and user groups](docs_geoserv_prem/source/settings.md#users-and-user-groups) * [Basemap](docs_geoserv_prem/source/settings.md#basemap) * [Log](docs_geoserv_prem/source/settings.md#log) * [Storage](docs_geoserv_prem/source/settings.md#storage) * [About](docs_geoserv_prem/source/settings.md#about) * [Access permissions](docs_geoserv_prem/source/permissions.md) * [How different permission rules work together](docs_geoserv_prem/source/permissions.md#how-different-permission-rules-work-together) * [Installation (Administrator manual)](docs_geoserv_prem/source/admin.md) * [Introduction](docs_geoserv_prem/source/admin.md#introduction) * [Select endpoints](docs_geoserv_prem/source/admin.md#select-endpoints) * [Install and configure Docker](docs_geoserv_prem/source/admin.md#install-and-configure-docker) * [Install NextGIS GeoServices](docs_geoserv_prem/source/admin.md#install-nextgis-geoservices) * [Recommendations for reverse proxy setup](docs_geoserv_prem/source/admin.md#recommendations-for-reverse-proxy-setup) * [Operability check](docs_geoserv_prem/source/admin.md#nggs-prem-admin-check) * [Upgrade](docs_geoserv_prem/source/upgrade.md) * [Upgrade to 2.26.x from 2.25.x](docs_geoserv_prem/source/upgrade.md#upgrade-to-2-26-x-from-2-25-x) * [Upgrade to 2.25.x from 2.24.x](docs_geoserv_prem/source/upgrade.md#upgrade-to-2-25-x-from-2-24-x) * [Upgrade to 2.24.x from 2.23.x](docs_geoserv_prem/source/upgrade.md#upgrade-to-2-24-x-from-2-23-x) * [Upgrade to 2.23.x from 2.22.x](docs_geoserv_prem/source/upgrade.md#upgrade-to-2-23-x-from-2-22-x) * [Upgrade to 2.22.x from 2.21.x](docs_geoserv_prem/source/upgrade.md#upgrade-to-2-22-x-from-2-21-x) * [Upgrade to 2.21.x from 2.20.x](docs_geoserv_prem/source/upgrade.md#upgrade-to-2-21-x-from-2-20-x) * [Upgrade to 2.20.x from 2.19.x](docs_geoserv_prem/source/upgrade.md#upgrade-to-2-20-x-from-2-19-x) * [Upgrade to 2.19.x from 2.18.x](docs_geoserv_prem/source/upgrade.md#upgrade-to-2-19-x-from-2-18-x) * [Upgrade to 2.18.x from 2.17.x](docs_geoserv_prem/source/upgrade.md#upgrade-to-2-18-x-from-2-17-x) * [Upgrade to 2.17.x from 2.16.1](docs_geoserv_prem/source/upgrade.md#upgrade-to-2-17-x-from-2-16-1) * [For versions 2.16.1 and below](docs_geoserv_prem/source/upgrade.md#for-versions-2-16-1-and-below) * [Changelog](docs_geoserv_prem/source/changelog.md) * [NextGIS ID](docs_ngid/source/index.md) * [Introduction](docs_ngid/source/intro.md) * [Overview](docs_ngid/source/ngidop.md) * [Authorization and profile](docs_ngid/source/ngidop.md#authorization-and-profile) * [Team](docs_ngid/source/ngidop.md#team) * [OAuth applications](docs_ngid/source/ngidop.md#oauth-applications) * [Setting up LDAP](docs_ngid/source/ngidop.md#setting-up-ldap) * [NextGIS ID on-premise identificator](docs_ngid/source/ngidop.md#nextgis-id-on-premise-identificator) * [Plugins for QGIS](docs_ngqgis/source/plugins.md) * [Install plugins](docs_ngqgis/source/install_plugin.md) * [Update plugins](docs_ngqgis/source/update_plugins.md) * [Check installed verison of a plugin](docs_ngqgis/source/update_plugins.md#check-installed-verison-of-a-plugin) * [Gather logs in QGIS](docs_ngqgis/source/logs.md) * [Log messages](docs_ngqgis/source/logs.md#log-messages) * [Capture outgoing requests in QGIS](docs_ngqgis/source/logs.md#capture-outgoing-requests-in-qgis) * [Capturing GDAL logs for QGIS on Windows](docs_ngqgis/source/logs.md#capturing-gdal-logs-for-qgis-on-windows) * [QuickMapServices: most downloaded QGIS plugin](docs_ngqgis/source/qms.md) * [How to add basemaps and other services to QGIS](docs_ngqgis/source/qms.md#how-to-add-basemaps-and-other-services-to-qgis) * [Settings](docs_ngqgis/source/qms.md#settings) * [IdentifyPlus](docs_ngqgis/source/identifyplus.md) * [NextGIS EasyQuery](docs_ngqgis/source/easyquery.md) * [Installation](docs_ngqgis/source/easyquery.md#installation) * [Usage](docs_ngqgis/source/easyquery.md#usage) * [Digitizr](docs_ngqgis/source/digitizr.md) * [MOLUSCE](docs_ngqgis/source/molusce.md) * [How to prepare input data](docs_ngqgis/source/molusce.md#how-to-prepare-input-data) * [Loading data and model training](docs_ngqgis/source/molusce.md#loading-data-and-model-training) * [Cellular Automata Simulation](docs_ngqgis/source/molusce.md#cellular-automata-simulation) * [Validation](docs_ngqgis/source/molusce.md#validation) * [Geometry Paster](docs_ngqgis/source/geom_paster.md) * [OSMInfo](docs_ngqgis/source/osminfo.md) * [Feature identification](docs_ngqgis/source/osminfo.md#feature-identification) * [Feature context menu](docs_ngqgis/source/osminfo.md#feature-context-menu) * [Search OpenStreetMap features](docs_ngqgis/source/osminfo.md#search-openstreetmap-features) * [Plugin settings](docs_ngqgis/source/osminfo.md#plugin-settings) * [Click-Fu](docs_ngqgis/source/clickfu.md) * [DumpLoadField](docs_ngqgis/source/dumploadfield.md) * [Add text field to vector layer attributes](docs_ngqgis/source/dumploadfield.md#add-text-field-to-vector-layer-attributes) * [Download text values of an attribute](docs_ngqgis/source/dumploadfield.md#download-text-values-of-an-attribute) * [QTiles](docs_ngqgis/source/qtiles.md) * [Connect Points](docs_ngqgis/source/connectpoints.md) * [Copy_Coords](docs_ngqgis/source/copycoords.md) * [Points2One](docs_ngqgis/source/points2one.md) * [Join lines](docs_ngqgis/source/joinlines.md) * [MultiQML](docs_ngqgis/source/multiqml.md) * [Quickly save default QML](docs_ngqgis/source/quicksaveqml.md) * [NextGIS OGRStyle](docs_ngqgis/source/ogrstyle.md) * [Send2GE](docs_ngqgis/source/send2ge.md) * [How to open a location from QGIS in Google Earth](docs_ngqgis/source/send2ge.md#how-to-open-a-location-from-qgis-in-google-earth) * [OSMPoly_export](docs_ngqgis/source/osmpoly_export.md) * [Shortcut Manager](docs_ngqgis/source/shortcut.md) * [ReconstructLine](docs_ngqgis/source/reconstructline.md) * [Wurman Dots](docs_ngqgis/source/wurman_dots.md) * [QGIS DevTools — debugging QGIS plugins](docs_ngqgis/source/devtools.md) * [Preface](docs_ngqgis/source/devtools.md#preface) * [Set up QGIS](docs_ngqgis/source/devtools.md#set-up-qgis) * [Install Python debugger extension in VS Code](docs_ngqgis/source/devtools.md#install-python-debugger-extension-in-vs-code) * [Debug a plugin](docs_ngqgis/source/devtools.md#debug-a-plugin) * [Debug a script](docs_ngqgis/source/devtools.md#debug-a-script) * [Conclusion](docs_ngqgis/source/devtools.md#conclusion) * [NextGIS Toolbox](docs_ngqgis/source/toolbox.md) * [API key](docs_ngqgis/source/toolbox.md#api-key) * [NextGIS Connect](https://docs.nextgis.com/docs_ngconnect/source/index.html) * [NextGIS QGIS](docs_ngqgis/source/index.md) * [Plugins for QGIS](docs_ngqgis/source/plugins.md) * [Install plugins](docs_ngqgis/source/install_plugin.md) * [Update plugins](docs_ngqgis/source/update_plugins.md) * [Gather logs in QGIS](docs_ngqgis/source/logs.md) * [QuickMapServices: most downloaded QGIS plugin](docs_ngqgis/source/qms.md) * [IdentifyPlus](docs_ngqgis/source/identifyplus.md) * [NextGIS EasyQuery](docs_ngqgis/source/easyquery.md) * [Digitizr](docs_ngqgis/source/digitizr.md) * [MOLUSCE](docs_ngqgis/source/molusce.md) * [Geometry Paster](docs_ngqgis/source/geom_paster.md) * [OSMInfo](docs_ngqgis/source/osminfo.md) * [Click-Fu](docs_ngqgis/source/clickfu.md) * [DumpLoadField](docs_ngqgis/source/dumploadfield.md) * [QTiles](docs_ngqgis/source/qtiles.md) * [Connect Points](docs_ngqgis/source/connectpoints.md) * [Copy_Coords](docs_ngqgis/source/copycoords.md) * [Points2One](docs_ngqgis/source/points2one.md) * [Join lines](docs_ngqgis/source/joinlines.md) * [MultiQML](docs_ngqgis/source/multiqml.md) * [Quickly save default QML](docs_ngqgis/source/quicksaveqml.md) * [NextGIS OGRStyle](docs_ngqgis/source/ogrstyle.md) * [Send2GE](docs_ngqgis/source/send2ge.md) * [OSMPoly_export](docs_ngqgis/source/osmpoly_export.md) * [Shortcut Manager](docs_ngqgis/source/shortcut.md) * [ReconstructLine](docs_ngqgis/source/reconstructline.md) * [Wurman Dots](docs_ngqgis/source/wurman_dots.md) * [QGIS DevTools — debugging QGIS plugins](docs_ngqgis/source/devtools.md) * [NextGIS Toolbox](docs_ngqgis/source/toolbox.md) * [NextGIS Connect](https://docs.nextgis.com/docs_ngconnect/source/index.html) * [NextGIS QGIS](docs_ngqgis/source/intro.md) * [NextGIS Connect for QGIS](docs_ngconnect/source/index.md) * [Overview](docs_ngconnect/source/ngconnect.md) * [Installation](docs_ngconnect/source/ngc_install.md) * [Create a connection](docs_ngconnect/source/ngc_install.md#create-a-connection) * [Keycloak authentication in NextGIS QGIS](docs_ngconnect/source/ngc_install.md#keycloak-authentication-in-nextgis-qgis) * [Plugin interface](docs_ngconnect/source/panel.md) * [Refresh](docs_ngconnect/source/panel.md#refresh) * [Display in browser](docs_ngconnect/source/panel.md#display-in-browser) * [Context Menu](docs_ngconnect/source/panel.md#context-menu) * [Main Settings](docs_ngconnect/source/ngc_settings.md) * [Connections](docs_ngconnect/source/ngc_settings.md#connections) * [Uploading](docs_ngconnect/source/ngc_settings.md#uploading) * [Resources](docs_ngconnect/source/ngc_settings.md#resources) * [Searching](docs_ngconnect/source/ngc_settings.md#searching) * [Synchronization](docs_ngconnect/source/ngc_settings.md#synchronization) * [Cache settings](docs_ngconnect/source/ngc_settings.md#cache-settings) * [Other settings](docs_ngconnect/source/ngc_settings.md#other-settings) * [Proxy server settings](docs_ngconnect/source/ngc_settings.md#proxy-server-settings) * [Search and filter](docs_ngconnect/source/filter.md) * [Search by name](docs_ngconnect/source/filter.md#search-by-name) * [Search by URL](docs_ngconnect/source/filter.md#search-by-url) * [Filter by expression](docs_ngconnect/source/filter.md#filter-by-expression) * [Metadata search](docs_ngconnect/source/filter.md#metadata-search) * [Resource types](docs_ngconnect/source/filter.md#resource-types) * [How to find identification numbers](docs_ngconnect/source/filter.md#how-to-find-identification-numbers) * [Upload data to the cloud storage](docs_ngconnect/source/ngc_data_transfer.md) * [Resource types](docs_ngconnect/source/ngc_data_transfer.md#resource-types) * [Upload entire QGIS project](docs_ngconnect/source/ngc_data_transfer.md#upload-entire-qgis-project) * [Upload vector data](docs_ngconnect/source/ngc_data_transfer.md#upload-vector-data) * [Upload raster data](docs_ngconnect/source/ngc_data_transfer.md#upload-raster-data) * [Upload basemap](docs_ngconnect/source/ngc_data_transfer.md#upload-basemap) * [Working with cloud data](docs_ngconnect/source/resources.md) * [From Web GIS to QGIS](docs_ngconnect/source/resources.md#from-web-gis-to-qgis) * [Add vector layer to QGIS](docs_ngconnect/source/resources.md#add-vector-layer-to-qgis) * [Lookup tables](docs_ngconnect/source/resources.md#lookup-tables) * [Synchronization with Web GIS](docs_ngconnect/source/resources.md#synchronization-with-web-gis) * [Open a project created on another device](docs_ngconnect/source/resources.md#open-a-project-created-on-another-device) * [Edit data](docs_ngconnect/source/edit.md) * [Multi user editing](docs_ngconnect/source/edit.md#multi-user-editing) * [Resolve edit confilcts](docs_ngconnect/source/edit.md#resolve-edit-confilcts) * [Change layer structure](docs_ngconnect/source/edit.md#change-layer-structure) * [Edit layer with WFS](docs_ngconnect/source/edit.md#edit-layer-with-wfs) * [Update data](docs_ngconnect/source/edit.md#update-data) * [Update style](docs_ngconnect/source/edit.md#update-style) * [Copy style from Web GIS](docs_ngconnect/source/edit.md#copy-style-from-web-gis) * [Export to file](docs_ngconnect/source/export.md) * [Save layer as file](docs_ngconnect/source/export.md#save-layer-as-file) * [Save vector layer style](docs_ngconnect/source/export.md#save-vector-layer-style) * [Manage resources](docs_ngconnect/source/manage.md) * [Create resource group](docs_ngconnect/source/manage.md#create-resource-group) * [Create Web Map from a layer](docs_ngconnect/source/manage.md#create-web-map-from-a-layer) * [Create empty vector layer](docs_ngconnect/source/manage.md#create-empty-vector-layer) * [Create service](docs_ngconnect/source/manage.md#create-service) * [Duplicate resource](docs_ngconnect/source/manage.md#duplicate-resource) * [Delete resource](docs_ngconnect/source/manage.md#delete-resource) * [Troubleshooting](docs_ngconnect/source/troubleshooting.md) * [Problems connecting to Web GIS (NGW)](docs_ngconnect/source/troubleshooting.md#problems-connecting-to-web-gis-ngw) * [Issues uploading data](docs_ngconnect/source/troubleshooting.md#issues-uploading-data) * [NextGIS Mobile](docs_ngmobile/source/index.md) * [Introduction](docs_ngmobile/source/intro.md) * [About NextGIS Mobile](docs_ngmobile/source/intro.md#about-nextgis-mobile) * [Hardware and software requirements](docs_ngmobile/source/intro.md#hardware-and-software-requirements) * [Installation](docs_ngmobile/source/install.md) * [Authorization](docs_ngmobile/source/auth.md) * [Via my.nextgis.com](docs_ngmobile/source/auth.md#via-my-nextgis-com) * [Via on-premise (NGIDOP)](docs_ngmobile/source/auth.md#via-on-premise-ngidop) * [User interface (UI)](docs_ngmobile/source/main.md) * [Main screen](docs_ngmobile/source/main.md#main-screen) * [Layers tree](docs_ngmobile/source/main.md#layers-tree) * [Features table](docs_ngmobile/source/main.md#features-table) * [Useful features](docs_ngmobile/source/main.md#useful-features) * [Settings dialogue](docs_ngmobile/source/settings.md) * [General](docs_ngmobile/source/settings.md#ngmobile-settings-gen) * [Map](docs_ngmobile/source/settings.md#ngmobile-settings-map) * [Restore layers](docs_ngmobile/source/settings.md#restore-layers) * [Location](docs_ngmobile/source/settings.md#ngmobile-settings-loc) * [My tracks](docs_ngmobile/source/settings.md#ngmobile-settings-tracks) * [Adding layers](docs_ngmobile/source/load_geodata.md) * [Creating new vector layer](docs_ngmobile/source/load_geodata.md#creating-new-vector-layer) * [Creating vector layer from GeoJSON data](docs_ngmobile/source/load_geodata.md#creating-vector-layer-from-geojson-data) * [Creating vector layer from Custom forms (NGFP)](docs_ngmobile/source/load_geodata.md#creating-vector-layer-from-custom-forms-ngfp) * [Creating raster layer from Tile cache (XYZ/TMS)](docs_ngmobile/source/load_geodata.md#creating-raster-layer-from-tile-cache-xyz-tms) * [Creating raster layer from Tile cache (NGRC)](docs_ngmobile/source/load_geodata.md#creating-raster-layer-from-tile-cache-ngrc) * [Creating raster layer from external geoservice](docs_ngmobile/source/load_geodata.md#creating-raster-layer-from-external-geoservice) * [Adding geodata from Web GIS](docs_ngmobile/source/load_geodata.md#adding-geodata-from-web-gis) * [Editing layers](docs_ngmobile/source/editing.md) * [Switching to Edit mode](docs_ngmobile/source/editing.md#switching-to-edit-mode) * [The Editing Toolbar](docs_ngmobile/source/editing.md#the-editing-toolbar) * [Adding features](docs_ngmobile/source/editing.md#adding-features) * [Adding current location](docs_ngmobile/source/editing.md#adding-current-location) * [Adding line or polygon by walk](docs_ngmobile/source/editing.md#adding-line-or-polygon-by-walk) * [Editing a geometry](docs_ngmobile/source/editing.md#editing-a-geometry) * [Editing attributes](docs_ngmobile/source/editing.md#editing-attributes) * [Tracks](docs_ngmobile/source/tracks.md) * [Settings](docs_ngmobile/source/tracks.md#settings) * [Recording a track](docs_ngmobile/source/tracks.md#recording-a-track) * [Managing recorded tracks](docs_ngmobile/source/tracks.md#managing-recorded-tracks) * [Exporting data](docs_ngmobile/source/share.md) * [Exporting data in GeoJSON](docs_ngmobile/source/share.md#exporting-data-in-geojson) * [Exporting attachments](docs_ngmobile/source/share.md#exporting-attachments) * [Exporting tracks in GPX](docs_ngmobile/source/share.md#exporting-tracks-in-gpx) * [Layer settings](docs_ngmobile/source/layer_settings.md) * [Vector layer settings](docs_ngmobile/source/layer_settings.md#vector-layer-settings) * [Raster layer settings](docs_ngmobile/source/layer_settings.md#raster-layer-settings) * [Integration with NextGIS Web](docs_ngmobile/source/ngw_integration.md) * [Add a layer (vector/raster) from Web GIS](docs_ngmobile/source/ngw_integration.md#add-a-layer-vector-raster-from-web-gis) * [Upload layer to Web GIS](docs_ngmobile/source/ngw_integration.md#upload-layer-to-web-gis) * [Parameters for synchronization with Web GIS](docs_ngmobile/source/ngw_integration.md#parameters-for-synchronization-with-web-gis) * [Add Web GIS connection](docs_ngmobile/source/ngw_integration.md#add-web-gis-connection) * [Add connection to NextGIS Web on-premise](docs_ngmobile/source/ngw_integration.md#add-connection-to-nextgis-web-on-premise) * [Edit Web GIS connection](docs_ngmobile/source/ngw_integration.md#edit-web-gis-connection) * [Delete Web GIS connection](docs_ngmobile/source/ngw_integration.md#delete-web-gis-connection) * [Logging](docs_ngmobile/source/log.md) * [How to get useful logs](docs_ngmobile/source/log.md#how-to-get-useful-logs) * [Enable logging](docs_ngmobile/source/log.md#enable-logging) * [Send log or save as file](docs_ngmobile/source/log.md#send-log-or-save-as-file) * [Solving problem (Q&A)](docs_ngmobile/source/faq_ngmobile.md) * [Application sign in](docs_ngmobile/source/faq_ngmobile.md#application-sign-in) * [Other issues](docs_ngmobile/source/faq_ngmobile.md#other-issues) * [Simulation of location data](docs_ngmobile/source/mock_location.md) * [Changelog](docs_ngmobile/source/changelog.md) * [NextGIS Collector](docs_collector/source/index.md) * [Installation](docs_collector/source/install.md) * [Hardware and software requirements](docs_collector/source/install.md#hardware-and-software-requirements) * [Authorization](docs_collector/source/auth.md) * [Via cloud server (my.nextgis.com)](docs_collector/source/auth.md#via-cloud-server-my-nextgis-com) * [Via on-premise (NGIDOP)](docs_collector/source/auth.md#via-on-premise-ngidop) * [Change user](docs_collector/source/auth.md#change-user) * [Working with projects](docs_collector/source/operations.md) * [Offline data collection](docs_collector/source/operations.md#offline-data-collection) * [Basic operations](docs_collector/source/map_tools.md) * [Add a point](docs_collector/source/map_tools.md#add-a-point) * [Edit a point on the map](docs_collector/source/map_tools.md#edit-a-point-on-the-map) * [Add a line](docs_collector/source/map_tools.md#add-a-line) * [Editing lines](docs_collector/source/map_tools.md#editing-lines) * [Add a polygon](docs_collector/source/map_tools.md#add-a-polygon) * [Editing polygons](docs_collector/source/map_tools.md#editing-polygons) * [Zoom and current location](docs_collector/source/map_tools.md#zoom-and-current-location) * [Tracks](docs_collector/source/map_tools.md#tracks) * [Synchronization](docs_collector/source/map_tools.md#synchronization) * [Advanced tools](docs_collector/source/adv_tools.md) * [How to share backup](docs_collector/source/adv_tools.md#how-to-share-backup) * [Logging](docs_collector/source/adv_tools.md#logging) * [Simulation of location data](docs_collector/source/adv_tools.md#simulation-of-location-data) * [Changelog](docs_collector/source/changelog.md) * [NextGIS Tracker](docs_ngtracker/source/index.md) * [What the app is for](docs_ngtracker/source/intro.md) * [Installation](docs_ngtracker/source/install.md) * [Setting up](docs_ngtracker/source/setting_up.md) * [Track recording settings](docs_ngtracker/source/setting_up.md#track-recording-settings) * [Setting up sending tracks to Web GIS](docs_ngtracker/source/setting_up.md#setting-up-sending-tracks-to-web-gis) * [User interface](docs_ngtracker/source/ui.md) * [Main screen](docs_ngtracker/source/ui.md#main-screen) * [Settings](docs_ngtracker/source/ui.md#settings) * [Track recording](docs_ngtracker/source/rec_track.md) * [Export track as GPX](docs_ngtracker/source/export.md) * [Viewing tracks on a Web Map in Web GIS](docs_ngtracker/source/view_webgis.md) * [NextGIS GeoServices](docs_geoservices/source/index.md) * [Introduction](docs_geoservices/source/intro.md) * [Authorization](docs_geoservices/source/auth.md) * [Basemap services](docs_geoservices/source/basemap_tiles.md) * [Reissue of API key](docs_geoservices/source/reissue_api_key.md) * [NextGIS Web for developers](docs_ngweb_dev/doc/toc.md) * [NextGIS Web REST API](docs_ngweb_dev/doc/developer/toc.md) * [Authorization](docs_ngweb_dev/doc/developer/auth.md) * [Managing users](docs_ngweb_dev/doc/developer/auth.md#managing-users) * [Managing groups](docs_ngweb_dev/doc/developer/auth.md#managing-groups) * [Automatically creating users](docs_ngweb_dev/doc/developer/auth.md#automatically-creating-users) * [Get resource permissions](docs_ngweb_dev/doc/developer/auth.md#get-resource-permissions) * [Resources](docs_ngweb_dev/doc/developer/resource.md) * [Create resource](docs_ngweb_dev/doc/developer/create.md) * [File upload](docs_ngweb_dev/doc/developer/file_upload.md) * [Editing](docs_ngweb_dev/doc/developer/change.md) * [Miscellaneous](docs_ngweb_dev/doc/developer/misc.md) * [Error reporting](docs_ngweb_dev/doc/developer/error_report.md) * [Vector layer data types](docs_ngweb_dev/doc/developer/vector_data_types.md) * [Python API library](docs_ngweb_dev/doc/developer/python_api.md) * [ogr2ogr](docs_ngweb_dev/doc/developer/ogr2ogr.md) * [NextGIS Web internals](docs_ngweb_dev/doc/internal/toc.md) * [Components and environment](docs_ngweb_dev/doc/internal/component.md) * [Modern JavaScript](docs_ngweb_dev/doc/internal/jsrealm.md) * [Long-running API requests](docs_ngweb_dev/doc/internal/lunkwill.md) * [Internationalization and localization](docs_ngweb_dev/doc/internal/i18n.md) * [Testing framework](docs_ngweb_dev/doc/internal/test.md) * [Package versioning](docs_ngweb_dev/doc/internal/versioning.md) * [Database migrations](docs_ngweb_dev/doc/internal/migration.md) * [URLs and routes](docs_ngweb_dev/doc/internal/url_route.md) * [Describing API](docs_ngweb_dev/doc/internal/apitype.md) * [Code formatting](docs_ngweb_dev/doc/internal/code_formatting.md) * [NextGIS Web administrator’s guide](docs_ngweb_dev/doc/admin/toc.md) * [Installation](docs_ngweb_dev/doc/admin/install.md) * [Configuration](docs_ngweb_dev/doc/admin/configure.md) * [Backup and restore](docs_ngweb_dev/doc/admin/backup_restore.md) * [Upgrade](docs_ngweb_dev/doc/admin/upgrade.md) * [NextGIS QMS Service API](qms_srv_dev/doc/api.md) * [API Root](qms_srv_dev/doc/api.md#api-root) * [Geo Service List](qms_srv_dev/doc/api.md#geo-service-list) * [Geo Service filtered list](qms_srv_dev/doc/api.md#geo-service-filtered-list) * [Geo Service Details](qms_srv_dev/doc/api.md#geo-service-details) * [Geo Service Icon](qms_srv_dev/doc/api.md#geo-service-icon) * [NextGIS Tracker hub for developers](tracker_hub_dev/source/main.md) * [Send location packet](tracker_hub_dev/source/main.md#send-location-packet) * [Check tracker is registered at tracker hub](tracker_hub_dev/source/main.md#check-tracker-is-registered-at-tracker-hub) * [Get track points](tracker_hub_dev/source/main.md#get-track-points) * [Short output 1](tracker_hub_dev/source/main.md#short-output-1) * [Short output 2](tracker_hub_dev/source/main.md#short-output-2) * [Full output](tracker_hub_dev/source/main.md#full-output) # solar_hours.html.md # Sunlight hours prediction Predict the number of daily sunlight hours for a specific latitude and longitude. Inputs: * Latitude of the location (WGS84, decimal degrees); * Longitude of the location (WGS84, decimal degrees); * Period for which to calculate sunlight hours. Fill in one of the fields: * Year, or * Date. Outputs: If a date is selected: * Text output: number of sunlight hours for the selected date. If a year is selected: * Text output: predicted average number of sunlight hours per day; * CSV table with sunlight hours for every date of the year; * PNG diagram of sunlight hours for the selected period. Launch the tool: [https://toolbox.nextgis.com/t/solar_hours](https://toolbox.nextgis.com/t/solar_hours) Example: ![image](docs_toolbox/source/_static/solar_hours_result.png) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # spatial_join.html.md # Spatial Join (Join by location) Insert into layer 1 attribute from intersects feature in layer 2 Inputs: * Vector layer 1 * Polygon layer 2 * Name of attibute in layer 2 Outputs: * ZIP with Shapefile layer 1 with added attribute * QML style file ![image](docs_toolbox/source/_static/spatial_join.png)![image](docs_toolbox/source/_static/spatial_join_result.png) Launch the tool: [https://toolbox.nextgis.com/t/spatial_join](https://toolbox.nextgis.com/t/spatial_join) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # spectral_indices.html.md # Compute spectral index Compute normalized difference spectral indices (NDVI, NDWI, NBR) from Sentinel-2 or Landsat time series. Produces temporal aggregates (mean, max, min, stddev, range) aligned to the terrain analysis grid. Inputs: * Satellite Imagery Package - ZIP file from [Search & download Planetary Computer](https://toolbox.nextgis.com/t/planetary_search) containing Sentinel-2 or Landsat band GeoTIFFs and manifest.json with time_series; * Spectral Index. Type of normalized difference index to compute: - NDVI (Vegetation) (NDVI); - NDWI (Water) (NDWI); - NBR (Burn Ratio) (NBR); * Generate series - tick to generate series rasters (max, min, std etc.) if multiple inputs are provided. Outputs: * ZIP archive with spectral index aggregates, statistics, and manifest; * Human-readable summary of the spectral index results; * JSON manifest string describing all outputs. Launch the tool: [https://toolbox.nextgis.com/t/spectral_indices](https://toolbox.nextgis.com/t/spectral_indices) Example: ![image](docs_toolbox/source/_static/spectral_indices_input_en.png)![image](docs_toolbox/source/_static/spectral_indices_result_en.png) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # split180.html.md # Split at 180th meridian Split vector layer feature geometries at antimeridian (180th meridian). Such split is often required for correct use of such feature in different GIS software and for correct visualization on online maps. ![image](docs_toolbox/source/_static/split180tiles_en.png) Inputs: * Vector layer in a GDAL-supported format, e.g. GeoPackage, GeoJSON, MapInfo TAB, ESRI Shapefile (the latter two should be in ZIP archive). Outputs: * Vector layer in GeoPackage. To make sure the layer is correctly displayed on the Web Map, set the adapter to “Tiles”. Launch the tool: [https://toolbox.nextgis.com/t/split180](https://toolbox.nextgis.com/t/split180) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # split_to_equal.html.md # Split into equal parts Splits polygon layer into equal parts. #### NOTE Doesn’t process multipolygons. You can first [transform Multipart to singleparts](https://toolbox.nextgis.com/t/qgis_multiparttosingleparts). Inputs: * Source file. Vector polygon layer in one of the formats, supported by GDAL, e.g. Shapefile in ZIP-archive, GeoJSON, GeoPackage. * Number of parts. Specify, into how many parts source polygon should be split. Output: * Polygon GeoPackaged in a ZIP archive. Launch the tool: [https://toolbox.nextgis.com/t/split_to_equal](https://toolbox.nextgis.com/t/split_to_equal) ![image](docs_toolbox/source/_static/split_to_equal_result.png) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # split_to_rect.html.md # Split into rectangles and calculate their number Splits polygon layer into equal rectangular parts and calculates number of rectangles. Layer can consist of several polygons, number of rectangles will be calculated for each of them. Inputs: * Shapefile - polygonal layer in ESRI Shapefile format, for which the number of rectangles will be calculated. Should be packed in ZIP-archive. Attributes should contain empty integer field, where the results of calculation will be recorded. Layer CRS must be use meters, EPSG:4326 is not suitable. * Length of rectangle - longer side of rectangle, should be specified in meters. * Width of rectangle - shorter side of rectangle, should be specified in meters. * Field name - name of the string field in initial layer, where to write the number of calculated rectangles for each polygon. * Percentage of not filled area – please, specify percentage. Percentage is calculated out of rectangle area and will be used to form a buffer around each rectangle. Outputs: * ZIP-archive with modified Shapefile, with a number of rectangles recorded in attribute table. Launch the tool: [https://toolbox.nextgis.com/t/split_to_rect](https://toolbox.nextgis.com/t/split_to_rect) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # splitcomplex.html.md # Split Complex Polygons Splits polygons with too many vertices into smaller parts. Each part is a separate feature that keeps all the attributes of the split polygon. Inputs: * Source file - Vector layer in one of the formats supported by GDAL, e.g. GeoJSON, GeoPackage, zipped Shapefile. * Max count of vertices - Maximum number of vertices allowed in a polygon. Default is 200000. Outputs: * GeoPackage file with split polygons. Launch the tool: [https://toolbox.nextgis.com/t/splitcomplex](https://toolbox.nextgis.com/t/splitcomplex) ![image](docs_toolbox/source/_static/splitcomplex_input_en.png)![image](docs_toolbox/source/_static/splitcomplex_result_en.png) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # spreadsheet2layer.html.md # Google Sheets to Web GIS Tool creates or updates point vector layer in NextGIS Web using Google Sheets. Spreadsheet must be accessible for reading via shared link. There are two ways to store coordinates for this tool: 1. Coumns ‘lat’ and ‘lon’, Coordinate reference system - WGS84. 2. Google maps links to locations. Input: * Web GIS link, example: [https://sandbox.nextgis.com](https://sandbox.nextgis.com). * Web GIS user login. User must have writing access. * Web GIS User password. * Vector layer ID to update. Leave blank to create new vector layer. * Resource group ID. Specify the group to upload layer to. Use only if creating a new layer. * Google Sheets ID (e.g. ‘1cKvjCMBZajaortAkdQqVwQ_06LuLm3bHyvybJgmAeQg’) or URL. This link should be accessible for data reading. * Mode: by default the tool appends data to existing layer or creates a new layer (ADD mode); select REPLACE to overwrite an existing layer (ID specified above). Output: * Created/updated layer in Web GIS Watch the video on [youtube](https://youtu.be/mEhUaRTFl3M). Launch the tool: [https://toolbox.nextgis.com/t/spreadsheet2layer](https://toolbox.nextgis.com/t/spreadsheet2layer) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # styles.html.md # How to create map styles for data visualization Style is a special type of resource necessary to visualize geodata on [Web Map](webmap_create.md#ngcom-webmap-create) or with [WMS service](data_services.md#ngcom-wms-service) When displaying a data layer on a Web Map or publishing it using [WMS](../../glossary.md#term-WMS) protocol, you actually use its style which describes how geodata is visually presented on a map. The only exception are [WMS layers](data_connect.md#ngcom-wms-layer) and [TMS layers](data_connect.md#ngcom-tms-layer) which don’t need you to create Styles, because the information about their visualization is passed to [Web GIS](description.md#ngcom-description) from the external server. Web GIS supports several types of Styles. * For [Vector](data_upload.md#ngcom-vector-layer) and [PostGIS](data_connect.md#ngcom-postgis-layer) layers you can create [MapServer style](#ngcom-mapserver-style) or [QGIS vector style](#ngcom-qgis-style). * For [Raster layers](data_upload.md#ngcom-raster-layer) you can create [Raster style](#ngcom-raster-style) or [QGIS raster style](#ngcom-qgis-style). To create a default QGIS style, just press the blue button on the resource page of the layer. ![image](docs_ngcom/source/_static/default_style_select_en.png) ## QGIS style 1. Open the Properties page of the layer for which you want to create a style; 2. Press **Create resource** and select **QGIS style**; 3. In the opened dialog, Go to QGIS style tab and upload a file in [QML](../../glossary.md#term-QML) format created with [QGIS](../../glossary.md#term-QGIS); 4. Press **Create** button. If Style is created successfully, you’ll see its name in Child resources pane of the relevant layer. ![image](docs_ngcom/source/_static/QGIS_style_select_en_2.png)![image](docs_ngcom/source/_static/QGIS_style_upload_en_2.png) You can type a custom name for the new style in the field Display name of the Resource tab. ![image](docs_ngcom/source/_static/QGIS_style_name_en_2.png) Simple vector styles can be edited directly from NextGIS Web (more about it [here](https://docs.nextgis.com/docs_ngweb/source/mapstyles.html#editing-qgis-style)). #### NOTE For Vector layers uploaded to Web GIS with desktop app QGIS a QGIS style is created automatically. ## MapServer style 1. Open the Properties page of a [Vector layer](data_upload.md#ngcom-vector-layer) or [PostGIS layer](data_connect.md#ngcom-postgis-layer) for which you want to create a style; 2. Press **Create resource** and select **MapServer style**; 3. Press **Create** button. If Style is created successfully, you’ll see its name in the Child resources pane of the relevant Vector layer or PostGIS layer. ![image](docs_ngcom/source/_static/mapserver_style_select_en_2.png) You can type a custom display name for the new style in the Resource tab and edit style parameters in the MapServer style tab. ![image](docs_ngcom/source/_static/mapserver_style_name_en_2.png) Examples of [MapServer](../../glossary.md#term-MapServer) style can be found [here](https://docs.nextgis.com/docs_ngweb/source/mapservertemplates.html). ## Raster style 1. Open the Properties page of [Raster layer](data_upload.md#ngcom-raster-layer) for which you want to create a style; 2. Press **Create resource** and select **Raster style**; 3. Press **Create** button. If Style is created successfully, you’ll see its name in Child resources pane of the relevant Raster layer. #### NOTE For Raster layers uploaded to Web GIS with desktop app QGIS a Raster style is created automatically. ![image](docs_ngcom/source/_static/raster_style_select_en_2.png) You can type a custom name for the new style in the field Display name of the Resource tab. ![image](docs_ngcom/source/_static/raster_style_create_en_2.png) Read more on how to create and edit Styles [here](../../docs_ngweb/source/mapstyles.md#ngw-style-create). # subscription.html.md # Subscription To view information on your subscription plan go to your [account](https://my.nextgis.com/subscription/). In this section you can: * Upgrade your plan, subscribe or renew subscription * Change subscription plan * Cancel subscription ## Upgrade subscription plan New accounts are created on Free subscription plan. To access full functionality of the platform and get technical support you need to subscribe. In the [Subscription](https://my.nextgis.com/subscription/) section of your account click on **Upgrade**. ![image](docs_ngcom/source/_static/my_sub_upgrade_en.png) On the next page choose how you wish to pay: monthly or annually. Pick the desired subscription plan and click “Select”. On the next step check your account information and selected subscription, enter a discount code if you have one, then press **Pay** to enter card details. ![image](docs_ngcom/source/_static/my_subscribe_en_2.png) Follow the same steps to switch from Mini to Premium subscription. ## Cancel subscription To cancel subscription, go to the [Subscription](https://my.nextgis.com/subscription/) section of your account and press **Cancel**. On the next page you can read the conditions of the cancellation. After a subscription is cancelled, it continues to be active until the end of already payed period. During that time you can renew it. After the payed period ends, you’ll be switched to Free plan. #### IMPORTANT To keep access to your Web GIS after canceling the subscription, make sure that it fits the [Free plan](https://nextgis.com/pricing-base/#end-of-subscription) conditions. If by the time the payed period ends your Web GIS exceeds some limits, e.g. for the number of enabled users or storage space, or user permissions are set up, it will be blocked. ![image](docs_ngcom/source/_static/my_sub_cancel_en.png) # swift_api.html.md # API Documentation # sys_req.html.md # System requirements To install NextGIS GeoServices On-Premise you need a physical or virtual server. It is possible to use the same server where NextGIS Web and NextGIS ID are deployed, but to avoid conflict the server must not be used for other tasks (as file or mail server, PostGIS server etc). #### NOTE NextGIS team can perform the installation or upgrade remotely, if you provide remote access that fits the [requirements](https://docs.nextgis.com/docs_ngweb/source/remote.html). ## Minimum hardware requirements Recommended configuration: * CPU: 4-core * RAM: 16 GiB * Storage: 250 GB SSD ## Recommended OS The server must have a Linux-based operational system allowing to install Docker Engine 23 and up, for example: * Ubuntu LTS 24.04, 22.04, 20.04 * Debian 12, 11 * CentOS 9 # sys_req.html.md # System requirements To install NextGIS Toolbox On-Premise you need a physical or virtual server. Recommended configuration: * CPU: 4-core * RAM: 16 GiB * Storage: 250 GB SSD The server must have a Linux-based operational system allowing to install Docker Engine 23 and up, for example: * Ubuntu LTS 24.04, 22.04, 20.04 * Debian 12, 11 * CentOS 9 It is possible to use the same server where NextGIS Web and NextGIS ID are deployed, but to avoid conflict the server must not be used for other tasks (as file or mail server, PostGIS server etc). #### NOTE NextGIS team can perform the installation or upgrade remotely, if you provide remote access that fits the [requirements](https://docs.nextgis.com/docs_ngweb/source/remote.html). # sysadmin_updates.html.md # Changelog This section describes the latest changes to the software. **3.3.0 released on 27 Jul 2026** * Interactive webmap editing and configuration in display mode. * New resource search page with advanced filtering capabilities. * AI-powered generation of feature filters from natural language queries. * Field configuration during vector layer creation. * Vector layers now support boolean fields. * Experimental support for JSON fields in vector layers. * Limited support for marking vector layer fields as mandatory. * Initial support for no-geometry layers. * Support for using public S3 buckets with external raster layers. * Enhanced raster layer preview with band configuration. * Improved CSV import for lookup tables with preview and column mapping. * Layer editing on webmaps enabled by default. * HTTP API for importing feature descriptions from ZIP archives. * Migrated from Webpack and Yarn to Rsbuild and pnpm. * GDAL 3.8, Python 3.12, and Node.js 22 are now the minimum required versions. **3.2.0 released on 21 Apr 2026** * The Gallery resource: a new way to organize resources for end users. * Support for feature filtering on webmaps and in the rendering HTTP API. * S3-based storage for external raster layers with read/write support. * Field value suggestions in feature layer filters. * RAT attribute support for raster layer identification. * Feature versioning enabled by default for new vector layers. * Improved resource table and actions UI. * Support for labels in user-defined SLD styles. * Support for upscaling tileset layers. * Automatic GeoTIFF compression predictor selection. * JPEG compression enabled by default for RGB(A) raster layer pyramids. * GPX export support for feature layers. * Improved export performance for layers with many fields. * Support for the Referer header in WMS and TMS client connections. * Option to disable TLS certificate verification for WMS connections. * Support for remote SRS in WMS client layers. * Built-in SRS catalog based on the Proj database. * Support for custom OnlineResource values in WMS client layers. * TypeScript upgraded to 6.0. * Ant Design upgraded to 6.2. **3.1.0 released on 21 Jan 2026** * Advanced feature table filtering capabilities. * Viewing feature versioning history in the UI. * Reverting versioned feature layers to previous states. * Ability to create vector layers from existing layers and versions. * Improved extent selector widget in webmap settings. * Display total and filtered feature counts in feature tables. * Dimmed out-of-scale-range layers in the tree on webmaps. * Improvements to the printable webmap legend. * Display measurement spatial reference system on webmaps. * Transactional HTTP API for feature attachments and descriptions. * Fixed PostGIS layer editing on webmaps. * SQLAlchemy library upgraded to 2.0. **3.0.0 released on 14 Oct 2025** * Many new feature editing tools on webmaps. * Improved swipe tool: vertical and horizontal swipes in any direction. * Maximum webmap zoom level increased to 24. * Geometry editing on feature pages. * Geometry tab on feature pages. * Zoom support for attachment preview. * Automatic HEIF-to-JPEG conversion for feature attachments. * Improved handling of image dimensions in descriptions. * Improved WMS client compatibility and performance. * Improved MVT generation performance. * GeoPackage 1.4 compatibility improvements. * Dropped support for GeoJSON response streaming. * Dropped support for GeoJSON range requests. * React library upgraded to 19. **2.9.0 released on 23 Jun 2025** * Identification of raster layers on webmaps. * Improved webmap links, preserving legend symbols in URLs. * Ability to configure panels and tools individually for each webmap. * Refined resource picker behavior for single and multi-selection. * Configurable lookup table item order, including manual ordering. * Experimental adaptive layouts for webmaps on mobile and tablet devices. * Initial experimental support for UI form designer. * Handle rendering artifacts at tile boundaries for QGIS styles. * Fix @map_scale variable and area calculations for QGIS styles. * Support for dash patterns in user-defined styles. * Support for adding fields to layers with versioning enabled. * Creation of raster layers from ZIP archives and PAM support. * Support for GDAL PAM georeferenced (.aux.xml) JPEG and PNG rasters. * Configurable default basemaps for on-premises installations. * Improved handling of date and bigint fields in UI and HTTP API. * Improved handling of geom fields in feature layers. * Clean up unreferenced file objects during maintenance by default. * Python 3.10+ is now the minimum required version. * OpenLayers library upgraded to 10.4. * Support for adding specific Formbuilder forms to Collector projects. * Support for using PostGIS layers as data sources in Collector projects. * Export stops as waypoints in GPX files. **2.8.2 released on 22 mar 2025** * Fix NextGIS QGIS authentication. **2.8.1 released on 6 Jun 2025** * Fix layer symbols toggling. **2.8.0 released on 05 Mar 2025** * Webmap migrated to React with many new features. * The identification panel enabled by default, replacing webmap popups. * Resource editing interface fully migrated to React. * New feature display page and modal dialog with vector tile geometries. * Enhanced resource deletion confirmation with details of resources to delete. * On-demand webmap legend symbol loading, optimizing webmap opening time. * Configurable SSL mode for PostGIS connections. * Handling of invalid geometries for MVT vector tiles. * Better support for date and time fields in WFS clients. * Expanded JSON output format capabilities in WMS services. * Improved handling of fid fields in feature layers. * Extended resource search HTTP API. * Pre-calculated and cached style scale ranges for faster webmap opening. * Chrome 118+, Safari 17+, Edge 116+, or Firefox 115+ is required. * All legacy AMD modules migrated to TypeScript, and Dojo dependency removed. * Experimental support for Python 3.10 * Improved track display with a distinguishable style. * Fixed rounding of speed, direction, and HDOP in webmap popup. **2.7.0 released on 06 October 2024** * New resource creation dialog. * Identification panel replaces popup on the webmap. * Font management in the control panel. * Preview layers with leaving the current page. * Preview of the basemap on the resource editing page. * Support for empty geometries when importing vector layers. * Customizable web map title. * WFS client component turned on by default. * Data structure permission scope removed. * TUS uploader is available using CORS. * All of resource widgets migrated to Antd and React. * Fix uploading of zero-length files. **2.6.1 released on 20 Sep 2024** * Fix audit journal display. * Fix WMS service layer adding. **2.6.0 released on 17 Jul 2024** * Support for raster style legends. * Customizable print layout including legend. * Exclusive layer groups on webmaps. * User-defined favorite resource pages. * Measurement SRS configuration per-webmap. * Experimental support for feature versioning. * Better handling of incomplete geometry parts. * Show feature attachment descriptions in the viewer. * Extent information in PostGIS layer diagnostics. * Transparent annotation polygons for better visibility. * Switch to nearest neighbor resampling for raster pyramids. * Experimental support for NULL geometries. * Support for upper-case placeholders in TMS connections. * Metadata permission scope and webmap display permission removed. * Sentry client-side JavaScript integrations. * Cache seeding and invalidation removed, use NextGIS Geoservices instead. * Most of resource widgets migrated to Antd and React. **2.5.2 released on 26 Jun 2024** * Authorization fixes. **2.5.1 released on 26 Arp 2024** * Fix rendering of legend categories disabled by default. **2.5.0 released on 04 Apr 2024** * Turn legend categories on/off for a better experience on webmaps. * Lots of customization options for embedded webmaps: map tools and panels. * Ability to exclude feature layer fields from text search. * Configurable permissions for groups, users, SRS and CORS management. * Enhanced feature attachment viewer now includes panoramic images support. * Ctrl+click opens feature attachment in a fixed tab. * Ability to copy printing parameters as a URL for sharing. * Support for custom SVG logos in addition to PNG. * Add export to CSV and import from CSV for lookup tables. * Support for multiple replicas and long-runnning requests. * Update minimum required NodeJS version to 20.0. * Fix permission dependencies on QGIS style parent resources. * Copying QGIS styles from one to another. **2.4.3 released on 02 Mar 2024** * Expanded list of allowed CORS headers. **2.4.2 released on 2 Feb 2024** * Fix styles for WFS layers. **2.4.1 released on 29 Dec 2023** * Fix NextGIS ID configuration issue. * Support for PostgreSQL 12. **2.4.0 released on 28 Dec 2023** * Support for lookup tables for feature layer attributes. * Print to TIFF format in addition to PDF, JPEG and PNG. * Geometry-based filtering of feature tables on webmaps. * Autodetection of minimum and maximum scales for webmap and WMS layers. * Refresh feature tables after saving layer changes on webmaps. * Improved handling of `id` and `fid` attributes of vector layers. * Improved handling of date and time inputs. * Passing a zoom level to webmaps via `zoom` attribute. * Support for OpenID Connect UserInfo endpoint. * Extraction of scale ranges from QML styles. **2.3.1 released on 17 Oct 2023** * Fix layers visibility when printing a web map. * Fix SLD marker preview size. * Fix IP addresses adding to CORS settings. **2.3.0 released on 28 Sep 2023** * New tileset resource for storing and serving prerendered tiles. * New OGC API Features service with read and write support. * Up to 2x speed-up of loading vector layer data. * Differentiate webmap intial and contstraining extents. * Support for Google Analytics metrics. * Support for basic user-defined styles. * Save to PDF from the webmap printing panel. * Check effective permissions of other users for a resource. * Legends for webmaps is enabled by default. * Lots of improvements in feature editing widgets. * OutputFormat declaration in WFS for better compatibility. * Store audit journal in PostgreSQL database instead of ElasticSearch. * React library upgraded to 18. * Ant Design library upgraded to 5. **2.2.0 released on 30 Jun 2023** * Auto-generated and configurable legends for webmaps. * Reordering layers via drag-and-drop while viewing webmaps. * Changing layer opacity while viewing webmaps. * Creation of an empty vector layer without uploading a file. * Ability to replace existing vector layer features and fields from a file. * Brand-new feature table based on React. * Resource and feature description editors updated to CKEditor 5. * Improved handling of resource descriptions on webmaps. * Zoom to a filtered set of features on webmaps. * Geometry properties in the identification popup. * Show the cursor location and the current extent on webmaps. * Zoom to all layers on webmaps. * Support for linear and polygonal annotations. * Default display names for resources during creation. * Deletion of all features and changing geometry type for vector layers. * Limit by extent while exporting feature layers. * Ability to export a filtered set of features. * MapInfo formats support when creating a vector layer. * TMS client: parallel fetching of tiles and HTTP/2. * Reasonable resource tabs ordering and auto-activation. * Improved usability of the layers tree on webmaps. * Fast PNG compression for rendering. * Chrome 102+, Safari 15+, Edge 109+ or Firefox 102+ is required. * User permissions section is moved to a separate page. * OAuth-based automatic group assignment. **2.1.3 released on 17 Mar 2023** * Fix Collector issues. **2.1.2 released on 1 Jul 2023** * Fix feature attachment download issues. **2.1.1 released on 23 Nov 2022** * Fix resource group selection issue while cloning webmaps **2.1.0 released on 21 Nov 2022** * Support for webmap cloning via UI. * Search by coordinates on web maps. * CSV and XLSX support when creating a vector layer. * Export and import feature layer attachments. * Vector layer export to KML and KMZ formats. * Fields selection while exporting feature layer. * Assign default groups while creating users via UI. * Experimental support for authorization links. * Use resource SRS by default while exporting raster and vector layers. * Support for booleans and nulls in resource metadata. * Support for fixed length `character` columns in PostGIS layers. * Support for materialized views and 25D geometries in PostGIS layers. * Ability to turn off user password and keep only OAuth authentication. * Check for disk free space in the healthcheck. * Ability to search through resources recursively in REST API. * OpenLayers library upgraded to 6.15.1. **2.0.0 released on 18 Jul 2022** * “Locate me” tool on web maps. * Identifiable setting for web map layers. * Batch deletion and moving of resources. * Ability to download raster layers as an internal representation. * PostGIS connection and layer diagnostic tool. * Support for quad-key basemaps on web maps. * OAuth improvements: NextGIS ID integration, simultaneous authorization code and password grant types. * Improved management of spatial reference systems and catalog integration. * Better support for 25D geometries on web maps and PostGIS layers. * Improved handling of URLs in descriptions and feature layer fields. * Cloud-optimized GeoTIFF (COG) enabled by default. * In-place conversion between COG and non-COG rasters. * Hide empty groups and groups with no accessible layers on web maps. * M dimension stripping while creating vector layers in LOSSY mode. * Selecting features on web maps via `hl_*` URL parameters. * Ability to inject some HTML into the base template for metrics and counters. * Fast JSON serialization and deserialization based on orjson library. * Completed control panel migration to Antd and React. **1.9.0 released on 16 Feb 2022** * Cloud-optimized GeoTIFF (COG) support for raster layers. * Browser compatibility test and Internet Explorer deprecation. * Experimental support for long-runnning requests for raster and vector layers creation using `lunkwill` extension. * Private annotations on web maps, visible only for authors. * Wrapping around the dateline for tile-based layers on web maps. * A lot of improvements for the control panel: filters, batch operations, etc. * Improved handling of vector layer sources with `id` and `geom` fields. * Reprojection into different coordinate systems in WMS and WFS services. * Export feature layer using field display names (aliases) instead of keynames. * Support for CORS domain wildcards (like `https://*.csb.app`). * WFS client and server simple filters support. * Improved handling of coordinates outside boundaries of coordinate systems. * Support for 25D geometries in PostGIS layers. * Ability to filter NULL values in feature REST API. * Unknown fields in REST API filters return an error. * Improved handling of external services errors and timeouts. * Upgraded dependencies: Pyramid 2.0, SQLAlchemy 1.4, and OpenLayers 6.10. **1.8.0 released on 18 Nov 2021** * Source layer selection while creating vector layers from multi-layer sources, such as ZIP-archives or Mapinfo TABs. * On-the-fly reprojection for WMS and WFS services. * Ability to restrict address search by a country if using Nominatim. * Hide inaccessible layers while displaying webmaps. * Highlight feature when selecting from search results. * Display emails as active mailto: links in the webmap popup. * Ability to delete users and groups from the control panel. * Ability to change resource owner in UI and REST API. * Automatic generation of keynames for WMS and WFS services. * Improved support for Unicode field names for WFS services. * Granular control setting for resource export availability. * ISO-8601 date and time formatting in feature layer REST API via dt_format=iso option. * Drop Python 2.7 support, NextGIS Web now requires Python 3.8+. * PostgreSQL 10+, PostGIS 2.5+ and GDAL 3.0+ are required now. * Synchronization of translations with POEditor. * Yandex Maps-based address search on the webmap. **1.7.3 released on 8 Oct 2021** * Fix vector layer loading with error feature skip. * Fix exception handling of tile cache writing. **1.7.2 released on 1 Oct 2021** * Use SameSite=None for the session cookie to support iframe authentication. **1.7.1 released on 25 Aug 2021** * Fix MapServer Python 3 compability issue. * Fix critical Webpack compability error. **1.7.0 released on 11 Aug 2021** * Simple tool for previewing resources on the map. * Resource quick search tool in the page header. * Disable/enable address search via settings in the control panel. * Ability to constraint address search area by web map initial extent. * Zoom to a better extent from address search and bookmark panel. * Language autodetection, per-user language setting, and support for the external translation files. * Automatic downsampling of a social preview image to 1600x630 pixels. * Better support for KML: LIBKML GDAL driver is used when available. * Filtering features by ID in feature REST API. * Layers with an “id” field can be loaded if the field has an int32 type. * Information about available distribution versions in the control panel. * Experimental storage accounting and estimation subsystem. **1.6.0 released on 12 May 2021** * Ability to constraint a web map to the default extent. * More length and area units in web map settings. * Automatic correction of errors during the creation of a vector layer. * Support for creation of vector layers from GML and KML files. * User login is case insensitive when logging in. * Configuration option for disabling social networks sharing buttons. * Performance improvements in geometry handling and rendering, especially when converting between WKT and WKB formats. * Performance improvements in tile cache component. * Improved word wrapping in web map identification popup. * Minimum and maximum scale restrictions in WMS server. * Experimental integration of modern JavaScript and Webpack. * Quota for the maximum number of enabled users. * OpenLayers library upgraded to 6.5.0. * OAuth server logout support via logout redirect endpoint. **1.5.0 released on 14 Feb 2021** * Add database migrations framework and automatic migrations applying. * External access links for styles, web maps (TMS), and feature layers (MVT). * Experimental WFS client and raster mosaic, which is disabled by default. * Add support of 1.1.0 version in WFS server implementation. * Improved handling of NODATA values in raster layer and raster style. * Compression level of PNG images is set to 3, which is much faster. * Performance improvements and better concurrency for tile cache. * New “CSV for Microsoft Excel” export format for better Excel compatibility. * Fix infinite wait of database lock, including during vector layer deletion. * Improved handling of invalid JSON bodies in RESP API, now the correct error message is returned. * Vector layer export to MapInfo MIF/MID format. * Vector layer export to Panorama SXF format. # table2geo.html.md # Table to vector file The tool converts spreadsheet file (XLSX, ODS, CSV) to a vector file in a format of your choice. Input: * Spreadsheet file in ODS, XSLX or CSV format. Spreadsheet must be located on the first page (if input file format implies books) and contain fields named `lat` and `lon` for latitude and longitude, respectively. Coordinate reference system - WGS84. Coordinates should be expressed as decimal degrees. * Optional: format of an output vector file. Choose one from the list: > - ESRI Shapefile > - GeoPackage > - GeoJSON > - TAB > - MIF > - SQL > - CSV * Optional: field type - list of field types for an output vector file, which correspond to the columns from initial spreadsheet. Should be specified without quotes and be comma separated. Possible types: `Integer, Real, String, Date (YYYY-MM-DD), Time (HH:MM:SS), DateTime (YYYY-MM-DD HH:MM:SS)`. Example: `Integer,Real,Real,String,String,String`. Output: * ZIP-archive with vector file. You can import this file into NextGIS QGIS or NextGIS Web without unpacking. Launch the tool: [https://toolbox.nextgis.com/t/table2geo](https://toolbox.nextgis.com/t/table2geo) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # tableau.html.md # How to load layer into Tableau * [Order data](https://data.nextgis.com/en/) for your area of interest, e.g. in GeoPackage (QGIS) format. * Go to the [orders](https://data.nextgis.com/en/orders/actual/) page and download the archive when it’s complete. * **Unpack** the archive. * Launch Tableau, select “Connect” > “Spatial file” and choose the target layer in pop-up window. ![image](docs_data/source/_static/tableau1.png) * Data is opened in “Data Source” tab, switch to the worksheet tab (“Sheet 1”). ![image](docs_data/source/_static/tableau2.png) * In the “Data” panel find “Geometry” field and drag it onto the workspace. ![image](docs_data/source/_static/tableau3.png) * Layer is loaded into Tableau. ![image](docs_data/source/_static/tableau4.png) # teams.html.md # Team Users added to a team get access to the team owner’s Web GIS and Premium functionality even without having a Premium subscription. To create your own team, you need to be on [Premium](http://nextgis.com/nextgis-com/plans). User who have “Free” subscription plan cannot become team owners, but can be [added as team members](https://docs.nextgis.com/docs_ngcom/source/teams.html#ngcom-team-management) by a user that has Premium subscription. Information on your team and the teams you are a member of is available in your account. ## Team information In the “Teams” section of your profile there are two tabs. In the “Owner” tab you can see the list of NextGIS users added to your team, if you have one. On the “Member” tab you can see the teams you participate in. ![image](docs_ngcom/source/_static/my_teams_owner_en.png)![image](docs_ngcom/source/_static/my_teams_member_en.png) In the teams list you can find a link to the owner’s Web GIS that you can access as a team member. In this section you can manage [your team](https://docs.nextgis.com/docs_ngcom/source/teams.html#ngcom-team-management) and your [participation on other teams](https://docs.nextgis.com/docs_ngcom/source/teams.html#team-memberships). ## Manage your team #### WARNING To create your own team, you need to be on [Premium](http://nextgis.com/nextgis-com/plans). Only the team owner can add and delete team members. According to nextgis.com plans, the Premium account holder has an opportunity to give access to Premium-functions to 4 more users who have a NextGIS ID by adding them to the team. To mange your team, go to your account and select Teams - Owner: [https://my.nextgis.com/teammanage/owner](https://my.nextgis.com/teammanage/owner). ### Invite user to your team By default, the team includes the owner of the Premium subscription (see [Fig. 16.](#first-administrator)). To add other users to your team click **Add**. ![image](docs_ngcom/source/_static/my_teams_owner_empty_en_2.png) Enter an email address and click **Send invitation**. ![image](docs_ngcom/source/_static/invitation_en.png) The user receives the invitation to this email address. If the email is not yet associated with a NextGIS ID, the user needs to [sign up](https://docs.nextgis.com/docs_ngcom/source/create.html). If a NextGIS ID is already created, the user can just go to their account and accept the invitation in [Teams - Member](https://docs.nextgis.ru/docs_ngcom/source/teams.html#team-memberships). Team owner can check the status of the invitations in the account. Pending invitations can be cancelled. ![image](docs_ngcom/source/_static/invitation_pending_en.png) Once the invitation is accepted, the user is moved to the list of team members (see [Fig. 19.](#all-users)). ![image](docs_ngcom/source/_static/my_team_users_en_2.png) If you wish to let user access your Web GIS, set up [permissions](https://docs.nextgis.com/docs_ngcom/source/teams.html#ngcom-auth-id-webgis). If adding new users is unavailable, it means that you’ve reached the limit of users for your subscription plan. Both team members and pending invitations are counted towards the limit. You can increase the size of your team. To do so, email us at [sales@nextgis.com](mailto:sales@nextgis.com). To free a slot in your team, you can cancel a pending invitation or delete one of the team members. ![image](docs_ngcom/source/_static/limit_users_en.png) ### Delete user from team You can delete users from your team at any moment. To delete a user, click **Remove** and confirm the user removal. ![image](docs_ngcom/source/_static/delete_user_from_team_en.png) When you remove a user from your team it doesn’t delete them from Web GIS, instead the Web GIS user is deactivated. Administrators still have access to the resources owned by the deactivated user and the history of their activity in versioning logs. ## Allow team members to access Web GIS By default a new Web GIS user has no permissions and cannot view any resources. To allow new users to immediately start working in your Web GIS, set up permissions for them in advance: * The best way is to set up permissions for a [user group](https://docs.nextgis.com/docs_ngweb/source/users.html#create-new-user-group) with the option “New users” enabled. Users will be included in this group upon their first login to the Web GIS. * An alternative way is to set up permissions for the principal [“Authenticated”](https://docs.nextgis.com/docs_ngcom/source/permissions.html#ngcom-permissions-usertypes). ## Team memberships On the Member tab you can see the list of teams you joined and the received invitations awaiting your decision. Here you can: * open Web GIS of the team owner by clicking on the link; * accept invitation and join a team or decline an invitation. A blue circle means that you have incoming invitations; ![image](docs_ngcom/source/_static/invitation_accept_en.png) * leave a team you’re currently a member of. To leave a team, click **Leave team**. ![image](docs_ngcom/source/_static/team_leave_en.png) # temporal_split.html.md # Create temporal cache The tool creates several layers from one. Each new layer is a selection of features for a period of time. Inputs: * Web GIS URL, example: [https://demo.nextgis.com](https://demo.nextgis.com); * Input resource ID - numbers at the end of the URL of the input layer; * Date the feature disappeared - field containing the date when the feature stopped existing; * Date the feature appeared - field containing the date when the feature started existing; * The start year of the interval - name for the ‘year1’ field (the field will be created); * The end year of the interval - name for the ‘year2’ field (the field will be created); * Output format - enter one of the following: `GeoJSON, GPKG, CSV, ESRI Shapefile`. ESRI Shapefile is the default; * Ignore errors - Leave empty to **stop execution** if an empty time slice is found. Enter 1 to **ignore** time slices with no features (ignore errors). Outputs: * ZIP archive of layers, each also in an archive. Launch the tool: [https://toolbox.nextgis.com/t/temporal_split](https://toolbox.nextgis.com/t/temporal_split) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # terrain_analysis.html.md # Comprehensive Terrain Analysis Complete geomorphological analysis of a DEM: morphometry, hydrology, terrain indices, classifications, and statistics. Produces a ZIP package with rasters, vectors, CSVs, and a JSON manifest. Inputs: * DEM Package (ZIP). ZIP file from [Search & download Planetary Computer](https://toolbox.nextgis.com/t/planetary_search?from-related-tools=1) containing a DEM GeoTIFF and manifest.json * Contour Interval (m). Elevation interval for contour lines in meters (default: 10) * Major Contour Interval (m). Elevation interval for major contour lines in meters (default: 50) * Watershed Threshold (cells). Minimum number of cells for watershed delineation (default: 500) * TPI Small Radius (cells). Neighborhood radius for small-scale TPI in cells (default: 5) * TPI Large Radius (cells). Neighborhood radius for large-scale TPI in cells (default: 25) Outputs: * Terrain Analysis Package (ZIP). ZIP archive with rasters, vectors, statistics, and manifest * Summary. Human-readable summary of the terrain analysis results * Manifest JSON. JSON manifest string describing all outputs Launch the tool: [https://toolbox.nextgis.com/t/terrain_analysis](https://toolbox.nextgis.com/t/terrain_analysis) Example: ![image](docs_toolbox/source/_static/terrain_analysis_input_en.png)![image](docs_toolbox/source/_static/terrain_analysis_result_en.png) The output of this tool can be used in other tools: * [Flood Susceptibility Analysis](https://toolbox.nextgis.com/t/flood_analysis?from-related-tools=1) * [Erosion Susceptibility Analysis](https://toolbox.nextgis.com/t/erosion_analysis?from-related-tools=1) * [Landslide Susceptibility Analysis](https://toolbox.nextgis.com/t/landslide_analysis?from-related-tools=1) * [Wildfire Susceptibility Analysis (Topographic)](https://toolbox.nextgis.com/t/wildfire_analysis?from-related-tools=1) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. #### SEE ALSO * [Search & download Planetary Computer](https://toolbox.nextgis.com/t/planetary_search?from-related-tools=1) * [Download Sentinel-2 satellite data](https://toolbox.nextgis.com/t/download_and_prepare_l8_s2?from-related-tools=1) * [Search and save Sentinel-2 scene previews](https://toolbox.nextgis.com/t/s2_search?from-related-tools=1) * [Image clustering](https://toolbox.nextgis.com/t/image_clustering?from-related-tools=1) # test.html.md # Testing framework NextGIS Web testing framework is based on [pytest](https://pytest.org) library with some additions (predefined fixtures, marks) and conventions. It supports unit and functional tests. ## File layout Each NextGIS Web component have its own set of tests located inside `test` directory. Consider the directory structure on the example for package `package` and component `component`. ```default 🗁 # Repository root directory ├── 🗁 package # Package source root │ ├── 🗁 component # Component root directory │ │ ├── 🗁 test # Test root directory │ │ │ ├── 🗀 data # Test data directory │ │ │ ├── 🗎 __init__.py # Dummy __init__ module │ │ │ └── 🗎 test_*.py # Test module files │ │ └── 🗎 __init__.py # And other component files │ └── 🗎 __init__.py # Package files and other components └── 🗎 setup.py # Setuptools configuration file ``` ## Unit tests Unit tests are designed for testing modules and usually don’t require additional configuration. Refer [pytest documentation](https://docs.pytest.org/en/latest/contents.html) and [Writing tests]() section. ```python # package/component/test/test_unit.py from .. import some_function def test_some_function(): assert some_function(1) == 0 ``` ## Functional tests Functional tests operate on data, and NextGIS Web must be configured and have the database initialized via `nextgisweb initialize_db`. Some tests modify data, so don’t run these tests in a production environment. ### Server-side Server-side tests are executed in the same context as other NextGIS Web console scripts. The environment can be loaded with `ngw_env` fixture, which initializes components and the environment. ```python # package/component/test/test_env.py def test_component(ngw_env): ngw_env.component.some_component_method() ``` Tests inside a transaction can be performed using `ngw_txn` fixture. It begins a new transaction and rollbacks it at exit, flushing changes to the database before that. ```python # package/component/test/test_txn.py from ..model import SomeModel def test_transaction(ngw_txn): SomeModel(field='value').persist() # Dummy record insert ``` ### Web application For testing via HTTP requests fixture `ngw_webtest_app` can be used. It’s represents [WebTest](https://docs.pylonsproject.org/projects/webtest/en/latest/index.html) [TestApp](https://docs.pylonsproject.org/projects/webtest/en/latest/api.html) instance which can be used for doing requests. ```python # package/component/test/test_webapp.py def test_api_method(ngw_webtest_app): ngw_webtest_app.get('/api/component/component/method') ``` ## Writing tests ### Naming conventions Follow pytest default naming conventions - test modules and functions must have `test_` prefix. #### NOTE Do not forget to add a dummy `__init__.py` file to the `test` directory. ## Running tests ```shell $ export NEXTGISWEB_CONFIG=path/to/config.ini $ python -m pytest package # All tests from package $ python -m pytest package/component # Only tests from component $ python -m pytest --pyargs package.component # Same but by Python module name ``` #### NOTE The last option with `--pyargs` might be useful when running tests in Crater / NGWDocker environment. Path-based options won’t work because of symlinks inside `site-packages` directory. # tiles2ngw_en.html.md # How to upload Tileset to NextGIS Web * [Order data](https://data.nextgis.com/?next-product=tiles) for your area of interest in PNG format. * Go to the [orders](https://data.nextgis.com/en/orders/actual/) page and download the archive when it’s complete. * [Create your Web GIS](https://docs.nextgis.com/docs_ngcom/source/create_webgis.html) or [sign in to it](https://docs.nextgis.com/docs_ngcom/source/create_webgis.html#how-to-sign-in-to-your-web-gis). * To add a **Tileset**, select a Tileset in the “Create Resource” block of operations. ![image](docs_data/source/_static/ngweb_create_tileset_en.png) Next, you need to enter the name of the tileset, which will be displayed in the administrative web interface. The “Key” field is optional. On the appropriate tabs, you can add a resource description and metadata. Typically, metadata is used to develop third-party applications using APIs. In the “Tileset” tab, you need to upload a tileset in a zip archive. Tiles must be in PNG or JPEG format and have a size of 256x256 pixels. ![image](docs_data/source/_static/create_tileset_upload_en.png) Click **Create** to complete the process. # toc.html.md # Developer documentation Contents: * [NextGIS Web for developers](docs_ngweb_dev/doc/toc.md) * [NextGIS Web REST API](docs_ngweb_dev/doc/developer/toc.md) * [NextGIS Web internals](docs_ngweb_dev/doc/internal/toc.md) * [NextGIS Web administrator’s guide](docs_ngweb_dev/doc/admin/toc.md) * [NextGIS Mobile for developers](ngmobile_dev/source/toc.md) * [NextGIS iOS SDK](ngmobile_dev/source/ngmiv3.md) * [NextGIS Android SDK](ngmobile_dev/source/ngmav3.md) * [NextGIS QMS Service API](qms_srv_dev/doc/api.md) * [API Root](qms_srv_dev/doc/api.md#api-root) * [Geo Service List](qms_srv_dev/doc/api.md#geo-service-list) * [Geo Service filtered list](qms_srv_dev/doc/api.md#geo-service-filtered-list) * [Geo Service Details](qms_srv_dev/doc/api.md#geo-service-details) * [Geo Service Icon](qms_srv_dev/doc/api.md#geo-service-icon) * [NextGIS Formbuilder for developers](docs_formbuilder_dev/doc/toc.md) * [General](docs_formbuilder_dev/doc/form_syntax.md) * [Syntax](docs_formbuilder_dev/doc/form_syntax.md#syntax) * [Elements](docs_formbuilder_dev/doc/form_syntax.md#elements) * [General](docs_formbuilder_dev/doc/meta_syntax.md) * [Syntax](docs_formbuilder_dev/doc/meta_syntax.md#syntax) # toc.html.md #### IMPORTANT Table of contents is moved here: [NextGIS Collector](https://docs.nextgis.com/docs_collector/source/index.html) # toc.html.md #### IMPORTANT Table of contents is moved here: [NextGIS Data](https://docs.nextgis.com/docs_data/source/index.html) # toc.html.md # NextGIS Formbuilder for developers * [General](form_syntax.md) * [Syntax](form_syntax.md#syntax) * [Elements](form_syntax.md#elements) * [Checkbox](form_syntax.md#checkbox) * [Combobox](form_syntax.md#combobox) * [Coordinates](form_syntax.md#coordinates) * [Counter](form_syntax.md#counter) * [Date & Time](form_syntax.md#date-time) * [Distance meter](form_syntax.md#distance-meter) * [Double combobox](form_syntax.md#double-combobox) * [Label](form_syntax.md#label) * [Photo](form_syntax.md#photo) * [Radiogroup](form_syntax.md#radiogroup) * [Signature](form_syntax.md#signature) * [Space](form_syntax.md#space) * [Splitted combobox](form_syntax.md#splitted-combobox) * [Tabs](form_syntax.md#tabs) * [Text edit](form_syntax.md#text-edit) * [General](meta_syntax.md) * [Syntax](meta_syntax.md#syntax) # toc.html.md #### IMPORTANT Table of contents is moved here: [NextGIS GeoServices on-premise](https://docs.nextgis.com/docs_geoserv_prem/source/index.html) # toc.html.md #### IMPORTANT Table of contents is moved here: [NextGIS GeoServices](https://docs.nextgis.com/docs_geoservices/source/index.html) # toc.html.md #### IMPORTANT Table of contents is moved here: [Get Started with NextGIS](https://docs.nextgis.com/docs_ngcom/source/index.html) # toc.html.md #### IMPORTANT Table of contents is moved here: [NextGIS Connect for QGIS](https://docs.nextgis.com/docs_ngconnect/source/index.html) # toc.html.md #### IMPORTANT Table of contents is moved here: [NextGIS ID](https://docs.nextgis.com/docs_ngid/source/index.html) # toc.html.md #### IMPORTANT Table of contents is moved here: [NextGIS Mobile](https://docs.nextgis.com/docs_ngmobile/source/index.html) # toc.html.md #### IMPORTANT Table of contents is moved here: [NextGIS QGIS](https://docs.nextgis.com/docs_ngqgis/source/index.html) # toc.html.md #### IMPORTANT Table of contents is moved here: [NextGIS Tracker](https://docs.nextgis.com/docs_ngtracker/source/index.html) # toc.html.md #### IMPORTANT Table of contents is moved here: [NextGIS Web](https://docs.nextgis.com/docs_ngweb/source/index.html) # toc.html.md #### IMPORTANT Table of contents is moved here: [NextGIS Web 3D](https://docs.nextgis.com/docs_ngweb_3D/source/index.html) # toc.html.md # NextGIS Web for developers * [NextGIS Web REST API](developer/toc.md) * [Authorization](developer/auth.md) * [Managing users](developer/auth.md#managing-users) * [Managing groups](developer/auth.md#managing-groups) * [Automatically creating users](developer/auth.md#automatically-creating-users) * [Get resource permissions](developer/auth.md#get-resource-permissions) * [Resources](developer/resource.md) * [Create resource](developer/create.md) * [File upload](developer/file_upload.md) * [Editing](developer/change.md) * [Miscellaneous](developer/misc.md) * [Error reporting](developer/error_report.md) * [Vector layer data types](developer/vector_data_types.md) * [Python API library](developer/python_api.md) * [ogr2ogr](developer/ogr2ogr.md) * [NextGIS Web internals](internal/toc.md) * [Components and environment](internal/component.md) * [Modern JavaScript](internal/jsrealm.md) * [Long-running API requests](internal/lunkwill.md) * [Internationalization and localization](internal/i18n.md) * [Testing framework](internal/test.md) * [Package versioning](internal/versioning.md) * [Database migrations](internal/migration.md) * [URLs and routes](internal/url_route.md) * [Describing API](internal/apitype.md) * [Code formatting](internal/code_formatting.md) * [NextGIS Web administrator’s guide](admin/toc.md) * [Installation](admin/install.md) * [Configuration](admin/configure.md) * [Backup and restore](admin/backup_restore.md) * [Upgrade](admin/upgrade.md) # toc.html.md # NextGIS Web administrator’s guide * [Installation](install.md) * [System requirements](install.md#system-requirements) * [Installation process](install.md#installation-process) * [uWSGI](install.md#uwsgi) * [Systemd](install.md#systemd) * [Configuration](configure.md) * [Cofiguration files](configure.md#cofiguration-files) * [Environment variables](configure.md#environment-variables) * [Backup and restore](backup_restore.md) * [Backup](backup_restore.md#backup) * [Restore](backup_restore.md#restore) * [Upgrade](upgrade.md) * [Stopping services and creating backup](upgrade.md#stopping-services-and-creating-backup) * [Upgrading packages](upgrade.md#upgrading-packages) * [Applying migrations](upgrade.md#applying-migrations) * [Upgrading from 3.7.0 or higher](upgrade.md#upgrading-from-3-7-0-or-higher) * [Upgrading from previous versions](upgrade.md#upgrading-from-previous-versions) * [Starting services](upgrade.md#starting-services) * [Upgrading PostgreSQL and PostGIS](upgrade.md#upgrading-postgresql-and-postgis) # toc.html.md # NextGIS Web REST API * [Authorization](auth.md) * [Managing users](auth.md#managing-users) * [Managing groups](auth.md#managing-groups) * [Automatically creating users](auth.md#automatically-creating-users) * [Get resource permissions](auth.md#get-resource-permissions) * [Simple output](auth.md#simple-output) * [Detailed output](auth.md#detailed-output) * [Resources](resource.md) * [Resource classes](resource.md#resource-classes) * [HTTP API](resource.md#http-api) * [Create resource](create.md) * [Resource group](create.md#resource-group) * [PostGIS Connection](create.md#postgis-connection) * [PostGIS Layer](create.md#postgis-layer) * [Empty vector layer](create.md#empty-vector-layer) * [Vector layer with data](create.md#vector-layer-with-data) * [Feature in vector or PostGIS layer](create.md#feature-in-vector-or-postgis-layer) * [Add attachment to feature](create.md#add-attachment-to-feature) * [Batch create features in vector layer](create.md#batch-create-features-in-vector-layer) * [Raster layer](create.md#raster-layer) * [File bucket](create.md#file-bucket) * [Mapserver style](create.md#mapserver-style) * [QGIS style](create.md#qgis-style) * [Raster style](create.md#raster-style) * [Lookup table](create.md#lookup-table) * [Web map](create.md#web-map) * [WMS Service](create.md#wms-service) * [WMS Connection](create.md#wms-connection) * [WMS Layer](create.md#wms-layer) * [Tracker](create.md#tracker) * [File upload](file_upload.md) * [Single file upload](file_upload.md#single-file-upload) * [Multiple file upload](file_upload.md#multiple-file-upload) * [Editing](change.md) * [Change resource](change.md#change-resource) * [Change webmap](change.md#change-webmap) * [Change metadata](change.md#change-metadata) * [Change file bucket resource](change.md#change-file-bucket-resource) * [Change lookup table resource](change.md#change-lookup-table-resource) * [Change feature](change.md#change-feature) * [Change attachment](change.md#change-attachment) * [Delete feature](change.md#delete-feature) * [Delete features](change.md#delete-features) * [Delete all features](change.md#delete-all-features) * [Delete attachment](change.md#delete-attachment) * [Delete all attachments](change.md#delete-all-attachments) * [Miscellaneous](misc.md) * [Get resource data](misc.md#get-resource-data) * [Identify by polygon](misc.md#identify-by-polygon) * [Error reporting](error_report.md) * [Vector layer data types](vector_data_types.md) * [Python API library](python_api.md) * [ogr2ogr](ogr2ogr.md) # toc.html.md # NextGIS Web internals * [Components and environment](component.md) * [Dependencies between components](component.md#dependencies-between-components) * [Global env object](component.md#global-env-object) * [Component class](component.md#component-class) * [Env class](component.md#env-class) * [Modern JavaScript](jsrealm.md) * [Setup and directory layout](jsrealm.md#setup-and-directory-layout) * [Working with packages](jsrealm.md#working-with-packages) * [Webpack modules](jsrealm.md#webpack-modules) * [Writing modules](jsrealm.md#writing-modules) * [Long-running API requests](lunkwill.md) * [Internationalization and localization](i18n.md) * [Server side](i18n.md#server-side) * [Client side](i18n.md#client-side) * [Testing framework](test.md) * [File layout](test.md#file-layout) * [Unit tests](test.md#unit-tests) * [Functional tests](test.md#functional-tests) * [Writing tests](test.md#writing-tests) * [Running tests](test.md#running-tests) * [Package versioning](versioning.md) * [Package configuration](versioning.md#package-configuration) * [Development versions](versioning.md#development-versions) * [Release versions](versioning.md#release-versions) * [Backports and patches](versioning.md#backports-and-patches) * [Database migrations](migration.md) * [Existing components](migration.md#existing-components) * [New components](migration.md#new-components) * [Python migrations](migration.md#python-migrations) * [URLs and routes](url_route.md) * [URLs](url_route.md#urls) * [Route names](url_route.md#route-names) * [Describing API](apitype.md) * [Path parameters](apitype.md#path-parameters) * [Query parameters](apitype.md#query-parameters) * [Request body](apitype.md#request-body) * [Response](apitype.md#response) * [Code formatting](code_formatting.md) # toc.html.md #### IMPORTANT Table of contents is moved here: [NextGIS Toolbox](https://docs.nextgis.com/docs_toolbox/source/index.html) # toc.html.md #### IMPORTANT Table of contents is moved here: [NextGIS Toolbox on-premise](https://docs.nextgis.com/docs_toolbox_prem/source/index.html) # toc.html.md # NextGIS Mobile for developers * [NextGIS iOS SDK](ngmiv3.md) * [Intro](ngmiv3.md#intro) * [Install](ngmiv3.md#install) * [Add to project](ngmiv3.md#add-to-project) * [SDK API References](ngmiv3.md#sdk-api-references) * [Demo projects](ngmiv3.md#demo-projects) * [NextGIS Android SDK](ngmav3.md) * [Intro](ngmav3.md#intro) * [Install](ngmav3.md#install) * [Add to project](ngmav3.md#add-to-project) * [Add map](ngmav3.md#add-map) * [Create feature class](ngmav3.md#create-feature-class) * [Load feature class to datastore](ngmav3.md#load-feature-class-to-datastore) * [Create raster](ngmav3.md#create-raster) * [Add layer to a map with style](ngmav3.md#add-layer-to-a-map-with-style) * [SDK API References](ngmav3.md#sdk-api-references) * [Demo projects](ngmav3.md#demo-projects) # toolbox.html.md # NextGIS Toolbox This plugin allows to access the NextGIS tools collection, also available [online](https://toolbox.nextgis.com), directly from QGIS. To install the plugin, go to Plugins -> Manage and install plugins. Type “NextGIS Toolbox” and click **Install**. After installation you’ll need to restart QGIS. NextGIS Toolbox is available in the Processing panel as well as the Processing menu. To use the tools you need to add your API key in the plugin settings. ## API key Go to [https://toolbox.nextgis.com](https://toolbox.nextgis.com) and log in or [create NextGIS ID account](https://docs.nextgis.com/docs_ngcom/source/create.html#how-to-create-account-nextgis-id). Open any tool on the front page of the [Toolbox](https://toolbox.nextgis.com) web site. Go to the **Python-code** tab. Your API key is indicated in the following section: ```default # Initialize client with your API key, use default base url toolbox = ToolboxClient("{API_key}") ``` ![image](docs_ngqgis/source/_static/api_key_toolbox_en.png) Copy the key from the code and insert it in the plugin settings in QGIS: Processing -> NextGIS Toolbox -> Settings. ![image](docs_ngqgis/source/_static/api_key_tb_plugin_settings_en.png) # tools.html.md # Tools * [Add region and settlement names to attributes](add_regions.md) * [Adobe Illustrator (\*.ai) to geodata](ai2geo.md) * [Aggregate raster layer to H3 grid](aggregate_raster_layer_to_h3.md) * [Aggregate vector layer to H3 grid](aggregate_vector_layer_to_h3.md) * [Layer list from DWG file](autocad_file_schema.md) * [Report DWG / DXF file version](autocad_version.md) * [ASCII raster to GeoTIFF](ascii2geotiff.md) * [Buffer](buffer.md) * [Central lines of polygons](centerline.md) * [Points inside polygons](centroid2attr.md) * [Check geometries](check_geometries.md) * [Calculate areas of intersection](clip_polys_poly.md) * [Convert format of vector layer](convert.md) * [Reproject coordinates](coord_recalc.md) * [Coordinates to polygon](coords2poly.md) * [Count TMS tiles for polygon](count_tiles.md) * [Count number of layer intersections](crossing_borders.md) * [Extract elevations from DEM](deminpoints.md) * [DOC(X) to PDF](doc2pdf.md) * [Prepare and download Sentinel-2 data](download_and_prepare_l8_s2.md) * [Download Landsat Analysis Ready Data (GLAD ARD)](download_glad.md) * [Embed SVG into QGS/QML](embedsvg.md) * [Empty geometries in Web GIS layer](empty_geoms.md) * [Erase overlapping areas from layer](eraser.md) * [Erosion Susceptibility Analysis](erosion_analysis.md) * [Photos with EXIF to NGW layer](exif2resource.md) * [Change attributes in layer group](field_value_changer.md) * [Fix geometries](fix_geometries.md) * [Strip ZM from vector layer](flatten.md) * [Flood Susceptibility Analysis](flood_analysis.md) * [GBIF species observations to geodata](gbif_download.md) * [Advanced vector generalization](generalization.md) * [Geocode table](geocodetable.md) * [Geodata to PMTiles](geodata2pmtiles.md) * [Change geometries in layer groups](geometry_changer.md) * [GeoPackage to MapInfo Enhanced TAB](gpkg2etab.md) * [GPS track animation for social media](gpxanimation.md) * [Geotag photos using GPX track](gpx2exif.md) * [Clip GPX file by bounding box](gpxclipbbox.md) * [Split GPX file by days](gpxdailysplit.md) * [Merge GPX files](gpxmerge.md) * [Split GPX into individual tracks](gpxtracksplit.md) * [Meter grid](grid.md) * [Hello, World!](hello.md) * [iNaturalist species observations to geodata](inaturalist_download.md) * [Image classification](image_classification.md) * [Image clustering](image_clustering.md) * [Copernicus Sentinel image search](imagesearch.md) * [DWG to DXF](import_dwg.md) * [DWG to DXF (libdxfrw)](import_dwg_libdxfrw.md) * [Improve DEM](improvedem.md) * [Intersection registry](intersect_layers.md) * [Join layer and table by field](join_by_field.md) * [KML to geodata](kml2geodata.md) * [Projection (Dae, Collada) to Shapefile](kmldae2footprints.md) * [Search and save Landsat-L2C2 scene previews](landsat_search.md) * [Landsat radiometric calibration](landsat_to_radiance.md) * [Landsat reflectance calculation](landsat_to_reflectance.md) * [Landslide Susceptibility Analysis](landslide_analysis.md) * [Vector layers in Web GIS from archive](layers2ngw.md) * [Form multi-channel raster from individual channels](layerstack.md) * [Lines to polygons](lines2poly.md) * [Temporal polygons from lines and points](lines2polygons.md) * [MapInfo ready for QGIS](mapinfo2qgis.md) * [Vertical map for Social Media](mappy.md) * [Max distance between polygon nodes](maxdist.md) * [MBTiles to NGRC](mbtiles2ngrc.md) * [Marine traffic report](mt2report.md) * [Normalized difference index](ndi.md) * [Attribute to description for Web GIS](ngw_attribute2description.md) * [Contribution activity report for resource](ngw_contribution_activity.md) * [Copy nextgis.com resource group with data](ngw_copy_group.md) * [Duplicate Web GIS layer](ngw_copy_layer.md) * [Feature history](ngw_feature_history.md) * [Resource group to Web Map](ngw_group2webmap.md) * [Intersection registry for Web GIS](ngw_intersect.md) * [Get the layer historical state](ngw_layer_historical_state.md) * [Manage Web GIS layer structure](ngw_layer_schema.md) * [Merge two Web GIS vector layers](ngw_merge_layers.md) * [Vector layers from Web GIS to GeoPackage](ngw_to_gpkg.md) * [Web Map to image](ngw_webmap2image.md) * [Combine two Web Maps into a new one](ngw_webmap_combiner.md) * [Geocode with Nominatim](nominatim_geocode.md) * [Merge vector layers](ogrmerge.md) * [Download OpenStreetMap](osm_download.md) * [Clip PBF file by bbox](osmclip_bbox.md) * [Convert Garden Gnome Package panoramas to JPEG](pano2vr.md) * [Add Google Photosphere XMP metadata to photos](panotag.md) * [Import PastVu photos to Web GIS](pastvu2webgis.md) * [Search & download Planetary Computer](planetary_search.md) * [Point cloud to tileset](pointcloud2tileset.md) * [Statistics of points and tracks in polygons from NGW](points_on_tracks_stats.md) * [Polygons topological simplifier](polysimplifier.md) * [Parse addresses](postal.md) * [Predict satellite overpass](predict_overpass.md) * [Prepare raster](prepare_raster.md) * [Check geometries (QGIS)](qgis_check_geometries.md) * [Fix geometries (QGIS)](qgis_fix_geometries.md) * [Multipart to singleparts](qgis_multiparttosingleparts.md) * [QGIS project to PDF](qgis2pdf.md) * [Set of squares with transects](quadro.md) * [Raster calculator (GRASS)](r_mapcalc.md) * [Raster calculator (GDAL)](raster_calculator.md) * [Raster to NGRC](raster2tiles.md) * [Erase features](removecontents.md) * [Sentinel-2 scenes to GPKG](s2_search.md) * [Sunlight hours prediction](solar_hours.md) * [Spatial Join (Join by location)](spatial_join.md) * [Compute spectral index](spectral_indices.md) * [Split into equal parts](split_to_equal.md) * [Split into rectangles and calculate their number](split_to_rect.md) * [Split at 180th meridian](split180.md) * [Split Complex Polygons](splitcomplex.md) * [Google Sheets to Web GIS](spreadsheet2layer.md) * [Table to vector file](table2geo.md) * [Create temporal cache](temporal_split.md) * [Comprehensive Terrain Analysis](terrain_analysis.md) * [TROPOMI to GeoTIFF](tropomi2geotiff.md) * [Update Web GIS layer from CSV](update_vector_layer.md) * [Prepare vector layer for DataLens](vector2datalens.md) * [Layer intersection](vectorclip.md) * [Web GIS structure to spreadsheet](web_gis_structure.md) * [Web Map to QGIS project](webmap2qgis.md) * [Wildfire Susceptibility Analysis (Topographic)](wildfire_analysis.md) # tools.html.md # Tools Detailed descriptions of the tools currently available in the Toolbox can be found [here](https://docs.nextgis.com/docs_toolbox/source/tools.html). # trackers.html.md # Trackers settings In the Trackers section of the Control panel you can configure the display of the tracks on Web Maps and their export as GPX files. Here are the parameters that can be modified: ![image](docs_ngweb/source/_static/gps_settings_en.png) * Interval for splitting tracks, min (default value is 30) * Parameters for detecting stops: if the speed is lower than a set amount for a set time, a stop is recorded in the track. Minimal speed is in km/h (the default value is 5). Minimal time to mark a stop, in seconds (the default value is 300 sec., i.e. 5 min.). * Timezone settings - select a time zone marked as GMT+-N from a dropdown menu #### NOTE The number of trackers available depends on your [subscription plan](https://nextgis.com/pricing-base/). On Free and Mini you can add 1 tracker, on Premium the default limit is 5 trackers, but it can be extended. #### SEE ALSO [Tutorial: Track Asset and Team Locations in Real Time](https://docs.nextgis.com/docs_howto/source/tutorial_track.html) ## Viewing tracks on a Web Map Data on moving objects collected in NextGIS Tracker, NextGIS Collector or NextGIS Mobile can be displayed on any Web Map of your Web GIS if the tracker is linked to it. To view the tracks open any Web Map or create a new one. On the left panel bar you’ll find the tracker icon ![panel_trackers](docs_ngweb/source/_static/panel_trackers.png). ![image](docs_ngweb/source/_static/trackers_panel_select_en.png) Tracker panel has two parts: calendar and tracker list. Use the calendar to filter tracks by date and time. Below you’ll see the list of all available trackers. Trackers can be sorted by name or time of the recording. By default the tracks are hidden. To view a track on the Web Map, find the tracker(s) in the list and select track elements you’d like to display. Then set a date range in the calendar or in the track’s context menu select **Set filter to last day with data**. ![image](docs_ngweb/source/_static/webmap_track_display_en.png) Elements you can view: * ![button_tracker_lastpoint](docs_ngweb/source/_static/button_tracker_lastpoint.png) last point of the track * ![button_tracker_line](docs_ngweb/source/_static/button_tracker_line.png) the route lines of the GPS-tracks * ![button_tracker_points](docs_ngweb/source/_static/button_tracker_points.png) points where coordinates were picked * ![button_tracker_stops](docs_ngweb/source/_static/button_tracker_stops_h.png) stops (not all tracks have them) Three dots in the top right corner of the track open its context menu that allows to: - Zoom to layer; - Set filter to last day with data; - Show last activity (hourly chart for a selected date). ![image](docs_ngweb/source/_static/webmap_tracker_menu_en.png)![image](docs_ngweb/source/_static/track_and_location_en.png) Click on a point to show a popup with tracking information: date, time, speed (km/h), height (m), course (bearing i.e. the horizontal direction of travel of this device in the range between 0 and 360 counting clockwise from the North), number of satellites and HDOP. ![image](docs_ngweb/source/_static/track_point_popup_en.png) Horizontal dilution of precision or HDOP is a parameter showing how precise the GPS readings are. The smaller the HDOP value, the higher the accuracy of horizontal coordinates. HDOP=1 is ideal, 3-4 is okay, if HDOP is over 6-8 it means that the position of satellites at the moment is unfortunate providing information with low accuracy. HDOP depends on the number of visible satellites, their position in the sky and relative to the receiver. ## Reports By clicking the ‘Reports’ button you can create various types of reports depending on selected tracker and parameters. ![image](docs_ngweb/source/_static/tracker_report_icon_en.png) A separate page for creating tracking reports opens. ![image](docs_ngweb/source/_static/tracking_report_settings_en.png) In the first block, you need to select the trackers for which you want to get an information summary. - report type (mileage, top speed, average speed, spent fuel, stops, [GPX-file](https://docs.nextgis.com/docs_ngweb/source/trackers.html#track-export)); - time range; - grouping by days/hours. Next select the trackers that you want to get information about and press The report will appear on the same page below. ![image](docs_ngweb/source/_static/tracking_report_mileage_en.png) #### NOTE For getting the spent fuel report you need to set up [fuel consumption](https://docs.nextgis.com/docs_ngcom/source/tracking.html#tracker-settings) parameter in NextGIS Web settings (l/100 km) ## Export to GPX You can use the [report page](https://docs.nextgis.com/docs_ngweb/source/trackers.html#tracker-report-icon-pic) to export track with the selected parameters as a GPX file. ![image](docs_ngweb/source/_static/export_as_gpx_en.png) # tracking.html.md # How to enable the monitoring of moving objects (tracking) #### NOTE The number of available trackers depends on the current [plan](https://nextgis.com/pricing-base/). For **Free** and **Mini** - 1 tracker, for **Premium** - 5 trackers. For on-premise solutions, Tracking Hub is available for NextGIS Web [Extended](https://nextgis.com/pricing/#ngwextended) and [Enterprise](https://nextgis.com/pricing/#ngwenterprise). ## Introduction Monitoring of moving objects function is based on registration of the user’s geolocation changing over time and is necessary to record the history of its movement on the ground. Tracking can be useful when you need to save a record of the route, track and further analyze the trajectories of objects moving in space. ## How tracking works A track is a sequence of points in space over time to be displayed on a Web Map. Monitoring process looks like this - a person launches tracking in the mobile application, follows the route, stops tracking at the end. After that, the recorded tracks are sent to the Web GIS server and are displayed on the Web Map (if it’s configured). ## Creating tracker groups If you want see tracks on a Web Map, you need to set up your Web GIS - create special resource groups: 1. Create a resource **Trackers group**. This is a folder which contains trackers (devices that send data to Web GIS). ![image](docs_ngcom/source/_static/group_trackers_en_2.png) 1. Create a resource **Tracker** in the trackers group. To sync a tracker with a mobile device, you need to enter the device’s ID. It can be found in NextGIS Mobile/Collector app’s settings (Mobile: Settings -> My tracks -> under Send location to server). ![image](docs_ngcom/source/_static/create_tracker_en_2.png)![image](docs_ngcom/source/_static/tracker_settings_id_en_2.png) ## Tracking in NextGIS Mobile, Collector and Tracker For now you can track in mobile apps such as [NextGIS Mobile](https://play.google.com/store/apps/details?id=com.nextgis.mobile), [NextGIS Collector](https://play.google.com/store/apps/details?id=com.nextgis.collector) and [NextGIS Tracker](https://play.google.com/store/apps/details?id=com.nextgis.tracker). An Android smartphone is required for that. ### 1. NextGIS Mobile It’s the complete mobile [GIS](https://nextgis.com/nextgis-mobile/) that allows you to create, edit and share geodata both online and offline. First of all you need to install the application and sign in. Then activate the ‘Send location to server’ option in the ‘My tracks’ section of Settings. ![image](docs_ngcom/source/_static/Mobile_settings_en.png) Here you can also see the unique identifier (ID) of the device, which must be specified in the tracker settings in Web GIS. ![image](docs_ngcom/source/_static/Mobile_send_to_server_en.png) The process of recording a track is described in details in the [Tracks](https://docs.nextgis.com/docs_ngmobile/source/tracks.html/) section of the documentation for NextGIS Mobile. ### 2. NextGIS Collector This application is intended for collective data collection. It allows the Web GIS’s owner to get people on a team and begin [data collection](https://docs.nextgis.com/docs_ngcom/source/collector.html#team-participants-mobile-app-installation-and-start-of-data-collection) using mobile devices. Track recording process is similar to NextGIS Mobile’s [algorithm](https://docs.nextgis.com/docs_ngmobile/source/tracks.html#recording-a-track) but with some interface differences. So in order to start a new track you need to tap on the ‘human’ icon in the upper panel and select ‘Start’. ![image](docs_ngcom/source/_static/Collector_icon_en.png)![image](docs_ngcom/source/_static/start_track_en.png) The end of the recording can be done both in the panel in the background mode, and in the same context menu of the top panel by clicking “Stop”. The track record will then appear in your Web GIS. ![image](docs_ngcom/source/_static/stop_track_en.png)![image](docs_ngcom/source/_static/Popup_notification_en.png) The track list is in the second line of the context menu for the track icons. Here you can enable/disable tracks, color them according to the palette, remove or share in GPX format. ![image](docs_ngcom/source/_static/track_list_en.png) **3. NextGIS Tracker** This is a simple app for track recording. [Learn more](https://docs.nextgis.com/docs_ngtracker/source/intro.html). ## Tracking results on the Web Map If the tracker is added to the Web GIS, you can: * [View tracking results](https://docs.nextgis.com/docs_ngweb/source/trackers.html#viewing-tracks-on-a-web-map) on any Web Map of your Web GIS; * [Generate reports](https://docs.nextgis.com/docs_ngweb/source/trackers.html#reports) on mileage, top speed, average speed, spent fuel, stops; * [Export tracks](https://docs.nextgis.com/docs_ngweb/source/trackers.html#track-export) as GPX files. # tracks.html.md # Tracks NextGIS Mobile allows to record and display tracks. Track points are recorded to the internal database and combined to display on the map as a line. ## Settings To record tracks, set up the following parameters: * Grant the mobile app permission to access device location (in the Android Settings). * In My tracks page of the Settings check “Send location to server”: ![image](docs_ngmobile/source/_static/Mobile_send_to_server_en.png) * Copy UID indicated in My tracks section and add the tracker [to your Web GIS](https://docs.nextgis.com/docs_ngcom/source/tracking.html#tracking-create). Now you can send the tracks to Web GIS and [view them on a Web Map](https://docs.nextgis.ru/docs_ngweb/source/trackers.html#tracking-web-map). ## Recording a track Tracks can be recorded in two ways: * [As GPX](https://docs.nextgis.com/docs_ngmobile/source/tracks.html#ngmobile-record-tracks-gpx); * [As new vector feature](https://docs.nextgis.com/docs_ngmobile/source/tracks.html#ngmobile-edit-vector-tracks). ### Record tracks in GPX format For each point of the track, the following information is recorded: date, time, speed (km/h), height (m), course (bearing i.e. the horizontal direction of travel of this device in the range between 0 and 360 counting clockwise from the North), number of satellites and HDOP. To start recording a track open the main menu by tapping three dots in the top right corner and select **Start new track**. ![image](docs_ngmobile/source/_static/ngm_start_track_en.png) Track recording is performed in background mode. You’ll need to allow in your device settings. * Allow background access to geolocation; * Disable battery optimisations (otherwise it may shut down the track recording). See details in our video: Watch on [youtube](https://youtu.be/uPkVkVakppE?si=bZKQqlM4xmwuRqbC). ![image](docs_ngmobile/source/_static/ngm_geoloc_background_en.png)![image](docs_ngmobile/source/_static/ngm_geoloc_all_en.png)![image](docs_ngmobile/source/_static/ngm_batteryopt_disable_en.png)![image](docs_ngmobile/source/_static/ngm_battery_ignore_en.png) To indicate that the process is running a status icon of the walking man is displayed in Android Notification bar. For more information click on it and it will show the track status as shown in [Fig. 1012.](#ngmobile-new-gpx-layer-1-pic) below. ![image](docs_ngmobile/source/_static/new_gpx_layer_1.png) During track recording you can see the geometry of the track on Map screen as shown below in [Fig. 1013.](#ngmobile-new-gpx-layer-2-pic) ![image](docs_ngmobile/source/_static/new_gpx_layer_2.png) Recorded track is displayed on the map immediately even before the recording is completed. The status icon (walking man) is visible in the notification bar. The location marker shows the current device location. #### NOTE Track points are grouped by days and sessions within a day. If track recording continues the next day track will be split up into two parts. If you want to combine them into one track, use [GPX merge](https://toolbox.nextgis.com/t/gpxmerge) To stop track recording, tap **Stop** either in notification bar (see item 4 in [Fig. 1012.](#ngmobile-new-gpx-layer-1-pic)) or in the main menu. ![image](docs_ngmobile/source/_static/ngm_stop_track_en.png) The status icon will disappear from notification bar, the location marker will be replaced by the red flag indicating the end of the track, and the track line will change its colour as shown below in [Fig. 1015.](#ngmobile-new-gpx-layer-3-pic) ![image](docs_ngmobile/source/_static/new_gpx_layer_3.png) You can now manage this track, including its export in GPX format. To learn how to export the tracks see [Exporting tracks in GPX](share.md#ngmobile-export-gpx). Tracks can also be [displayed on a Web Map](https://docs.nextgis.com/docs_ngcom/source/tracking.html#tracking-create). ### Record tracks to vector layer You can also add a feature to an existing line or polygon vector layer by tracking. 1. Tap on Main actions button (see item 8 in [Fig. 943.](main.md#ngmobile-main-activity-pic-1)) and then”Add geometry by walk” button (see item 5 in [Fig. 985.](editing.md#ngmobile-common-action-menu-pic)). It will open list of all editable Linestring/Multilinestring and Polygon/Multipolygon vector layers in a separate dialogue as shown below in [Fig. 1016.](#ngmobile-selectlayer1-pic) ![image](docs_ngmobile/source/_static/ngmobile_selectlayer1.png) 1. Select the layer to which you want to add a new feature by walk. This layer will be opened in Edit mode as shown below in [Fig. 1017.](#ngmobile-new-gpx-vector-1), and NextGIS Mobile will start recording a new geometry to the vector layer. ![image](docs_ngmobile/source/_static/new_gpx_vector_1.png) #### NOTE You can also switch to “Edit by walk” mode by first switching to Edit mode using any of the methods described in [Switching to Edit mode](editing.md#ngmobile-switch-to-edit) section, and then by tapping “Append geometry by walk” button (see item 9 in [Fig. 992.](editing.md#ngmobile-creating-lines-pic), item 11 in [Fig. 993.](editing.md#ngmobile-creating-multilines-pic), item 11 in [Fig. 994.](editing.md#ngmobile-creation-landfill-pic) and item 11 in [Fig. 995.](editing.md#ngmobile-creation-multipolygon-pic)) If you’re not satisfied with the accuracy of the appended geometry, you can access NextGIS Mobile Location settings (see [Fig. 953.](settings.md#ngmobile-settings-place-pic)) directly from “Edit by walk” screen (see item 6 in above [Fig. 1017.](#ngmobile-new-gpx-vector-1)). 1. When recording is finished tap on the “floppy” button (see item 4 in [Fig. 1017.](#ngmobile-new-gpx-vector-1)). It will open the standard Attributes editing form, similar to [Fig. 991.](editing.md#ngmobile-input-form-attributes-pic), as shown below in [Fig. 1018.](#ngmobile-new-gpx-vector-2). ![image](docs_ngmobile/source/_static/new_gpx_vector_2.png) 1. The new feature is now added to the existing Linestring/Multilinestring or Polygon/Multipolygon vector layer. ## Managing recorded tracks To start managing recorded tracks first find “My Tracks” group in Layers tree panel. Then tap on contextual menu button as shown in [Fig. 1019.](#ngm-tree-layers-gpx-pic) and select “List”. ![image](docs_ngmobile/source/_static/tree_layers_gpx.png) This will open a list of recorded tracks as shown in [Fig. 1020.](#ngmobile-tracks-list-gpx-pic) below. Tracks’ points will be grouped by days and sessions within the day. ![image](docs_ngmobile/source/_static/tracks_list_gpx.png) Select a track by ticking the corresponding checkbox, and buttons in Top toolbar will become active as shown in [Fig. 1021.](#ngmobile-layer-gpx-selected-pic) below. ![image](docs_ngmobile/source/_static/layer_gpx_selected.png) To hide a layer from Map screen tap on “Eye” button (item 6 in [Fig. 1021.](#ngmobile-layer-gpx-selected-pic)). You can change the colour of the track tapping the “Colour palette” button (item 3 in [Fig. 1021.](#ngmobile-layer-gpx-selected-pic)). When you tap to open contextual menu (see item 5 in [Fig. 1021.](#ngmobile-layer-gpx-selected-pic)), the following menu items will pop up as shown below in [Fig. 1022.](#ngmobile-layer-gpx-menu-pic). ![image](docs_ngmobile/source/_static/layer_gpx_menu.png) * You can Show or Hide the selected track in the map screen. The starting point is shown in Green marker & the end point is shown in Red marker. * You can delete the track (permanently). * You can select all the tracks and perform above actions for all of them at a once. # transfer.html.md # How to transfer data from one Web GIS to another After trying out the functionality in a cloud Web GIS you may decide to deploy an on-premise version of NextGIS Web. To move your resources to the new Web GIS, you need to download them to your computer and then upload them to the new server. ## Create local copy on your device The easiest way to do it is via [NextGIS Connect plugin](https://docs.nextgis.com/docs_ngconnect/source/index.html). [Create a connection](https://docs.nextgis.com/docs_ngconnect/source/ngc_install.html#ng-connect-new-connection) to your old Web GIS. Select resource(s) in the NextGIS Connect panel and click **Add to QGIS**. If you want to **transfer all the data quickly**, you can select the Main resource group, add it to QGIS and handle the data structure later. If you want to **preserve the resource structure**, follow these steps: 1. Add **Web Maps** to QGIS, saving each one as separate project. When you download a Web Map in NextGIS Connect, all layers and basemaps added to it are added to the project. 2. Add **resource groups** containing layers that are not added to Web Maps, to one big project. The hierarchic structure of resource groups is preserved. You can also get the full resource tree of your Web GIS in table format using Toolbox tool [Web GIS structure to spreadsheet](https://toolbox.nextgis.com/t/web_gis_structure). What resources can be downloaded via NextGIS Connect: * Vector layers with styles * Raster layers with styles * WFS, WMS, TMS layers * WFS, WMS, OGC API - Features services * TMS and WMS connections * Basemaps * Lookup tables - they are added to QGIS as value map widget. To upload the lookup table to the new Web GIS you need to export the values to CSV and re-add the lookup table to the layer using value relation widget. To add multiple resource at once, you can select: - Web Map - a QGIS project will be created containing layers, styles and basemaps. A mutually exclusive group will be created for all the basemap layers. * Demo project - a QGIS project will be created containing layers, styles and basemaps; * Resource group - a new group is created in QGIS containing resources of the types listed above, including Web Maps. Keep in mind: when you add a Web Map to your QGIS project, all layers are added. So if you select a resource group that contains a Web Map + its layers, there may be duplicates. ## Upload data to the new Web GIS In the NextGIS Connect plugin [create a new connection](https://docs.nextgis.com/docs_ngconnect/source/ngc_install.html#ng-connect-new-connection) to the target Web GIS. Open QGIS project with the downloaded data. In the NextGIS Connect panel select a resource group for upload, click **Add to Web GIS** and select **Upload all**. In the pop-up dialog enter the name for the new resource group that is created for the uploaded layers. When you upload an entire QGIS project, Connect creates a folder that contains all the layers of the project preserving the folder structure, plus one Web Map with all the layers added to it. If you have created several projects while creating the local copy of your data, you need to repeat the process for each of them. This way you can transfer most of the resources to the new Web GIS. Some resources, however, are tied to a specific Web GIS, so they need to be created manually. These are non-transferable resources: * [Tracker groups](https://docs.nextgis.com/docs_ngcom/source/tracking.html#tracking-create) * [Trackers](https://docs.nextgis.com/docs_ngcom/source/tracking.html#tracking-create) * [Collector projects](https://docs.nextgis.com/docs_ngweb/source/collector.html#ngw-collector-create-project) * [Tileset](https://docs.nextgis.com/docs_ngweb/source/layers.html#ngw-tile-set) * [File bucket](https://docs.nextgis.com/docs_ngweb/source/create_other.html#ngw-create-file-bucket) * SVG marker library - if you’ve been using a marker library, we recommend embedding the icons into the style, you can do it with the Toolbox tool [Embed SVG into QGS/QML](https://toolbox.nextgis.com/t/embedsvg) ## Alternative way to backup data using Toolbox You can partially transfer resources from one Web GIS to another without using the desktop app with the help of [Toolbox](https://toolbox.nextgis.com/?lang=ru&tags=10). Create local copy on your device: * [Web Map to QGIS project](https://toolbox.nextgis.com/t/webmap2qgis) - saves only the layers added to a Web Map. * [Vector layers from Web GIS to GeoPackage](https://toolbox.nextgis.com/t/ngw_to_gpkg) - saves only vector layers from the selected resource group. Upload to Web GIS: * [Vector layers in Web GIS from archive](https://toolbox.nextgis.com/t/layers2ngw) # transform.html.md # Data conversion * [How to process your data](process.md) * [How to change coordinate reference system of the data](cs_change.md) * [How to convert file to another GIS format](type_change.md) * [How to change data encoding](encoding_change.md) # translation.html.md # How to improve translation NextGIS Web is an open solution, which can be improved by any user. The following user interface languages are currently available for NGW: * Bulgarian * Czech * Deutsch * English * Spanish * French * Italian * Portuguese * Russian * Chinese We invite users to contribute to the quality of our translations. If you are an expert in any of the listed or other languages, you can improve the current user interface by yourself. As soon as 80% of translated content appears, we add a new language to NGW. ## Join the project The translation of [NextGIS Web](https://nextgis.com/nextgis-web/) is carried out on the platform [POEditor](https://poeditor.com/). First, you need to [sign up](https://poeditor.com/login/). After authentication you can join the NextGIS Web GUI project via this [link](https://poeditor.com/join/project?hash=dOVs4gs2WS). Then select languages and click **Join translation**. ![image](docs_ngcom/source/_static/ngw_translation_join_en.png) After that, this [page](https://poeditor.com/projects/) will display a list of projects (in our case, NextGIS Web GUI) that have a set of selected languages. ## How to translate To start translating click on the icon of a specific language in the project. ![image](docs_ngcom/source/_static/ngw_translation_project_en.png) Row order and filter are customizable. There is also a search. ![image](docs_ngcom/source/_static/ngw_translation_bg.png) Strings often contain such parameter names as ‘date_first’ and ‘date_last’ like in the image above. They don’t need to be translated. Bulgarian translation example: * en. - *‘date_first’ and ‘date_last’ are mutually exclusive*. * bg. - *‘date_first’ и ‘date_last’ са взаимноизключващи се*. Also you can see these parameters: %s, %d, %f and like these that also don’t require the translation. When the program is running, they are automatically replaced by string or numeric parameters. Example 1: * en. - *User count: %d*. * bg. - *Брой потребители: %d*. Example 2: * en. - *Field ‘%s(?)’ encoding is broken*. * bg. - *Кодировката на полето ‘%s(?)’ е счупена.*. Please ignore the fact that the quotation marks and brackets are always different (single ‘, double “ or () ). Don’t change and leave them the same when translating - this is important for the code to work correctly. # tropomi2geotiff.html.md # TROPOMI to GeoTIFF The tool converts TROPOMI nitrogen dioxide data to GeoTIFF format. Inputs: * TROPOMI data file in NetCDF format obtained from [https://s5phub.copernicus.eu/dhus/#/home](https://s5phub.copernicus.eu/dhus/#/home). Product type: L2_\_NO2_\_, Timeliness: Offline. Example of a file’s name: S5P_OFFL_L2_\_NO2_\_\_\_20190901T091635_20190901T105804_09761_01_010302_20190907T113505.nc This dataset is available at [https://browser.dataspace.copernicus.eu](https://browser.dataspace.copernicus.eu) or `s3://meeo-s5p/OFFL/L2__NO2___/` (access via AWS CLI). Outputs: * GeoTIFF output image Launch the tool: [https://toolbox.nextgis.com/t/tropomi2geotiff](https://toolbox.nextgis.com/t/tropomi2geotiff) Interactive map with the result of the tool run: ![image](docs_toolbox/source/_static/tropomi2geotiff.png) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # troubleshooting.html.md # Troubleshooting If you encounter any issues while working with the plugin, please use the basic checks described below. ## Problems connecting to Web GIS (NGW) ### Check QGIS version Update software if updates are available. Using our [NextGIS QGIS](https://nextgis.com/nextgis-qgis/) follow: * Check version: Help > About * Check updates: Help > Check QGIS version * Restart QGIS after update ### Check NextGIS Connect version To work, it is recommended to use the latest version of the plugin. You can check and update it as follows: * Top Menu > Plugins > Manage and install plugins * If the version is outdated, there will be a message at the top saying that there is an update for the plugin, and an update button will be available in the lower right corner of the window There are no more updates for QGIS 2.X since NextGIS Connect 0.14.0. Minimum QGIS version is 3.X now. ### For corporate network If you work in the internal corporate network, set up the settings of your proxy (Settings> Options> Network) ### Credentials Check the credentials when creating a connection to Web GIS (URL, username and password). The URL format is [https://demo.nextgis.com](https://demo.nextgis.com). If you forgot your password, instructions for recovering are [here](https://docs.nextgis.com/docs_ngcom/source/faq_webgis.html#ngcom-change-passwords-webgis). ## Issues uploading data If the rasters are not uploaded, check the checkbox in the connection settings “Upload rasters as Cloud Optimized GeoTIFF” (COG). Error “Maximum number of resources reached” can occur if your Web GIS is on Free plan and the number of layers is limited to 15. To upload more layers, [switch to Premium](https://my.nextgis.com/subscription/) in your NextGIS ID account. # tutorial_collect.html.md # Tutorial: Collect Spatial Data in the Field NextGIS Web is a data-centric server GIS allowing you to store, manage and publish spatial data in a flexible and effective way. It has an integrated mobile data collection subsystem that you can use to organize collaborative field work. In this step-by-step tutorial you will learn how to create a data collection project and start gathering spatial information with a mobile application. Register a free cloud account and try it right away! In this example, we will create a project to collect data about trees in the city. An Android smartphone is required to work with mobile application. Setting up * [Step 1. Free account and Web GIS](https://docs.nextgis.com/docs_howto/source/tutorial_collect.html#account) * [Step 2. Resource group](https://docs.nextgis.com/docs_howto/source/tutorial_collect.html#webgis) * [Step 3. Vector layer (database)](https://docs.nextgis.com/docs_howto/source/tutorial_collect.html#create-layer) * [Step 4. Data collecting form](https://docs.nextgis.com/docs_howto/source/tutorial_collect.html#form) * [Step 5. List of field workers](https://docs.nextgis.com/docs_howto/source/tutorial_collect.html#collectors) * [Step 6. Collector project](https://docs.nextgis.com/docs_howto/source/tutorial_collect.html#project) Collect and check the data * [Enter data](https://docs.nextgis.com/docs_howto/source/tutorial_collect.html#fieldwork) * [Check and visualize in Web GIS](https://docs.nextgis.com/docs_howto/source/tutorial_collect.html#check) ## Step 1/6 Create free account and Web GIS Go to my.nextgis.com, click the **Create Account** button and sign up using your email address. After registration your account page would appear. Select the **Web GIS** menu on the left, come up with a name (ngw-quickstart.nextgis.com in this example) and select the nearest Data center location (DE Falkenstein in this example). Then click **Create Web GIS**. ![image](docs_howto/source/_static/tutorial_create_wg_en.png) When the creation process is complete, the contents of the page will change. Direct link to your new Web GIS will appear. ![image](docs_howto/source/_static/tutorial_my_wg_en.png) ## Step 2/6 Access your Web GIS and create resource group Click on the Web GIS link or type it into your browser. You’ll see the main interface of your Web GIS. ![image](docs_howto/source/_static/tutorial_wg_main_en.png) In NextGIS Web everything is a resource — layers, Web Maps, folders (groups), connections to services and databases. Resources are organized as files at your computer — in a tree. Let’s create our first resource, a folder or *resource group* named Data collecting. To do that, click the blue **Create resource** button on the top of the page. ![image](docs_howto/source/_static/tutorial_log_in_en.png) When you click **Create resource**, a window appears showing all available options of what could you create in the current context. Select **Resource group**. ![image](docs_howto/source/_static/tutorial_select_group_en.png) The resource creation window consists of several tabs, in this case we need to set only the name `Data collecting` on the “Resource” tab. ![image](docs_howto/source/_static/collect_create_group_en.png) Click **Create** and you’ll be redirected to the page of the new resource. The URL in your browser is the path to the resource, and the numbers at the end of the URL are the resource ID. ![image](docs_howto/source/_static/collect_group_result_en.png) *Data collecting* is a child for the *Main resource group* folder where we created it. The parent resource is shown above the resource name. Now you can upload data to this folder. ## Step 3/6 Create a vector layer (container for data collecting) Next we need to create a vector layer, it will serve as a database where the collected information about geographical objects would be stored. Click the **Create resource** button, then select **Vector layer**. ![image](docs_howto/source/_static/collect_select_layer_en.png) It is possible to upload a vector layer from a file, or create it from skratch. Open the dropdown menu on the top of the “Vector layer” tab and select **Create empty layer**. ![image](docs_howto/source/_static/collect_create_empty_layer_en.png) In the changed interface select the **Point** geometry type. ![image](docs_howto/source/_static/tutorial_empty_layer_geom_en.png) On the **Resource** tab set the name for the new layer, `Trees`, and click **Create**. The vector layer is created and you are redirected to its page. You can see primary metadata and layer structure (currently empty). ![image](docs_howto/source/_static/collect_vector_result_en.png) ## Step 4/6 Create data collecting form By creating a form we’ll accomplish two things at once: 1. Determine what kind of data we want to collect to the vector layer, 2. Create a comprehensible interface for the data collectors. On the vector layer resource page click **Create resource** and select **Form**. ![image](docs_howto/source/_static/collect_select_form_en.png) Switch the mode to **Design form** ![image](docs_howto/source/_static/collect_design_from_en.png) In this visual drag-n-drop interface you could construct a form that your field workers would see on their mobile devices. This tab is split vertically into three sections: * On the left: a list of available elements, * In the middle: layout for the smartphone screen, * On the right: settings for the selected element. ![image](docs_howto/source/_static/collect_designer_interface_en.png) Click on the **Label** element and drag it to the layout. It appears with the default text value. ![image](docs_howto/source/_static/collect_add_label_en.png) On the right panel find the **Properties** block and set the label value to `Tree species`. This is the title for the first data field we’re going to add. ![image](docs_howto/source/_static/collect_label_text_en.png) Now we need to add the field where collectors enter the data. For this first field we’ll provide the collectors with a predetermined list of tree species.Select the element **Dropdown** and drag it to the layout. A dialog appears that prompts you to select the attribute of the layer to which the data entered in this field is to be written. ![image](docs_howto/source/_static/collect_dropdown_new_en_2.png) Currently we don’t have any attributes yet, so click on the **Add** button. For the new field set up the parameters: * Keyname = `species`, * Display name = `Species`, * Data type = STRING. Then click the blue **Add** button. ![image](docs_howto/source/_static/collect_add_dropdown_en.png) And then **OK** in the Data binding dialog. Now the layout looks like this: ![image](docs_howto/source/_static/collect_dropdown_properties_en.png) Click on the Dropdown element and in the Properties block activate **Remember last value** and **Enable search** checkboxes. Now we need to enter the list of options to choose from in the dropdown. Click **Edit** button next to the Options. An empty table appears. The first column, Value is what would be recorded to the database, Label is what field workers would see in the interface. We’ll keep it simple and have the same things in both columns. Enter six options: `Beech, Oak, Spruce, Pine, Birch, Other`. ![image](docs_howto/source/_static/collect_dropdown_options_en.png) Next element we’re going to add is a simple checkbox. Click on the **Check box** element and drag it to the layout. In the binding dialog add a new field with: * Keyname = `damaged`, * Display name = `damaged`, * Data type = INTEGER. In the element properties set: * Label = `The tree is damaged`. Here’s the result you should get: ![image](docs_howto/source/_static/collect_ckeckbox_en.png) For the next element, click on the **Date & time** and drag it to the layout. In the binding dialog add a new field with: * Keyname = `datetime`, * Display name = `Date and time`, * Data type = DATETIME. In the element properties set *Type* to Date & time. ![image](docs_howto/source/_static/collect_datetime_properties_en.png) Then click on the **Photo** element and drag it to the layout. In the element properties set *Max* number to 5. Now that we added all the elements we need to add the corresponding fields to the layer. Activate the checkbox **Add absent fields to layer**. This is the final look of the form: ![image](docs_howto/source/_static/collect_add_absent_en.png) Click the **Create** button. After creation you are immediately redirected to the new resource page. To allow people to use this form for data collection you need to add them to the list of collectors. ## Step 5/6 Create list of field workers Open the menu in the top right corner of the NextGIS Web interface and go to the **Control panel**. ![image](docs_howto/source/_static/collect_open_control_panel_en.png) Then select **Collector projects**. ![image](docs_howto/source/_static/collect_control_panel_collector_en.png) Here you can manage the list of users connected to your Web GIS as field data collectors. Any user with NextGIS ID account can be added as a field data collector, even if they are not a part of your [team](https://docs.nextgis.com/docs_ngcom/source/teams.html). Initially the list is empty. ![image](docs_howto/source/_static/collect_list_empty_en.png) Click the **Create** button to add a user to the list of collectors. First, add yourself. In the NextGIS ID field enter your email used for the registration on my.nextgis.com. ![image](docs_howto/source/_static/collect_add_collector_en.png) A new entry is added to the list of collectors. ## Step 6/6 Create Collector project Return to the “Data collecting” resource group and create a new resource - **Collector project**. ![image](docs_howto/source/_static/collector_select_project_en.png) On the Resource tab set the name of the project that the data collectors would see in the app. Enter `Trees in the city`. ![image](docs_howto/source/_static/collect_project_name_en.png) On the Project tab, leave all settings at their default values. ![image](docs_howto/source/_static/collect_project_settings_en.png) On the Items tab determine the contents of your project. Which data should the field workers gather? Which layer should they see as a reference on the map? Click **+ Layer** button and select `Trees` layer. ![image](docs_howto/source/_static/collect_project_items_en.png) Click on the added item to see its properties in the panel on the right. Make sure that *Editable* and *Syncable* check boxes are active. ![image](docs_howto/source/_static/collect_item_properties_en.png) On the Collectors tab activate the check box near your email - it adds you as a field data collector to this project. ![image](docs_howto/source/_static/collect_tick_collectors_en.png) Click **Create** to finish. That’s it. A project has been created and field workers could start their work. For this project you’ll act as the data collector yourself. ## Collect data in the field (from the field worker’s perspective) Install NextGIS Collector application on your Android device. It could be found in Google Play. Run the application. Sign in with the email you used to create NextGIS ID and its password. ![image](docs_howto/source/_static/collect_sign_in_en.png) After authorization you can see a list of projects assigned to you. Select **Trees in the city** and confirm joining it. ![image](docs_howto/source/_static/collect_project_list_en.png)![image](docs_howto/source/_static/collect_project_join_en.png) Inside the project you see a list of layers. This project contains only one - *Trees*. Go to the nearest tree and click **USING GPS** - it records the current GPS coordinates of your mobile phone and opens the form to enter the other information. ![image](docs_howto/source/_static/collect_using_gps_en.png) Pick the tree species from the dropdown, check if it’s damaged, add one or several photos, and then click ![button_tick](docs_howto/source/_static/button_tick.png) button to save. ![image](docs_howto/source/_static/collect_tree_new_feature_en.png)![image](docs_howto/source/_static/collect_add_photo_en.png) Data is collected. As a field worker you could go to the next tree and repeat the procedure. ## Check collected data in Web GIS Return to Web GIS and open the *Trees* vector layer resource. In its metadata you can see that the feature count has changed. It’s synchronized as the collected data’s been uploaded to the cloud. ![image](docs_howto/source/_static/collect_feature_count_en.png) To display the added feature click on the preview button: ![image](docs_howto/source/_static/collect_preview_layer_en.png) Or check the attribute values in the feature table: ![image](docs_howto/source/_static/collect_feature_table_en.png) Open the feature preview to see the attached photo. ![image](docs_howto/source/_static/collect_feature_preview_en.png) This allows you to track the data collection process in real time. The layer that stores the data can be used like any other - added to Web Maps, published as tiles or via OGC protocols, downloaded, connected to QGIS and so on. # tutorial_qgis.html.md # Tutorial: Seamless QGIS Integration NextGIS Web is a data-centric server GIS, that allows you to store, manage and publish spatial data in a flexible and effective way. It has a deep integration with QGIS, the leading free and open-source GIS software. Integration covers publishing QGIS projects as Web Maps, connecting to Web Maps as QGIS projects, data syncing and collaborative editing from several QGIS instances. In this step-by-step tutorial you will learn how to publish your QGIS project to the web, then connect to it from another QGIS instance, manage styles at Web Maps from QGIS and edit data from QGIS directly at the server. Register a free cloud account and try it right away! [`Download tutorial data`](https://nextgis.com/tutorials/seamless_qgis_integration.zip) (source: [OpenStreetMap](https://www.openstreetmap.org/), [data.nextgis.com](http://data.nextgis.com), [Copernicus](https://browser.dataspace.copernicus.eu/)) #### SEE ALSO [Store, manage and publish your spatial data](https://docs.nextgis.com/docs_howto/source/tutorial_webgis.html) Publish your QGIS project online 1. [Create free account and Web GIS](https://docs.nextgis.com/docs_howto/source/tutorial_qgis.html#account) 2. [Open and explore QGIS project](https://docs.nextgis.com/docs_howto/source/tutorial_qgis.html#project) 3. [Install NextGIS Connect plugin](https://docs.nextgis.com/docs_howto/source/tutorial_qgis.html#install) 4. [Create a connection](https://docs.nextgis.com/docs_howto/source/tutorial_qgis.html#connection) 5. [Publish QGIS project to NextGIS Web](https://docs.nextgis.com/docs_howto/source/tutorial_qgis.html#publish) Result: [Explore the Web Map and resources](https://docs.nextgis.com/docs_howto/source/tutorial_qgis.html#webmap) Use QGIS to edit data stored in Web GIS 1. [Connect to Web Map from QGIS](https://docs.nextgis.com/docs_howto/source/tutorial_qgis.html#howto-qgis-download) 2. [Update layer styles at the Web Map from QGIS](https://docs.nextgis.com/docs_howto/source/tutorial_qgis.html#howto-qgis-vector-style) 3. [Update raster layer style on a Web Map](https://docs.nextgis.com/docs_howto/source/tutorial_qgis.html#howto-qgis-raster-style) 4. [Edit data from QGIS and explore results at the Web Map](https://docs.nextgis.com/docs_howto/source/tutorial_qgis.html#howto-qgis-edit-data) You can see the detailed instructions below or watch a video: Watch on [youtube](https://youtu.be/mDbkUWVhs_M?si=4UOhAYuEg-AUKwkn). ## Step 1/5 Create free account and Web GIS Go to my.nextgis.com, click the **Create Account** button and sign up using your email address. After registration your account page would appear. Select the **Web GIS** menu on the left, come up with a name (ngw-quickstart.nextgis.com in this example) and select the nearest Data center location (DE Falkenstein in this example). Then click **Create Web GIS**. ![image](docs_howto/source/_static/tutorial_create_wg_en.png) When the creation process is complete, the contents of the page will change. Direct link to your new Web GIS will appear. ![image](docs_howto/source/_static/tutorial_my_wg_en.png) Copy the address of the created Web GIS. In this example: `https://ngw-quickstart.nextgis.com`. You’ll need it later to create a connection. ## Step 2/5 Open and explore QGIS project [Download the tutorial data](https://nextgis.com/tutorials/seamless_qgis_integration.zip) and unzip the archive. Click on the file called `Sursee.qgz` to open it in QGIS. #### NOTE If you don’t have QGIS yet, [download](https://qgis.org/download/) and install it. This is a typical QGIS project with raster and vector layers, a couple of basemaps and rich scale-dependent styles set up with exclickions. Points of interest are styled with advanced “Point Cluster” renderer using dynamic cluster symbol size. There are also embeded SVG icons in the “Road network” layer. ![image](docs_howto/source/_static/tut_sursee_project_en.png) Zoom in to explore multiscale styling. ![image](docs_howto/source/_static/tut_project_zoomed_en.png) ## Step 3/5 Install NextGIS Connect plugin Go to the “Plugins” — “Manage and Install Plugins” menu ![image](docs_howto/source/_static/tut_menu_manage_plugins_en.png) Go to the “All” tab and find a plugin named NextGIS Connect. Use a search bar at the top of the interface for faster access. Click the **Install Plugin** button. ![image](docs_howto/source/_static/tut_install_ngconnect_en.png) After installation NextGIS Connect is available in the “Internet” menu and as a toolbar icon: ![blue shield with white arrows](docs_howto/source/_static/ngconnect_logo-45.png). When NextGIS Connect is active, the side panel is visible. ![image](docs_howto/source/_static/tut_ngconnect_in_qgis_en.png) Go to the plugin settings, using ![gear](docs_howto/source/_static/button_settings.png) icon. This is a place for setting up everything related to QGIS–NextGIS Web integration. First, let’s create a connection. ## Step 4/5 Create a connection To establish a link between your QGIS app and a Web GIS, you need to create a connection. Go to the [Web GIS page](https://my.nextgis.com/webgis/) of your NextGIS ID account and copy the link to your Web GIS (see `tutorial_my_wg_pic`). In this example the link is: `https://ngw-quickstart.nextgis.com`. In QGIS open the NG Connect settings and click on the **New** button in the “Connections” group. ![image](docs_howto/source/_static/tut_ngcn_new_connection_en.png) Enter the Web GIS address to the URL field, then click ![green plus](docs_howto/source/_static/symbologyAdd.png) to create a new Authentication configuration. ![image](docs_howto/source/_static/tut_ngcn_create_connection_en.png) In the new dialog enter the email and password you used to register at my.nextgis.com at step 1, and click the **Save** button. ![image](docs_howto/source/_static/tut_ngcn_authentication_en.png) Click the **Test connection** button to ensure that you entered all the data correctly. Then click the **Save** button. ![image](docs_howto/source/_static/tut_ngcn_test_connection_en.png)![image](docs_howto/source/_static/tut_enable_versioning_en.png) Exit settings by clicking the **OK** button in the bottom of the page. Now in the NextGIS Connect panel you can see the resource tree of your Web GIS. ![image](docs_howto/source/_static/tut_ngcn_panel_connected_en.png) Using this panel you could upload local data to Web GIS, connect remote layers and maps to QGIS, update styles, create services and many more. It also provides a simple way to upload an entire QGIS project as a Web Map. ## Step 5/5 Publish QGIS project to NextGIS Web In NextGIS Connect panel select the *Main resource group* folder, then open dropdown menu with ![button_to_wg](docs_howto/source/_static/button_to_wg.png) icon and select **Upload all**. ![image](docs_howto/source/_static/tut_upload_all_en.png) Enter a name for the project. In this example, it is `Sursee`.A folder with this name is created in Web GIS, and all the project data is uploaded there. ![image](docs_howto/source/_static/tut_upload_name_en.png) The upload starts. You can track the progress by checking the status message. ![image](docs_howto/source/_static/tut_upload_status_en.png) By default, once the Web Map is successfully published, it opens automatically in your browser. Also, you can open it from the Connect panel. Right-click on the Web Map and select “Open in browser” in the context menu. Note that all the layers of the project are now visible in the NextGIS Connect panel. ![image](docs_howto/source/_static/tut_open_in_browser_en.png) Now you can explore the Web Map. Proceed to step 6 to learn how to connect to an existing Web Map in QGIS. ### Explore the Web Map and resources A Web Map has been created from the project. It looks exactly the same as the original QGIS project, because NextGIS Web uses QGIS styles as primary way to define layer styles. ![image](docs_howto/source/_static/tut_sursee_webmap_en.png) You can enable and disable layers and categories within layers. Web Map has its own URL, so you can easily share it. Play with the Web Map interface. Learn more about it: [https://docs.nextgis.com/docs_ngweb/source/webmaps_client.html](https://docs.nextgis.com/docs_ngweb/source/webmaps_client.html) Click the ![blue and black X](docs_howto/source/_static/NextGISLogo.png) icon at the top left corner to view the main interface with the resource list. ![image](docs_howto/source/_static/tut_goto_main_en.png) Open the Sursee folder. For each layer of the original project a corresponding resource was created in it. You can work with the uploaded vector and raster layers independently from the Web Map — modify the data, publish it using different protocols etc. ![image](docs_howto/source/_static/tut_wg_sursee_en.png) What if you’d like to edit the uploaded layers in QGIS? Let’s see how to do it. ## Connect to Web Map from QGIS In QGIS close the project (Project - Close). Imagine that you work from another computer, another QGIS instance. Keep NextGIS Connect panel open (reopen it if it’s closed). In the NextGIS Connect panel, find the Web Map resource *Sursee - webmap*, right-click on it to open the context menu, and select ![button_to_qgis](docs_howto/source/_static/button_to_qgis.png) **Add to QGIS**. ![image](docs_howto/source/_static/tut_add_to_qgis_en.png) QGIS rebuilds the Web Map content locally, downloading all relevant layers and styles and arranging them to match the original structure. What you get is basically the initial project fully reconstructed from the NextGIS Web. ![image](docs_howto/source/_static/tut_downloaded_en.png) Note that in the Layers panel vector layers have special marks to the right of their names: ![synchronized](docs_howto/source/_static/synchronized.png). ![image](docs_howto/source/_static/tut_synched_layers_en.png) They are now linked to the server storage. If the data is updated on the server side, Connect synchronizes the local layer in QGIS. If the synched layer is updated in QGIS, Connect communicates it to the server and updates the data on the server. One of the great uses of it is updating styles on the Web Map. ## Modify layer styles on the Web Map from QGIS Let’s make railroads more bright and visible on our Web Map. In QGIS, find the *Railroad network* layer in the Layers panel. Open the context menu of the “rail” symbol category. On the palette click on the color ring to select the red color. Click on the empty part of the panel to close the dialog. ![image](docs_howto/source/_static/tut_pick_color_en.png) Then find and select the *Railroad network* layer in the NextGIS Connect panel. ![image](docs_howto/source/_static/tut_railroad_select_en.png) Go back to the Layers panel, open the context menu of the “Railroad network” layer and click **NextGIS Connect –> Update layer style**. ![image](docs_howto/source/_static/tut_update_v_style_en.png) Go back to the web browser with the Web Map opened (reopen it from NextGIS Connect panel if it is closed). You’ll find that railroads have changed their color to red. ![image](docs_howto/source/_static/tut_webmap_red_rail_en.png) You can modify raster styles as well. ## Update raster layer style on a Web Map In QGIS, activate *Sentinel 2 imagery* layer. It is a 4 band satellite dataset, currently configured to display in natural colors. ![image](docs_howto/source/_static/tut_raster_initial_en.png) Open its context menu and go to the “Properties”. ![image](docs_howto/source/_static/tut_raster_context_en.png) In the Properties, go to the Symbology tab, and change `Band 3` to `Band 4` in the *Red band* selector. The click **OK**. ![image](docs_howto/source/_static/tut_raster_bands_en.png) We’ve just replaced the Red reflectance data to the Near-InfraRed reflectance data, so the raster visualization has changed significantly. ![image](docs_howto/source/_static/tut_raster_nir_en.png) Open the Web Map and activate the “Sentinel 2 imagery” layer there. It still has its original appearance. ![image](docs_howto/source/_static/tut_raster_webmap_en.png) Return to QGIS, select the *Sentinel 2 imagery* layer in the NextGIS Connect panel. ![image](docs_howto/source/_static/tut_raster_select_en.png) Then open the context menu of the layer and click **NextGIS Connect –> Update layer style**. ![image](docs_howto/source/_static/tut_update_r_style_en.png) Open the Web Map again — layer style has changed. ![image](docs_howto/source/_static/tut_raster_webmap_nir_en.png) NextGIS Web can handle multiband rasters with QGIS styles of any complexity. ## Edit data from QGIS and explore results on the Web Map Return to QGIS, in the Layers panel select *Points of interest* layer, open its context menu and enable ![mActionToggleEditing](docs_howto/source/_static/mActionToggleEditing.png) Editing mode. Since this layer was added from NextGIS Connect, it is linked with Web GIS, so the edits are synchronized with the server. ![image](docs_howto/source/_static/tut_toggle_editing_en.png) Enable Digitizing toolbar and activate the ![button_add_point](docs_howto/source/_static/button_add_point.png) **Add point feature** tool. ![image](docs_howto/source/_static/tut_digitizing_en.png) Let’s place another bbq spot in the forest. Left-click on a suitable place on the map, then enter one attribute value, AMENITY = `bbq`. Then click **OK**. ![image](docs_howto/source/_static/tut_new_point_en.png) Click on ![mActionToggleEditing](docs_howto/source/_static/mActionToggleEditing.png) to exit the Editing mode and select **Save** in the dialog to save the changes. ![image](docs_howto/source/_static/tut_qgis_stop_edit_en.png) After you exit the Editing mode synchronization starts automatically. The new feature is sent to the server. Return to the Web Map to view it. ![image](docs_howto/source/_static/tut_added_on_webmap_en.png) Users can connect to the same server data from multiple QGIS instances and edit the data simultaneously. Our stack provides a seamless, ready-to-go solution to enable team digitizing and data editing in QGIS. # tutorial_qgis.html.md # Tutorial: Seamless QGIS Integration NextGIS Web is a data-centric server GIS, that allows you to store, manage and publish spatial data in a flexible and effective way. It has a deep integration with QGIS, the leading free and open-source GIS software. Integration covers publishing QGIS projects as Web Maps, connecting to Web Maps as QGIS projects, data syncing and collaborative editing from several QGIS instances. In this step-by-step tutorial you will learn how to publish your QGIS project to the web, then connect to it from another QGIS instance, manage styles at Web Maps from QGIS and edit data from QGIS directly at the server. Register a free cloud account and try it right away! [`Download tutorial data`](https://nextgis.com/tutorials/seamless_qgis_integration.zip) (source: [OpenStreetMap](https://www.openstreetmap.org/), [data.nextgis.com](http://data.nextgis.com), [Copernicus](https://browser.dataspace.copernicus.eu/)) #### SEE ALSO [Store, manage and publish your spatial data](https://docs.nextgis.com/docs_ngcom/source/tutorial_webgis.html) Publish your QGIS project online 1. [Create free account and Web GIS](https://docs.nextgis.com/docs_ngcom/source/tutorial_qgis.html#account) 2. [Open and explore QGIS project](https://docs.nextgis.com/docs_ngcom/source/tutorial_qgis.html#project) 3. [Install NextGIS Connect plugin](https://docs.nextgis.com/docs_ngcom/source/tutorial_qgis.html#install) 4. [Create a connection](https://docs.nextgis.com/docs_ngcom/source/tutorial_qgis.html#connection) 5. [Publish QGIS project to NextGIS Web](https://docs.nextgis.com/docs_ngcom/source/tutorial_qgis.html#publish) Result: [Explore the Web Map and resources](https://docs.nextgis.com/docs_ngcom/source/tutorial_qgis.html#webmap) Use QGIS to edit data stored in Web GIS 1. [Connect to Web Map from QGIS](https://docs.nextgis.com/docs_ngcom/source/tutorial_qgis.html#download) 2. [Update layer styles at the Web Map from QGIS](https://docs.nextgis.com/docs_ngcom/source/tutorial_qgis.html#vector_style) 3. [Update raster layer style on a Web Map](https://docs.nextgis.com/docs_ngcom/source/tutorial_qgis.html#raster_style) 4. [Edit data from QGIS and explore results at the Web Map](https://docs.nextgis.com/docs_ngcom/source/tutorial_qgis.html#edit_data) ## Step 1/5 Create free account and Web GIS Go to my.nextgis.com, click the **Create Account** button and sign up using your email address. After registration your account page would appear. Select the **Web GIS** menu on the left, come up with a name (ngw-quickstart.nextgis.com in this example) and select the nearest Data center location (DE Falkenstein in this example). Then click **Create Web GIS**. ![image](docs_ngcom/source/_static/tutorial_create_wg_en.png) When the creation process is complete, the contents of the page will change. Direct link to your new Web GIS will appear. ![image](docs_ngcom/source/_static/tutorial_my_wg_en.png) Copy the address of the created Web GIS. In this example: `https://ngw-quickstart.nextgis.com`. You’ll need it later to create a connection. ## Step 2/5 Open and explore QGIS project [Download the tutorial data](https://nextgis.com/tutorials/seamless_qgis_integration.zip) and unzip the archive. Click on the file called `Sursee.qgz` to open it in QGIS. #### NOTE If you don’t have QGIS yet, [download](https://qgis.org/download/) and install it. This is a typical QGIS project with raster and vector layers, a couple of basemaps and rich scale-dependent styles set up with exclickions. Points of interest are styled with advanced “Point Cluster” renderer using dynamic cluster symbol size. There are also embeded SVG icons in the “Road network” layer. ![image](docs_ngcom/source/_static/tut_sursee_project_en.png) Zoom in to explore multiscale styling. ![image](docs_ngcom/source/_static/tut_project_zoomed_en.png) ## Step 3/5 Install NextGIS Connect plugin Go to the “Plugins” — “Manage and Install Plugins” menu ![image](docs_ngcom/source/_static/tut_menu_manage_plugins_en.png) Go to the “All” tab and find a plugin named NextGIS Connect. Use a search bar at the top of the interface for faster access. Click the **Install Plugin** button. ![image](docs_ngcom/source/_static/tut_install_ngconnect_en.png) After installation NextGIS Connect is available in the “Internet” menu and as a toolbar icon: ![blue shield with white arrows](docs_ngcom/source/_static/ngconnect_logo-45.png). When NextGIS Connect is active, the side panel is visible. ![image](docs_ngcom/source/_static/tut_ngconnect_in_qgis_en.png) Go to the plugin settings, using ![gear](docs_ngcom/source/_static/button_settings.png) icon. This is a place for setting up everything related to QGIS–NextGIS Web integration. First, let’s create a connection. ## Step 4/5 Create a connection To establish a link between your QGIS app and a Web GIS, you need to create a connection. Go to the [Web GIS page](https://my.nextgis.com/webgis/) of your NextGIS ID account and copy the link to your Web GIS (see `tutorial_my_wg_pic`). In this example the link is: `https://ngw-quickstart.nextgis.com`. In QGIS open the NG Connect settings and click on the **New** button in the “Connections” group. ![image](docs_ngcom/source/_static/tut_ngcn_new_connection_en.png) Enter the Web GIS address to the URL field, then click ![green plus](docs_ngcom/source/_static/symbologyAdd.png) to create a new Authentication configuration. ![image](docs_ngcom/source/_static/tut_ngcn_create_connection_en.png) In the new dialog enter the email and password you used to register at my.nextgis.com at step 1, and click the **Save** button. ![image](docs_ngcom/source/_static/tut_ngcn_authentication_en.png) Click the **Test connection** button to ensure that you entered all the data correctly. Then click the **Save** button. ![image](docs_ngcom/source/_static/tut_ngcn_test_connection_en.png)![image](docs_ngcom/source/_static/tut_enable_versioning_en.png) Exit settings by clicking the **OK** button in the bottom of the page. Now in the NextGIS Connect panel you can see the resource tree of your Web GIS. ![image](docs_ngcom/source/_static/tut_ngcn_panel_connected_en.png) Using this panel you could upload local data to Web GIS, connect remote layers and maps to QGIS, update styles, create services and many more. It also provides a simple way to upload an entire QGIS project as a Web Map. ## Step 5/5 Publish QGIS project to NextGIS Web In NextGIS Connect panel select the *Main resource group* folder, then open dropdown menu with ![button_to_wg](docs_ngcom/source/_static/button_to_wg.png) icon and select **Upload all**. ![image](docs_ngcom/source/_static/tut_upload_all_en.png) Enter a name for the project. In this example, it is `Sursee`.A folder with this name is created in Web GIS, and all the project data is uploaded there. ![image](docs_ngcom/source/_static/tut_upload_name_en.png) The upload starts. You can track the progress by checking the status message. ![image](docs_ngcom/source/_static/tut_upload_status_en.png) By default, once the Web Map is successfully published, it opens automatically in your browser. Also, you can open it from the Connect panel. Right-click on the Web Map and select “Open in browser” in the context menu. Note that all the layers of the project are now visible in the NextGIS Connect panel. ![image](docs_ngcom/source/_static/tut_open_in_browser_en.png) Now you can explore the Web Map. Proceed to step 6 to learn how to connect to an existing Web Map in QGIS. ### Explore the Web Map and resources A Web Map has been created from the project. It looks exactly the same as the original QGIS project, because NextGIS Web uses QGIS styles as primary way to define layer styles. ![image](docs_ngcom/source/_static/tut_sursee_webmap_en.png) You can enable and disable layers and categories within layers. Web Map has its own URL, so you can easily share it. Play with the Web Map interface. Learn more about it: [https://docs.nextgis.com/docs_ngweb/source/webmaps_client.html](https://docs.nextgis.com/docs_ngweb/source/webmaps_client.html) Click the ![blue and black X](docs_ngcom/source/_static/NextGISLogo.png) icon at the top left corner to view the main interface with the resource list. ![image](docs_ngcom/source/_static/tut_goto_main_en.png) Open the Sursee folder. For each layer of the original project a corresponding resource was created in it. You can work with the uploaded vector and raster layers independently from the Web Map — modify the data, publish it using different protocols etc. ![image](docs_ngcom/source/_static/tut_wg_sursee_en.png) What if you’d like to edit the uploaded layers in QGIS? Let’s see how to do it. ## Connect to Web Map from QGIS In QGIS close the project (Project - Close). Imagine that you work from another computer, another QGIS instance. Keep NextGIS Connect panel open (reopen it if it’s closed). In the NextGIS Connect panel, find the Web Map resource *Sursee - webmap*, right-click on it to open the context menu, and select ![button_to_qgis](docs_ngcom/source/_static/button_to_qgis.png) **Add to QGIS**. ![image](docs_ngcom/source/_static/tut_add_to_qgis_en.png) QGIS rebuilds the Web Map content locally, downloading all relevant layers and styles and arranging them to match the original structure. What you get is basically the initial project fully reconstructed from the NextGIS Web. ![image](docs_ngcom/source/_static/tut_downloaded_en.png) Note that in the Layers panel vector layers have special marks to the right of their names: ![synchronized](docs_ngcom/source/_static/synchronized.png). ![image](docs_ngcom/source/_static/tut_synched_layers_en.png) They are now linked to the server storage. If the data is updated on the server side, Connect synchronizes the local layer in QGIS. If the synched layer is updated in QGIS, Connect communicates it to the server and updates the data on the server. One of the great uses of it is updating styles on the Web Map. ## Modify layer styles on the Web Map from QGIS Let’s make railroads more bright and visible on our Web Map. In QGIS, find the *Railroad network* layer in the Layers panel. Open the context menu of the “rail” symbol category. On the palette click on the color ring to select the red color. Click on the empty part of the panel to close the dialog. ![image](docs_ngcom/source/_static/tut_pick_color_en.png) Then find and select the *Railroad network* layer in the NextGIS Connect panel. ![image](docs_ngcom/source/_static/tut_railroad_select_en.png) Go back to the Layers panel, open the context menu of the “Railroad network” layer and click **NextGIS Connect –> Update layer style**. ![image](docs_ngcom/source/_static/tut_update_v_style_en.png) Go back to the web browser with the Web Map opened (reopen it from NextGIS Connect panel if it is closed). You’ll find that railroads have changed their color to red. ![image](docs_ngcom/source/_static/tut_webmap_red_rail_en.png) You can modify raster styles as well. ## Update raster layer style on a Web Map In QGIS, activate *Sentinel 2 imagery* layer. It is a 4 band satellite dataset, currently configured to display in natural colors. ![image](docs_ngcom/source/_static/tut_raster_initial_en.png) Open its context menu and go to the “Properties”. ![image](docs_ngcom/source/_static/tut_raster_context_en.png) In the Properties, go to the Symbology tab, and change `Band 3` to `Band 4` in the *Red band* selector. The click **OK**. ![image](docs_ngcom/source/_static/tut_raster_bands_en.png) We’ve just replaced the Red reflectance data to the Near-InfraRed reflectance data, so the raster visualization has changed significantly. ![image](docs_ngcom/source/_static/tut_raster_nir_en.png) Open the Web Map and activate the “Sentinel 2 imagery” layer there. It still has its original appearance. ![image](docs_ngcom/source/_static/tut_raster_webmap_en.png) Return to QGIS, select the *Sentinel 2 imagery* layer in the NextGIS Connect panel. ![image](docs_ngcom/source/_static/tut_raster_select_en.png) Then open the context menu of the layer and click **NextGIS Connect –> Update layer style**. ![image](docs_ngcom/source/_static/tut_update_r_style_en.png) Open the Web Map again — layer style has changed. ![image](docs_ngcom/source/_static/tut_raster_webmap_nir_en.png) NextGIS Web can handle multiband rasters with QGIS styles of any complexity. ## Edit data from QGIS and explore results on the Web Map Return to QGIS, in the Layers panel select *Points of interest* layer, open its context menu and enable ![mActionToggleEditing](docs_ngcom/source/_static/mActionToggleEditing.png) Editing mode. Since this layer was added from NextGIS Connect, it is linked with Web GIS, so the edits are synchronized with the server. ![image](docs_ngcom/source/_static/tut_toggle_editing_en.png) Enable Digitizing toolbar and activate the ![button_add_point](docs_ngcom/source/_static/button_add_point.png) **Add point feature** tool. ![image](docs_ngcom/source/_static/tut_digitizing_en.png) Let’s place another bbq spot in the forest. Left-click on a suitable place on the map, then enter one attribute value, AMENITY = `bbq`. Then click **OK**. ![image](docs_ngcom/source/_static/tut_new_point_en.png) Click on ![mActionToggleEditing](docs_ngcom/source/_static/mActionToggleEditing.png) to exit the Editing mode and select **Save** in the dialog to save the changes. ![image](docs_ngcom/source/_static/tut_qgis_stop_edit_en.png) After you exit the Editing mode synchronization starts automatically. The new feature is sent to the server. Return to the Web Map to view it. ![image](docs_ngcom/source/_static/tut_added_on_webmap_en.png) Users can connect to the same server data from multiple QGIS instances and edit the data simultaneously. Our stack provides a seamless, ready-to-go solution to enable team digitizing and data editing in QGIS. # tutorial_track.html.md # Track Asset and Team Locations in Real Time NextGIS Web is a data-centric server GIS that allows you to store, manage and publish spatial data in a flexible and effective way. It has an integrated mobile data collection subsystem, that you can use to organize collaborative field work and track assets and teams in real time as well as simply record your own movements. In this step-by-step tutorial you will learn how to start collecting GPS tracks and monitor them on a real-time map! An Android smartphone is required to work with mobile application. Basic: * Step 1 [Create free account and Web GIS](https://docs.nextgis.com/docs_howto/source/tutorial_track.html#account) * Step 2 [Install and set up NextGIS Tracker on your Android device](https://docs.nextgis.com/docs_howto/source/tutorial_track.html#install) * Step 3 [Start collecting locations](https://docs.nextgis.com/docs_howto/source/tutorial_track.html#record) * Step 4 [View the current tracker location and recorded track on a Web Map](https://docs.nextgis.com/docs_howto/source/tutorial_track.html#position) Advanced: * [Create reports](https://docs.nextgis.com/docs_howto/source/tutorial_track.html#report) * [Export GPX file](https://docs.nextgis.com/docs_howto/source/tutorial_track.html#export) * [Manage trackers](https://docs.nextgis.com/docs_howto/source/tutorial_track.html#manage) ## Step 1/4 Create free account and Web GIS Go to [my.nextgis.com](https://my.nextgis.com/), click the **Create Account** button and sign up using your email address. After registration your account page would appear. Select the **Web GIS** menu on the left, come up with a name (ngw-quickstart.nextgis.com in this example) and select the nearest Data center location (DE Falkenstein in this example). Then click **Create Web GIS**. ![image](docs_howto/source/_static/tutorial_create_wg_en.png) When the creation process is complete, the contents of the page will change. Direct link to your new Web GIS will appear. ![image](docs_howto/source/_static/tutorial_my_wg_en.png) ## Step 2/4 Install and set up NextGIS Tracker on your Android device Install NextGIS Tracker application on your Android device. It could be found in Google Play. Run the application. Allow access to your device’s location. You can start recording local tracks immediately and then share them as GPX files. But we want to sync the tracks with Web GIS. Tap the synchronization switch in the top right corner of the interface: ![image](docs_howto/source/_static/sync_turn_on_en.png) On the next screen enter your Web GIS name (created at step 1, in this example ngw-quickstart.nextgis.com), then the email and password you used to create NextGIS ID. ![image](docs_howto/source/_static/webgis_creds_en.png) Tap on the green icon in the bottom corner to save the changes. Active synchronization is indicated by the blue color of the switch as well as the ![circular arrows](docs_howto/source/_static/icon_layer_sync.png) symbol next to it. Now the App sends all collected GPS tracks to the Web GIS. ![image](docs_howto/source/_static/sync_active_en.png) ## Step 3/4 Start collecting locations as you go for a short walk To start recording your first track, tap on the green “Start” button in the bottom right corner. Tha application would ask you to allow allow the app to access location continuously even when the app is not in use. It is important for so that App is able to record tracks. ![image](docs_howto/source/_static/start_track_en.png) Go to your device Settings and select “Allow all the time” for the Tracker app. The dialog may vary depending on Android version. ![image](docs_howto/source/_static/allow_all_the_time_en.png) Now when you return to the app there’s a new status, “Collecting tracking data and syncing…”. ![image](docs_howto/source/_static/status_synching_en.png) Take a short walk to collect some locations! You monitor your movements in real time using Web Map. ## Step 4/4 View the current tracker location and recorded track on a Web Map Open your Web GIS in a browser by clicking on the highlighted link in [your account](https://my.nextgis.com/webgis/) or by typing it directly in the address bar. You’ll see the main interface of your Web GIS. ![image](docs_howto/source/_static/webgis_main_interface_en.png) In NextGIS Web everything is a resource — directories, layers, Web Maps, connections to services and databases. Resources are organized as files at your computer — in a tree. You already have a couple of resources: * Main Web Map - a default resource created with the new Web GIS; * “TrackersGroup” - a resource created by the NextGIS Tracker application when you set up the synchronization. You also can manage trackers manually. Click on the ![map with a magnifying glass](docs_howto/source/_static/button_open_web_map.png) icon to open the “Main Web Map” resource in the display mode: ![image](docs_howto/source/_static/open_main_webmap_en.png) This Web Map is empty - no layers, just a default basemap. But in the left panel a Trackers menu is available, activate it. ![image](docs_howto/source/_static/activate_tracker_panel_en.png) By default, you can explore data collected by your Tracker app on every Web Map created in your Web GIS. It could be disabled in Web Map settings. The Trackers panel lists all connected tracker devices. You have only one tracker connected to Web GIS right now, click the ![pointed shape with a dot](docs_howto/source/_static/button_tracker_lastpoint.png) “Last known point” button. ![image](docs_howto/source/_static/tracker_last_point_en.png) Last recorded location would be shown on the Web Map. If the device with the tracker moves, you see it in real-time. ![image](docs_howto/source/_static/tracker_current_location_en.png) By clicking other buttons you could view track line and track points recorded within the selected time range. ![image](docs_howto/source/_static/track_line_points_en.png) Hover over track points to see detailed information on the date, time, speed, direction and other parameters. ![image](docs_howto/source/_static/track_hover_details_en.png) After you’ve collected some tracks, you can analyze them by [creating reports](https://docs.nextgis.com/docs_howto/source/tutorial_track.html#report) or [export the tracks](https://docs.nextgis.com/docs_howto/source/tutorial_track.html#export) in GPX format to share and create backup. If you have Premium subscription, you can have [multiple devices connected](https://docs.nextgis.com/docs_howto/source/tutorial_track.html#manage) to your Web GIS as trackers. ## Create reports On the Trackers panel click on the “Reports” icon: ![image](docs_howto/source/_static/trackers_reports_en.png) Here you can create different types of reports. In the “Report type” dropdown menu select **Average speed**. Then set the time range covering your today’s walk. In the “Group by” field select grouping by hours. Tick the only available tracker, then click **Create report** button. ![image](docs_howto/source/_static/report_average_speed_en.png) You’ve got a fast calculation of average speed. ## Export GPX file To export your track as file, go to the Reports page (see `trackers_reports_pic`). Then in the “Report type” field select **GPX file**. After clicking the **Create report** button you get the “Download GPX file” link. This GPX file could be used in QGIS or other applications. ## Manage trackers When you enable Web GIS syncing in NextGIS Tracker app, it sets up everything on the Web GIS side automatically, as shown in this tutorial. But also you can create and manage trackers manually, creating a [Trackers group resource and Tracker resources](https://docs.nextgis.com/docs_ngcom/source/tracking.html#tracking-create) within it. It allows to have hundreds of trackers connected to Web GIS in a production environment. #### SEE ALSO Other NextGIS mobile apps also support tracking and Web GIS synchronization. More details: * [NextGIS Mobile](https://docs.nextgis.com/docs_ngmobile/source/index.html) * [NextGIS Collector](https://docs.nextgis.com/docs_collector/source/index.html) # tutorial_webgis.html.md # Tutorial: Store, manage and publish your spatial data NextGIS Web is a data-centric server GIS, allowing you to store, manage and publish spatial data in a flexible and effective way. In this step-by-step tutorial you will learn how to convert your GIS files into shareable Web Maps, tile and OGC services, as well as to create and manage data directly on the server. Register a free cloud account and try it right away! [`Download tutorial data`](https://nextgis.com/tutorials/store_manage_publish_geospatial_data.zip) (source: [Wrocław Spatial Information System](https://geoportal.wroclaw.pl/)) Basic 1. [Create Account and Web GIS](https://docs.nextgis.com/docs_howto/source/tutorial_webgis.html#step-1-6-create-free-account-and-web-gis) 2. [Create Resource group](https://docs.nextgis.com/docs_howto/source/tutorial_webgis.html#step-2-6-access-your-web-gis-and-create-resource-group) 3. [Upload vector layer](https://docs.nextgis.com/docs_howto/source/tutorial_webgis.html#step-3-6-upload-and-publish-vector-layer) 4. [Upload style](https://docs.nextgis.com/docs_howto/source/tutorial_webgis.html#step-4-6-upload-a-style) 5. [Upload raster layer](https://docs.nextgis.com/docs_howto/source/tutorial_webgis.html#step-5-6-upload-and-publish-raster-layer) 6. [Publish Web Map](https://docs.nextgis.com/docs_howto/source/tutorial_webgis.html#step-6-6-publish-web-map) Advanced 1. [Add external WMS layer to Web Map](https://docs.nextgis.com/docs_howto/source/tutorial_webgis.html#add-external-wms-layer-to-web-map) 2. [Add basemaps](https://docs.nextgis.com/docs_howto/source/tutorial_webgis.html#add-basemaps-to-web-map) 3. [Create vector layer inside Web GIS](https://docs.nextgis.com/docs_howto/source/tutorial_webgis.html#create-vector-layer-inside-web-gis) 4. [Edit vector layer on Web Map, add file attachments](https://docs.nextgis.com/docs_howto/source/tutorial_webgis.html#edit-vector-layer-on-a-web-map-add-file-attachments) 5. [Publish OGC API — Features service](https://docs.nextgis.com/docs_howto/source/tutorial_webgis.html#ogc-api) 6. [What next](https://docs.nextgis.com/docs_howto/source/tutorial_webgis.html#what-next) ## Step 1/6 Create free account and Web GIS Go to my.nextgis.com, click the **Create Account** button and sign up using your email address. After registration your account page would appear. Select the **Web GIS** menu on the left, come up with a name (ngw-quickstart.nextgis.com in this example) and select the nearest Data center location (DE Falkenstein in this example). Then click **Create Web GIS**. ![image](docs_howto/source/_static/tutorial_create_wg_en.png) When the creation process is complete, the contents of the page will change. Direct link to your new Web GIS will appear. ![image](docs_howto/source/_static/tutorial_my_wg_en.png) ## Step 2/6 Access your Web GIS and create resource group Click on the Web GIS link or type it into your browser. You’ll see the main interface of your Web GIS. ![image](docs_howto/source/_static/tutorial_wg_main_en.png) In NextGIS Web everything is a resource — layers, Web Maps, folders (groups), connections to services and databases. Resources are organized as files at your computer — in a tree. Let’s create our first resource, a folder or *resource group* named Wroclaw. To do that, click the blue **Create resource** button on the top of the page. ![image](docs_howto/source/_static/tutorial_log_in_en.png) When you click **Create resource**, a window appears showing all available options of what could you create in the current context. Select **Resource group**. ![image](docs_howto/source/_static/tutorial_select_group_en.png) The resource creation window consists of several tabs, in this case we need to set only the name `Wroclaw` on the “Resource” tab. ![image](docs_howto/source/_static/tutorial_create_group_en.png) Click **Create** and you’ll be redirected to the page of the new resource. ![image](docs_howto/source/_static/tutorial_group_result_en.png) The URL in your browser is the path to the resource, and the numbers at the end of the URL are the resource ID. *Wroclaw* is a child for the *Main resource group* folder where we created it. The parent resource is shown above the resource name. Now you can upload data to this folder. ## Step 3/6 Upload and publish vector layer [Download the tutorial data](https://nextgis.com/tutorials/store_manage_publish_geospatial_data.zip) and unzip the archive. Inside the *Wroclaw* folder, click **Create resource** and select the **Vector layer** type of resource. ![image](docs_howto/source/_static/tutorial_select_vlayer_en.png) You’ll see the interface for resource creation with several tabs. ![image](docs_howto/source/_static/tutorial_create_vlayer_upload_en.png) The default tab is called **Vector layer**. Add the file called `bicycle_roads.gpkg` from the tutorial dataset to the field **Select a dataset** by drag-and-drop or click on the field and then select the file. After the upload completes, the file size is displayed. Switch to the **Resource tab** and enter the Dislpay name for the new layer, for example, `Bicycle roads`. Then click the **Create** button. ![image](docs_howto/source/_static/tutorial_create_vlayer_name_en.png) The vector layer is created and you are redirected to its page. The numbers at the end of the URL represent the ID of the layer. This page has the information about the layer: * Its place in the resource tree (Main resource group / Wroclaw); * Basic metadata (geometry type, feature count etc.); * List of fields a.k.a. attribute structure; ![image](docs_howto/source/_static/tutorial_vlayer_result_en.png) In the **External access** section you’ll find an automatically generated URL that allows to access the layer via MVT vector tiles. Right away you can connect this data to a Web app or add it to QGIS using this link. [More on MVT tiles](https://docs.nextgis.com/docs_ngweb/source/services.html#mvt-vector-tiles). To view the data open the Feature table by clicking ![button_open_feature_table](docs_howto/source/_static/button_open_feature_table.png) **Table** in the menu on the right. ![image](docs_howto/source/_static/tutorial_feature_table_en.png) Select any feature and click **Open** to view it. In the opened window you see all the properties of the selected feature, including its attributes, geometry and a map representation on top of the default basemap. ![image](docs_howto/source/_static/tutorial_feature_preview_en.png) The feature table allows you to inspect, edit and manage vector layer features as independent database records, without using maps or other applications. ([More on how to do it](https://docs.nextgis.com/docs_ngweb/source/feature_table.html#ngw-feature-table-blank)) ## Step 4/6 Upload a style If you want to generate **TMS tiles** or **add the layer to a Web Map**, you need to define its appearance a.k.a. a **style**. You can click **Create default QGIS style**, but for this layer we have a special file that determins colors and structures of the lines depending on the attribute values. On the layer page click **Create resource** button. You’ll see a different set of available resources, because a vector layer could only be a parent for styles and forms. We use QGIS styles as the primary way to define data appearance. Select **QGIS vector style**. ![image](docs_howto/source/_static/tutorial_select_qstyle_en.png) Upload the file called `bicycle_roads.qml` from the tutorial dataset. Then click the **Create** button. ![image](docs_howto/source/_static/tutorial_create_qstyle_en.png) The vector style is created and you are redirected to its page. Click **Preview** in the menu on the right to see how the style looks. In the **External access** section you’ll find an auto-generated URL you can use to connect this styled data as a Tiled Map Service, for example, add it to QGIS. [More on TMS](https://docs.nextgis.com/docs_ngweb/source/services.html#tms-service) Now you can upload another type of layer or skip to the [Web Map creation](https://docs.nextgis.com/docs_howto/source/tutorial_webgis.html#step-6-6-publish-web-map). ## Step 5/6 Upload and publish raster layer Return to the *Wroclaw* resource group by clicking its name at the current path. ![image](docs_howto/source/_static/tutorial_return_folder_en.png) Click the **Create resource** button and select **Raster layer**. ![image](docs_howto/source/_static/tutorial_select_raster_layer_en.png) On the **Raster layer** tab drag and drop the file called `plan.tif` from the tutorial dataset or click **Select the dataset** and select the file. Then click the **Create** button. ![image](docs_howto/source/_static/tutorial_raster_upload_en.png) The raster layer is created and you are redirected to its page. Here you can see: * Its place in the resource tree (Main resource group / Wroclaw); * Basic metadata (bands, dimensions etc.); ![image](docs_howto/source/_static/tutorial_raster_result_en.png) In the **External access** section you’ll find an auto-generated **Cloud Optimized GeoTIFF** access URL to this data. Right away you can connect this data to external resources using this link. You can style rasters with QGIS styles by creating child resources. To style RGB(A) rasters, however, you can simply click **Create default QGIS style**. Let’s do it. The default raster style is created and you are redirected to its page. ![image](docs_howto/source/_static/tutorial_def_raster_style_result_en.png) **Raster tiles (TMS)** access URL to this data is automatically generated. Right away you can use this link to connect this data as styled raster tiles to external resources. You could also click **Preview** in the right menu and explore the uploaded raster. ![image](docs_howto/source/_static/tutorial_raster_preview_en.png) Now let’s create a Web Map with the data we’ve just uploaded. ## Step 6/6 Publish Web Map Now that we have a couple of styled layers we are ready to publish our first Web Map. Return to the *Wroclaw* resource group and create a new resource — **Web Map**. ![image](docs_howto/source/_static/tutorial_select_webmap_en.png) There are a lot of things that could be set for a Web Map. On the “Resource” tab enter the name for the map, e.g. `Wroclaw`. ![image](docs_howto/source/_static/tutorial_webmap_name_en.png) On the **Layers** tab you define the content of this Web Map. Click the ![button_plus_layer](docs_howto/source/_static/button_plus_layer.png) **Layer** button. What is added to the map is the visual representation of the data, so you need to select styles, not layers. That is why checkboxes near layer names are not active. You could enter the layer and select its child style, or simply click ![button_pick_first](docs_howto/source/_static/button_pick_first.png) **Select first eligible child resource** on the right side of the layer to select it. Select both *“Bicycle roads”* and *“plan”* layers. ![image](docs_howto/source/_static/tutorial_webmap_add_layers_en.png) After that you can click on the layer to edit its properties. ![image](docs_howto/source/_static/tutorial_webmap_layer_settings_en.png) Switch to the **Settings** tab. Find the “Initial extent” row and click the **From layer** button. Then select *Bicycle roads* layer and click the **Pick selected** button. Now the map will open viewing the area of this layer. ![image](docs_howto/source/_static/tutorial_webmap_extent_en.png) Click the **Create** button to finalize Web Map creation. Web Map resources have a special **Display** mode. It could be accessed from the right panel of the resource interface. ![image](docs_howto/source/_static/tutorial_webmap_display_en.png) Or, if you return to the *Wroclaw* resource group, click the ![button_open_web_map](docs_howto/source/_static/button_open_web_map.png) map icon to the right of the Web Map resource name. When you click ![button_open_web_map](docs_howto/source/_static/button_open_web_map.png) **Display**, an interactive Web Map opens. Each map has its own display URL and a lot of tools to explore and manage the data. ![image](docs_howto/source/_static/tutorial_webmap_displayed_en.png) Tabs on the left allow to manage layers, identify, find and edit features, share or print the map. See documentation for more information about Web Map tools and panels: [https://docs.nextgis.com/docs_ngweb/source/webmaps_client.html](https://docs.nextgis.com/docs_ngweb/source/webmaps_client.html) You can create as many Web Maps as you need, combining available layers and their styles. Let’s explore what else you can do: * [Add data published on external servers](https://docs.nextgis.com/docs_howto/source/tutorial_webgis.html#add-external-wms-layer-to-web-map); * [Change basemap](https://docs.nextgis.com/docs_howto/source/tutorial_webgis.html#add-basemaps-to-web-map); * [Create a vector layer from skratch](https://docs.nextgis.com/docs_howto/source/tutorial_webgis.html#create-vector-layer-inside-web-gis); * [Edit vector features on a Web Map and attach files](https://docs.nextgis.com/docs_howto/source/tutorial_webgis.html#edit-vector-layer-on-a-web-map-add-file-attachments); * [Publish OGC API — Features service](https://docs.nextgis.com/docs_howto/source/tutorial_webgis.html#publish-ogc-api-features-service). ## Add external WMS layer to Web Map You can connect external [WMS](../../glossary.md#term-WMS), [WFS](../../glossary.md#term-WFS), [TMS](../../glossary.md#term-TMS) and [PostGIS](../../glossary.md#term-PostGIS) data to NextGIS Web. Let’s explore it with the example of Wroclaw orthophoto serving as a public WMS service. Return to the *Wroclaw* resource group and create a new resource — **WMS connection**. ![image](docs_howto/source/_static/tutorial_select_wms_con_en.png) On the resource tab set the name — `Wroclaw orthophoto service`: ![image](docs_howto/source/_static/tutorial_wms_con_name_en.png) On the WMS Connection tab set the URL: [https://gis1.um.wroc.pl/arcgis/services/ogc/OGC_ortofoto_2024/MapServer/WMSServer](https://gis1.um.wroc.pl/arcgis/services/ogc/OGC_ortofoto_2024/MapServer/WMSServer) ![image](docs_howto/source/_static/tutorial_wms_con_link_en.png) Then click the **Create** button. Return to the *Wroclaw* group again and create another resource — **WMS layer**. ![image](docs_howto/source/_static/tutorial_select_wms_layer_en.png) On the Resource tab set the name — `Wroclaw orthophoto layer`: ![image](docs_howto/source/_static/tutorial_wms_layer_name_en.png) On the **WMS Layer** tab click the *“WMS Connection”* field and select **Wroclaw orthophoto service** resource, then click **Pick selected**. ![image](docs_howto/source/_static/tutorial_wms_layer_pick_con_en.png) In the *“Image format”* dropdown list select **image/png**, and in the *WMS layers* dropdown list select **Ortofotomapa 2024 - GUGiK**. ![image](docs_howto/source/_static/tutorial_wms_layer_settings_en.png) Then click the **Create** button. WMS connection and layer are created. In the **External access** section you’ll find an auto-generated URL that can be used to connect the data as **raster tiles**. Right away you can add this data to a Web app or a desktop app such as QGIS. Your Web GIS serves as a proxy for the WMS service. ![image](docs_howto/source/_static/tutorial_wms_layer_result_en.png) To **add the WMS layer to the Web Map** return to the *Wroclaw* resource group and click the ![button_edit](docs_howto/source/_static/button_edit.png) pencil icon next to the Web Map. ![image](docs_howto/source/_static/tutorial_webmap_edit_select_en.png) On the **Layers** tab click ![button_plus_layer](docs_howto/source/_static/button_plus_layer.png) **Layer** button, select *“Wroclaw orthophoto layer”* and click **Pick selected** button. WMS layer is now added to the Web Map. ![image](docs_howto/source/_static/tutorial_webmap_add_wms_en.png) Save the map and open it in display mode. You’ll see that a detailed orthophotomap from external source is now underlaying the previously uploaded data. ![image](docs_howto/source/_static/tutorial_webmap_with_wms_en.png) ## Add basemaps to Web Map By default Web Maps use the standard OpenStreetMap basemap. But you can connect other basemaps and use them with your Web Maps. Return to the *Wroclaw* resource group and create a new resource — **Basemap**. ![image](docs_howto/source/_static/tutorial_select_basemap_en.png) Here you can use our public crowdsourced collection of map services, qms.nextgis.com. Start entering the name of the basemap in the **Pick from QMS** field and select what you need from search results. ![image](docs_howto/source/_static/tutorial_qms_pick_poistron_en.png) All other fields will be filled automatically, also a preview will be available to explore the selected basemap. An alternative way to create a basemap is to enter the URL for the **XYZ tiles** manually. Use the slider in the top right corner to compare this basemap to the default OSM. ![image](docs_howto/source/_static/tutorial_basemap_preview_en.png) On the **Resource** tab set the name of the basemap. ![image](docs_howto/source/_static/tutorial_basemap_name_en.png) Click the **Create** button. To add the newly created basemap to the Web Map return to the *Wroclaw* resource group and ![button_edit](docs_howto/source/_static/button_edit.png) edit the Web Map resource. ![image](docs_howto/source/_static/tutorial_webmap_enter_update_en.png) On the **Basemaps** tab click ![button_plus_layer](docs_howto/source/_static/button_plus_layer.png) **Add** button and select the created Basemap resource. Then click **Pick selected** and save the Web Map. ![image](docs_howto/source/_static/tutorial_webmap_add_basemap_en.png) Open the Web Map in ![button_open_web_map](docs_howto/source/_static/button_open_web_map.png) display mode. Now the new basemap is used. ![image](docs_howto/source/_static/tutorial_webmap_positron_en.png) ## Create vector layer inside Web GIS It is possible not only to upload data from files, but also to create datasets right inside the Web GIS. Return to the *Wroclaw* resource group and create a new resource — **Vector layer**. ![image](docs_howto/source/_static/tutorial_select_empty_layer_en.png) Then open the dropdown menu on the “Vector layer” tab and select **Create empty layer**. ![image](docs_howto/source/_static/tutorial_create_empty_layer_en.png) In the changed interface select the **Point** geometry type. ![image](docs_howto/source/_static/tutorial_empty_layer_geom_en.png) On the **Resource** tab set the name for the new layer, e.g. `Bicycle parkings`, and click the **Create** button. ![image](docs_howto/source/_static/tutorial_empty_layer_name_en.png) The vector layer is created and you are redirected to its page. Now you need to add attributes to it. Click ![button_edit](docs_howto/source/_static/button_edit.png) **Update** in the right menu. ![image](docs_howto/source/_static/tutorial_empty_layer_result_en.png) Here, on the **Fields** tab, click the ![button_plus_layer](docs_howto/source/_static/button_plus_layer.png) **Add** button. Set up the properties of the new field in the side panel: * Display name: `Number of parking spaces`, * Keyname: `parking_spaces`, * Type: INTEGER. ![image](docs_howto/source/_static/tutorial_add_field_en.png) Then click the **Save** button. Now it’s time to create a style for the new layer. On the vector layer resource page click **Create resource** and select **QGIS vector style**. On the **QGIS Style** tab open the dropdown menu and select **User-defined style**. ![image](docs_howto/source/_static/tutorial_style_custom_select_en.png) Simple style constructor is available here. We recommend using QGIS to create styles, but for quick tasks this built-in constructor could be useful. Set up a blue circle with size 12 and white stroke with 1 width. Then click the **Create** button. ![image](docs_howto/source/_static/tutorial_style_custom_set_en.png) A new vector layer is created inside Web GIS. You can now add it to Web Maps and [publish it via OGC services](https://docs.nextgis.com/docs_howto/source/tutorial_webgis.html#publish-ogc-api-features-service). But first we’ll add some features to the newly created layer using Web interface. ## Edit vector layer on a Web Map, add file attachments Return to the *Wroclaw* resource group and enter the ![button_edit](docs_howto/source/_static/button_edit.png) Update mode of the Web Map. ![image](docs_howto/source/_static/tutorial_webmap_edit_select_en.png) First, go to the **Layers** tab, click the ![button_plus_layer](docs_howto/source/_static/button_plus_layer.png) **Layer** button and add *Bicycle parkings* layer by clicking ![button_pick_first](docs_howto/source/_static/button_pick_first.png) **Select first eligible child resource** on the right side of the layer. Then click **Pick selected**, and drag *Bicycle parkings* layers to the top of the layers list. ![image](docs_howto/source/_static/tutorial_webmap_add_empty_en.png) Next, go to the **Settings** tab, find the **Layers editing** dropdown menu and select **Enable**. Save the changes. ![image](docs_howto/source/_static/tutorial_webmap_enable_editing_en.png) You have just added the new vector layer to the map and activated layer editing. Now go to the ![button_open_web_map](docs_howto/source/_static/button_open_web_map.png) “Display” mode of the map. ![image](docs_howto/source/_static/tutorial_webmap_display_en.png) Zoom in to a place on the map where you would like to place a new bicycle parking. Next, open the layer’s context menu by clicking the three dots to the right of its name, and select ![button_edit](docs_howto/source/_static/button_edit.png) **Edit**. ![image](docs_howto/source/_static/tutorial_layer_start_edit_en.png) New tools have appeared on the map. Select ![+](docs_howto/source/_static/button_maptool_plus.png) tool and click on the desired place. ![image](docs_howto/source/_static/tutorial_add_point_en.png) Pop-up modal window appears, where you can set attribute values, e.g. `15` as the number of parking spaces. ![image](docs_howto/source/_static/tutorial_add_point_attr_en.png) There are also two additional tabs available. On the **Description** tab you could enter any rich-text with images to describe the feature. On the **Attachments** tab you could attach an unlimited number of photos or any sort of files to the feature. Change tab to the “Attachments”, click the ![button_upload](docs_howto/source/_static/button_upload.png) **Upload** button and select `Bicycle_parking.jpg` and `WRM_Regulations.pdf` files from the tutorial dataset. ![image](docs_howto/source/_static/tutorial_add_attachments_en.png) Click the **OK** button to save the feature. Then go to the context menu of *Bicycle parkings* layer again and click **Stop editing**. ![image](docs_howto/source/_static/tutorial_stop_edit_en.png) Confirm the edits by clicking the **Save** button in the pop-up dialog. ![image](docs_howto/source/_static/tutorial_edit_confirm_en.png) A new feature is created. Click on the point symbol on the map. An identification panel will appear, where you can explore the attributes and attachments of the feature. ![image](docs_howto/source/_static/tutorial_feature_identify_en.png) Click on the attached photos and panoramas to view them. Now that we have data in this layer, let’s publish it via OGC API Features. ## Publish OGC API — Features service We’ll publish this layer with OGC API — Features protocol so that it can be edited in external software. Go back to the *Wroclaw* resource group and create a new resource, **OGC API Features service**. ![image](docs_howto/source/_static/tutorial_select_ogcapif_en.png) Service creation is a simple process. All you need is to select a layer. On the **OGC API Features service** tab click the ![button_plus_layer](docs_howto/source/_static/button_plus_layer.png) **Add** button and select the *Bicycle parkings* layer, then click the **Pick selected** button. ![image](docs_howto/source/_static/tutorial_ogcapif_select_layer_en.png) By default the resource would be called just “OGC API Features service”. To set a custom display name go to the **Resource** tab and enter `Bicycle parkings (features service)`. Then click the **Create** button. #### NOTE The name “Bicycle parkings” is already used for the vector layer resource, so you need to add “features service” at the end. ![image](docs_howto/source/_static/tutorial_ogcapif_name_en.png) The service is created and you are redirected to its page. In the **External access** section you can see the endpoint of the published service. Copy the URL to use it in external applications. ![image](docs_howto/source/_static/tutorial_ogcapif_result_en.png) ## What next Congratulations! You’ve completed the tutorial and learned the basics of geospatial data management in NextGIS Web. There are still a lot of things to explore. You can learn to: * manage users and permissions, allowing to set up unique access combinations for each layer, service and map; * manage coordinate reference systems; * manage data directly from QGIS, including project publishing, style management and collaborative editing; * and many more. Try other tutorials or dive into documentation to learn more. # tutorial_webgis.html.md # Tutorial: Store, manage and publish your spatial data NextGIS Web is a data-centric server GIS, allowing you to store, manage and publish spatial data in a flexible and effective way. In this step-by-step tutorial you will learn how to convert your GIS files into shareable Web Maps, tile and OGC services, as well as to create and manage data directly on the server. Register a free cloud account and try it right away! [`Download tutorial data`](https://nextgis.com/tutorials/store_manage_publish_geospatial_data.zip) (source: [Wrocław Spatial Information System](https://geoportal.wroclaw.pl/)) Basic 1. [Create Account and Web GIS](https://docs.nextgis.com/docs_ngcom/source/tutorial_webgis.html#step-1-6-create-free-account-and-web-gis) 2. [Create Resource group](https://docs.nextgis.com/docs_ngcom/source/tutorial_webgis.html#step-2-6-access-your-web-gis-and-create-resource-group) 3. [Upload vector layer](https://docs.nextgis.com/docs_ngcom/source/tutorial_webgis.html#step-3-6-upload-and-publish-vector-layer) 4. [Upload style](https://docs.nextgis.com/docs_ngcom/source/tutorial_webgis.html#step-4-6-upload-a-style) 5. [Upload raster layer](https://docs.nextgis.com/docs_ngcom/source/tutorial_webgis.html#step-5-6-upload-and-publish-raster-layer) 6. [Publish Web Map](https://docs.nextgis.com/docs_ngcom/source/tutorial_webgis.html#step-6-6-publish-web-map) Advanced 1. [Add external WMS layer to Web Map](https://docs.nextgis.com/docs_ngcom/source/tutorial_webgis.html#add-external-wms-layer-to-web-map) 2. [Add basemaps](https://docs.nextgis.com/docs_ngcom/source/tutorial_webgis.html#add-basemaps-to-web-map) 3. [Create vector layer inside Web GIS](https://docs.nextgis.com/docs_ngcom/source/tutorial_webgis.html#create-vector-layer-inside-web-gis) 4. [Edit vector layer on Web Map, add file attachments](https://docs.nextgis.com/docs_ngcom/source/tutorial_webgis.html#edit-vector-layer-on-a-web-map-add-file-attachments) 5. [Publish OGC API — Features service](https://docs.nextgis.com/docs_ngcom/source/tutorial_webgis.html#ogc-api) 6. [What next](https://docs.nextgis.com/docs_ngcom/source/tutorial_webgis.html#what-next) ## Step 1/6 Create free account and Web GIS Go to my.nextgis.com, click the **Create Account** button and sign up using your email address. After registration your account page would appear. Select the **Web GIS** menu on the left, come up with a name (ngw-quickstart.nextgis.com in this example) and select the nearest Data center location (DE Falkenstein in this example). Then click **Create Web GIS**. ![image](docs_ngcom/source/_static/tutorial_create_wg_en.png) When the creation process is complete, the contents of the page will change. Direct link to your new Web GIS will appear. ![image](docs_ngcom/source/_static/tutorial_my_wg_en.png) ## Step 2/6 Access your Web GIS and create resource group Click on the Web GIS link or type it into your browser. You’ll see the main interface of your Web GIS. ![image](docs_ngcom/source/_static/tutorial_wg_main_en.png) In NextGIS Web everything is a resource — layers, Web Maps, folders (groups), connections to services and databases. Resources are organized as files at your computer — in a tree. Let’s create our first resource, a folder or *resource group* named Wroclaw. To do that, click the blue **Create resource** button on the top of the page. ![image](docs_ngcom/source/_static/tutorial_log_in_en.png) When you click **Create resource**, a window appears showing all available options of what could you create in the current context. Select **Resource group**. ![image](docs_ngcom/source/_static/tutorial_select_group_en.png) The resource creation window consists of several tabs, in this case we need to set only the name `Wroclaw` on the “Resource” tab. ![image](docs_ngcom/source/_static/tutorial_create_group_en.png) Click **Create** and you’ll be redirected to the page of the new resource. ![image](docs_ngcom/source/_static/tutorial_group_result_en.png) The URL in your browser is the path to the resource, and the numbers at the end of the URL are the resource ID. *Wroclaw* is a child for the *Main resource group* folder where we created it. The parent resource is shown above the resource name. Now you can upload data to this folder. ## Step 3/6 Upload and publish vector layer [Download the tutorial data](https://nextgis.com/tutorials/store_manage_publish_geospatial_data.zip) and unzip the archive. Inside the *Wroclaw* folder, click **Create resource** and select the **Vector layer** type of resource. ![image](docs_ngcom/source/_static/tutorial_select_vlayer_en.png) You’ll see the interface for resource creation with several tabs. ![image](docs_ngcom/source/_static/tutorial_create_vlayer_upload_en.png) The default tab is called **Vector layer**. Add the file called `bicycle_roads.gpkg` from the tutorial dataset to the field **Select a dataset** by drag-and-drop or click on the field and then select the file. After the upload completes, the file size is displayed. Switch to the **Resource tab** and enter the Dislpay name for the new layer, for example, `Bicycle roads`. Then click the **Create** button. ![image](docs_ngcom/source/_static/tutorial_create_vlayer_name_en.png) The vector layer is created and you are redirected to its page. The numbers at the end of the URL represent the ID of the layer. This page has the information about the layer: * Its place in the resource tree (Main resource group / Wroclaw); * Basic metadata (geometry type, feature count etc.); * List of fields a.k.a. attribute structure; ![image](docs_ngcom/source/_static/tutorial_vlayer_result_en.png) In the **External access** section you’ll find an automatically generated URL that allows to access the layer via MVT vector tiles. Right away you can connect this data to a Web app or add it to QGIS using this link. [More on MVT tiles](https://docs.nextgis.com/docs_ngweb/source/external.html). To view the data open the Feature table by clicking ![button_open_feature_table](docs_ngcom/source/_static/button_open_feature_table.png) **Table** in the menu on the right. ![image](docs_ngcom/source/_static/tutorial_feature_table_en.png) Select any feature and click **Open** to view it. In the opened window you see all the properties of the selected feature, including its attributes, geometry and a map representation on top of the default basemap. ![image](docs_ngcom/source/_static/tutorial_feature_preview_en.png) The feature table allows you to inspect, edit and manage vector layer features as independent database records, without using maps or other applications. ([More on how to do it](https://docs.nextgis.com/docs_ngweb/source/feature_table.html#ngw-feature-table-blank)) ## Step 4/6 Upload a style If you want to generate **TMS tiles** or **add the layer to a Web Map**, you need to define its appearance a.k.a. a **style**. You can click **Create default QGIS style**, but for this layer we have a special file that determins colors and structures of the lines depending on the attribute values. On the layer page click **Create resource** button. You’ll see a different set of available resources, because a vector layer could only be a parent for styles and forms. We use QGIS styles as the primary way to define data appearance. Select **QGIS vector style**. ![image](docs_ngcom/source/_static/tutorial_select_qstyle_en.png) Upload the file called `bicycle_roads.qml` from the tutorial dataset. Then click the **Create** button. ![image](docs_ngcom/source/_static/tutorial_create_qstyle_en.png) The vector style is created and you are redirected to its page. Click **Preview** in the menu on the right to see how the style looks. In the **External access** section you’ll find an auto-generated URL you can use to connect this styled data as a Tiled Map Service, for example, add it to QGIS. [More on TMS](https://docs.nextgis.com/docs_ngweb/source/external.html#tms) Now you can upload another type of layer or skip to the [Web Map creation](https://docs.nextgis.com/docs_ngcom/source/tutorial_webgis.html#step-6-6-publish-web-map). ## Step 5/6 Upload and publish raster layer Return to the *Wroclaw* resource group by clicking its name at the current path. ![image](docs_ngcom/source/_static/tutorial_return_folder_en.png) Click the **Create resource** button and select **Raster layer**. ![image](docs_ngcom/source/_static/tutorial_select_raster_layer_en.png) On the **Raster layer** tab drag and drop the file called `plan.tif` from the tutorial dataset or click **Select the dataset** and select the file. Then click the **Create** button. ![image](docs_ngcom/source/_static/tutorial_raster_upload_en.png) The raster layer is created and you are redirected to its page. Here you can see: * Its place in the resource tree (Main resource group / Wroclaw); * Basic metadata (bands, dimensions etc.); ![image](docs_ngcom/source/_static/tutorial_raster_result_en.png) In the **External access** section you’ll find an auto-generated **Cloud Optimized GeoTIFF** access URL to this data. Right away you can connect this data to external resources using this link. You can style rasters with QGIS styles by creating child resources. To style RGB(A) rasters, however, you can simply click **Create default QGIS style**. Let’s do it. The default raster style is created and you are redirected to its page. ![image](docs_ngcom/source/_static/tutorial_def_raster_style_result_en.png) **Raster tiles (TMS)** access URL to this data is automatically generated. Right away you can use this link to connect this data as styled raster tiles to external resources. You could also click **Preview** in the right menu and explore the uploaded raster. ![image](docs_ngcom/source/_static/tutorial_raster_preview_en.png) Now let’s create a Web Map with the data we’ve just uploaded. ## Step 6/6 Publish Web Map Now that we have a couple of styled layers we are ready to publish our first Web Map. Return to the *Wroclaw* resource group and create a new resource — **Web Map**. ![image](docs_ngcom/source/_static/tutorial_select_webmap_en.png) There are a lot of things that could be set for a Web Map. On the “Resource” tab enter the name for the map, e.g. `Wroclaw`. ![image](docs_ngcom/source/_static/tutorial_webmap_name_en.png) On the **Layers** tab you define the content of this Web Map. Click the ![button_plus_layer](docs_ngcom/source/_static/button_plus_layer.png) **Layer** button. What is added to the map is the visual representation of the data, so you need to select styles, not layers. That is why checkboxes near layer names are not active. You could enter the layer and select its child style, or simply click ![button_pick_first](docs_ngcom/source/_static/button_pick_first.png) **Select first eligible child resource** on the right side of the layer to select it. Select both *“Bicycle roads”* and *“plan”* layers. ![image](docs_ngcom/source/_static/tutorial_webmap_add_layers_en.png) After that you can click on the layer to edit its properties. ![image](docs_ngcom/source/_static/tutorial_webmap_layer_settings_en.png) Switch to the **Settings** tab. Find the “Initial extent” row and click the **From layer** button. Then select *Bicycle roads* layer and click the **Pick selected** button. Now the map will open viewing the area of this layer. ![image](docs_ngcom/source/_static/tutorial_webmap_extent_en.png) Click the **Create** button to finalize Web Map creation. Web Map resources have a special **Display** mode. It could be accessed from the right panel of the resource interface. ![image](docs_ngcom/source/_static/tutorial_webmap_display_en.png) Or, if you return to the *Wroclaw* resource group, click the ![button_open_web_map](docs_ngcom/source/_static/button_open_web_map.png) map icon to the right of the Web Map resource name. When you click ![button_open_web_map](docs_ngcom/source/_static/button_open_web_map.png) **Display**, an interactive Web Map opens. Each map has its own display URL and a lot of tools to explore and manage the data. ![image](docs_ngcom/source/_static/tutorial_webmap_displayed_en.png) Tabs on the left allow to manage layers, identify, find and edit features, share or print the map. See documentation for more information about Web Map tools and panels: [https://docs.nextgis.com/docs_ngweb/source/webmaps_client.html](https://docs.nextgis.com/docs_ngweb/source/webmaps_client.html) You can create as many Web Maps as you need, combining available layers and their styles. Let’s explore what else you can do: * [Add data published on external servers](https://docs.nextgis.com/docs_ngcom/source/tutorial_webgis.html#add-external-wms-layer-to-web-map); * [Change basemap](https://docs.nextgis.com/docs_ngcom/source/tutorial_webgis.html#add-basemaps-to-web-map); * [Create a vector layer from skratch](https://docs.nextgis.com/docs_ngcom/source/tutorial_webgis.html#create-vector-layer-inside-web-gis); * [Edit vector features on a Web Map and attach files](https://docs.nextgis.com/docs_ngcom/source/tutorial_webgis.html#edit-vector-layer-on-a-web-map-add-file-attachments); * [Publish OGC API — Features service](https://docs.nextgis.com/docs_ngcom/source/tutorial_webgis.html#publish-ogc-api-features-service). ## Add external WMS layer to Web Map You can connect external [WMS](../../glossary.md#term-WMS), [WFS](../../glossary.md#term-WFS), [TMS](../../glossary.md#term-TMS) and [PostGIS](../../glossary.md#term-PostGIS) data to NextGIS Web. Let’s explore it with the example of Wroclaw orthophoto serving as a public WMS service. Return to the *Wroclaw* resource group and create a new resource — **WMS connection**. ![image](docs_ngcom/source/_static/tutorial_select_wms_con_en.png) On the resource tab set the name — `Wroclaw orthophoto service`: ![image](docs_ngcom/source/_static/tutorial_wms_con_name_en.png) On the WMS Connection tab set the URL: [https://gis1.um.wroc.pl/arcgis/services/ogc/OGC_ortofoto_2024/MapServer/WMSServer](https://gis1.um.wroc.pl/arcgis/services/ogc/OGC_ortofoto_2024/MapServer/WMSServer) ![image](docs_ngcom/source/_static/tutorial_wms_con_link_en.png) Then click the **Create** button. Return to the *Wroclaw* group again and create another resource — **WMS layer**. ![image](docs_ngcom/source/_static/tutorial_select_wms_layer_en.png) On the Resource tab set the name — `Wroclaw orthophoto layer`: ![image](docs_ngcom/source/_static/tutorial_wms_layer_name_en.png) On the **WMS Layer** tab click the *“WMS Connection”* field and select **Wroclaw orthophoto service** resource, then click **Pick selected**. ![image](docs_ngcom/source/_static/tutorial_wms_layer_pick_con_en.png) In the *“Image format”* dropdown list select **image/png**, and in the *WMS layers* dropdown list select **Ortofotomapa 2024 - GUGiK**. ![image](docs_ngcom/source/_static/tutorial_wms_layer_settings_en.png) Then click the **Create** button. WMS connection and layer are created. In the **External access** section you’ll find an auto-generated URL that can be used to connect the data as **raster tiles**. Right away you can add this data to a Web app or a desktop app such as QGIS. Your Web GIS serves as a proxy for the WMS service. ![image](docs_ngcom/source/_static/tutorial_wms_layer_result_en.png) To **add the WMS layer to the Web Map** return to the *Wroclaw* resource group and click the ![button_edit](docs_ngcom/source/_static/button_edit.png) pencil icon next to the Web Map. ![image](docs_ngcom/source/_static/tutorial_webmap_edit_select_en.png) On the **Layers** tab click ![button_plus_layer](docs_ngcom/source/_static/button_plus_layer.png) **Layer** button, select *“Wroclaw orthophoto layer”* and click **Pick selected** button. WMS layer is now added to the Web Map. ![image](docs_ngcom/source/_static/tutorial_webmap_add_wms_en.png) Save the map and open it in display mode. You’ll see that a detailed orthophotomap from external source is now underlaying the previously uploaded data. ![image](docs_ngcom/source/_static/tutorial_webmap_with_wms_en.png) ## Add basemaps to Web Map By default Web Maps use the standard OpenStreetMap basemap. But you can connect other basemaps and use them with your Web Maps. Return to the *Wroclaw* resource group and create a new resource — **Basemap**. ![image](docs_ngcom/source/_static/tutorial_select_basemap_en.png) Here you can use our public crowdsourced collection of map services, qms.nextgis.com. Start entering the name of the basemap in the **Pick from QMS** field and select what you need from search results. ![image](docs_ngcom/source/_static/tutorial_qms_pick_poistron_en.png) All other fields will be filled automatically, also a preview will be available to explore the selected basemap. An alternative way to create a basemap is to enter the URL for the **XYZ tiles** manually. Use the slider in the top right corner to compare this basemap to the default OSM. ![image](docs_ngcom/source/_static/tutorial_basemap_preview_en.png) On the **Resource** tab set the name of the basemap. ![image](docs_ngcom/source/_static/tutorial_basemap_name_en.png) Click the **Create** button. To add the newly created basemap to the Web Map return to the *Wroclaw* resource group and ![button_edit](docs_ngcom/source/_static/button_edit.png) edit the Web Map resource. ![image](docs_ngcom/source/_static/tutorial_webmap_enter_update_en.png) On the **Basemaps** tab click ![button_plus_layer](docs_ngcom/source/_static/button_plus_layer.png) **Add** button and select the created Basemap resource. Then click **Pick selected** and save the Web Map. ![image](docs_ngcom/source/_static/tutorial_webmap_add_basemap_en.png) Open the Web Map in ![button_open_web_map](docs_ngcom/source/_static/button_open_web_map.png) display mode. Now the new basemap is used. ![image](docs_ngcom/source/_static/tutorial_webmap_positron_en.png) ## Create vector layer inside Web GIS It is possible not only to upload data from files, but also to create datasets right inside the Web GIS. Return to the *Wroclaw* resource group and create a new resource — **Vector layer**. ![image](docs_ngcom/source/_static/tutorial_select_empty_layer_en.png) Then open the dropdown menu on the “Vector layer” tab and select **Create empty layer**. ![image](docs_ngcom/source/_static/tutorial_create_empty_layer_en.png) In the changed interface select the **Point** geometry type. ![image](docs_ngcom/source/_static/tutorial_empty_layer_geom_en.png) On the **Resource** tab set the name for the new layer, e.g. `Bicycle parkings`, and click the **Create** button. ![image](docs_ngcom/source/_static/tutorial_empty_layer_name_en.png) The vector layer is created and you are redirected to its page. Now you need to add attributes to it. Click ![button_edit](docs_ngcom/source/_static/button_edit.png) **Update** in the right menu. ![image](docs_ngcom/source/_static/tutorial_empty_layer_result_en.png) Here, on the **Fields** tab, click the ![button_plus_layer](docs_ngcom/source/_static/button_plus_layer.png) **Add** button. Set up the properties of the new field in the side panel: * Display name: `Number of parking spaces`, * Keyname: `parking_spaces`, * Type: INTEGER. ![image](docs_ngcom/source/_static/tutorial_add_field_en.png) Then click the **Save** button. Now it’s time to create a style for the new layer. On the vector layer resource page click **Create resource** and select **QGIS vector style**. On the **QGIS Style** tab open the dropdown menu and select **User-defined style**. ![image](docs_ngcom/source/_static/tutorial_style_custom_select_en.png) Simple style constructor is available here. We recommend using QGIS to create styles, but for quick tasks this built-in constructor could be useful. Set up a blue circle with size 12 and white stroke with 1 width. Then click the **Create** button. ![image](docs_ngcom/source/_static/tutorial_style_custom_set_en.png) A new vector layer is created inside Web GIS. You can now add it to Web Maps and [publish it via OGC services](https://docs.nextgis.com/docs_ngcom/source/tutorial_webgis.html#publish-ogc-api-features-service). But first we’ll add some features to the newly created layer using Web interface. ## Edit vector layer on a Web Map, add file attachments Return to the *Wroclaw* resource group and enter the ![button_edit](docs_ngcom/source/_static/button_edit.png) Update mode of the Web Map. ![image](docs_ngcom/source/_static/tutorial_webmap_edit_select_en.png) First, go to the **Layers** tab, click the ![button_plus_layer](docs_ngcom/source/_static/button_plus_layer.png) **Layer** button and add *Bicycle parkings* layer by clicking ![button_pick_first](docs_ngcom/source/_static/button_pick_first.png) **Select first eligible child resource** on the right side of the layer. Then click **Pick selected**, and drag *Bicycle parkings* layers to the top of the layers list. ![image](docs_ngcom/source/_static/tutorial_webmap_add_empty_en.png) Next, go to the **Settings** tab, find the **Layers editing** dropdown menu and select **Enable**. Save the changes. ![image](docs_ngcom/source/_static/tutorial_webmap_enable_editing_en.png) You have just added the new vector layer to the map and activated layer editing. Now go to the ![button_open_web_map](docs_ngcom/source/_static/button_open_web_map.png) “Display” mode of the map. ![image](docs_ngcom/source/_static/tutorial_webmap_display_en.png) Zoom in to a place on the map where you would like to place a new bicycle parking. Next, open the layer’s context menu by clicking the three dots to the right of its name, and select ![button_edit](docs_ngcom/source/_static/button_edit.png) **Edit**. ![image](docs_ngcom/source/_static/tutorial_layer_start_edit_en.png) New tools have appeared on the map. Select ![+](docs_ngcom/source/_static/button_maptool_plus.png) tool and click on the desired place. ![image](docs_ngcom/source/_static/tutorial_add_point_en.png) Pop-up modal window appears, where you can set attribute values, e.g. `15` as the number of parking spaces. ![image](docs_ngcom/source/_static/tutorial_add_point_attr_en.png) There are also two additional tabs available. On the **Description** tab you could enter any rich-text with images to describe the feature. On the **Attachments** tab you could attach an unlimited number of photos or any sort of files to the feature. Change tab to the “Attachments”, click the ![button_upload](docs_ngcom/source/_static/button_upload.png) **Upload** button and select `Bicycle_parking.jpg` and `WRM_Regulations.pdf` files from the tutorial dataset. ![image](docs_ngcom/source/_static/tutorial_add_attachments_en.png) Click the **OK** button to save the feature. Then go to the context menu of *Bicycle parkings* layer again and click **Stop editing**. ![image](docs_ngcom/source/_static/tutorial_stop_edit_en.png) Confirm the edits by clicking the **Save** button in the pop-up dialog. ![image](docs_ngcom/source/_static/tutorial_edit_confirm_en.png) A new feature is created. Click on the point symbol on the map. An identification panel will appear, where you can explore the attributes and attachments of the feature. ![image](docs_ngcom/source/_static/tutorial_feature_identify_en.png) Click on the attached photos and panoramas to view them. Now that we have data in this layer, let’s publish it via OGC API Features. ## Publish OGC API — Features service We’ll publish this layer with OGC API — Features protocol so that it can be edited in external software. Go back to the *Wroclaw* resource group and create a new resource, **OGC API Features service**. ![image](docs_ngcom/source/_static/tutorial_select_ogcapif_en.png) Service creation is a simple process. All you need is to select a layer. On the **OGC API Features service** tab click the ![button_plus_layer](docs_ngcom/source/_static/button_plus_layer.png) **Add** button and select the *Bicycle parkings* layer, then click the **Pick selected** button. ![image](docs_ngcom/source/_static/tutorial_ogcapif_select_layer_en.png) By default the resource would be called just “OGC API Features service”. To set a custom display name go to the **Resource** tab and enter `Bicycle parkings (features service)`. Then click the **Create** button. #### NOTE The name “Bicycle parkings” is already used for the vector layer resource, so you need to add “features service” at the end. ![image](docs_ngcom/source/_static/tutorial_ogcapif_name_en.png) The service is created and you are redirected to its page. In the **External access** section you can see the endpoint of the published service. Copy the URL to use it in external applications. ![image](docs_ngcom/source/_static/tutorial_ogcapif_result_en.png) ## What next Congratulations! You’ve completed the tutorial and learned the basics of geospatial data management in NextGIS Web. There are still a lot of things to explore. You can learn to: * manage users and permissions, allowing to set up unique access combinations for each layer, service and map; * manage coordinate reference systems; * manage data directly from QGIS, including project publishing, style management and collaborative editing; * and many more. Try other tutorials or dive into documentation to learn more. # type_change.html.md # How to convert file to another GIS format * [Order data](https://data.nextgis.com/en/) for your area of interest, e.g. in GeoJSON format. * Go to the [orders](https://data.nextgis.com/en/orders/actual/) page and download the archive when it’s complete. * **Unpack** the archive. * Import target layer, which GIS format you want to change, in [QGIS](https://qgis.org/en/site/forusers/download.html). * Right-click on a target layer in Layers Panel, select option “Save as…”. Thus you’ll create a copy of the layer, but in desired GIS format. ![image](docs_data/source/_static/cs_change_select_save_en.png) * In the pop-up window set a format, a name and a path to a new file. Press “OK”. ![image](docs_data/source/_static/type_change_en.png) * A new layer will be created in the desired GIS format. # ui.html.md # User interface NextGIS Tracker app has two principal screens: * Main screen; * Settings screen. ## Main screen The main screen of the app is shown on [Fig. 1125.](#ui-tracker-main-pic). ![image](docs_ngtracker/source/_static/tracker_main_en_2.png) The main screen shows information about track recording. In the **Current location** section: * Information about the track in progress (if GPS is available); * No information about the track in progress (no GPS access); In the **Status** section: * If no recording is in progress, the message is: “Stand by. Tap Start to start collecting tracking data.”; * If a recording is in progress, the message is “Collecting tracking data and syncing …”; In the **Tracks** section: * If you have recorded tracks, they are shown in this section. Tracks can be exported to GPX file; * If there are no tracks, the section is empty; * Button that starts/stops track recording. ## Settings Tap the menu button in the top right corner of the app screen, then select “Settings”. Settings screen is shown on [Fig. 1126.](#tr-settings-pic). ![image](docs_ngtracker/source/_static/tr_settings_en.png) On the Settings screen you can configure the following parameters: In the **Sync** section: * “Sync with the cloud” - enable or disable synchronization with Web GIS; * “Device ID” - copy the ID of your device; In the **Tracks** section: * “Divide tracks by days” - at midnight the current track stops and a new one begins; * “Coordinate pick time interval” - how often the app detects and records coordinates. Select from a dropdown list an interval between 1 second and 45 min.; * “Minimum distance to pick coordinates” - select the smallest change in distance to be marked as a new location (1-300 m); * “Sync interval, sec” - select from a dropdown list how often to synchronize tracks with Web GIS (min 1 sec., max 45 min.); * “Max points to send at once” - select from a dropdown list a number between 1 and 300. # ui.html.md # User interface The top bar contains the following elements: Press **Toolbox** to browse the catalog of tools. Press **My tasks** to see the list of your tool runs. To the right you’ll find your username and userpic. Click on the downward arrow to open the user menu. From this menu you can go to your profile or log out. **Main page** On the main page below the top panel you’ll find the search bar and tags. Select one or several tags to filter tools. To remove a tag from the filter, click on it again. To remove all tags from the filter, press **Reset**. Tools catalog is displayed on the main page. Each tool has a separate card with short description and tags. Click on the card to open the tool page. To add a tool to Favorites, click on the bookmark icon in the top right corner of the card. To see the full list of Favorites, select the “Favorites” tag from the tag section. # update_plugins.html.md # Update plugins Open QGIS and in the menu bar select `Plugins ‣ Manage and install plugins`. ![image](docs_ngqgis/source/_static/ngq_plugins_manage_open_en.png) Go to the *Installed* tab. Plugins that have updates available are marked **in bold**. ![image](docs_ngqgis/source/_static/ngq_manage_plugins_en.png) To install all available updates, press **Upgrade all**. Make sure that the plugins are activated (ticked). ## Check installed verison of a plugin Open QGIS and in the menu bar select `Plugins ‣ Manage and install plugins`. Go to the *Installed* tab. Click on the plugin in the list or star typing its name in the search bar and select the plugin from the search results. On the right you’ll find the plugin information. ![image](docs_ngqgis/source/_static/ngq_plugins_check_ver_en.png) In the About panel you’ll find Installed verison and Available version (stable) with date and time of its release. Also, if an update is available, there will be a message at the top of the panel. # update_vector_layer.html.md # Update Web GIS layer from CSV Update an existing Web GIS layer on NextGIS platform using uploaded CSV file. Works only with point vector layers. It is possible either to add data to existing one or to replace existing features. Data structure of CSV file should be the same as of target Web GIS layer. NextGIS Web (NGW) is a geodata managing system. You can use it for free after [signing up](https://docs.nextgis.com/docs_ngcom/source/create.html). With NextGIS Web you can store geodata, create interactive online maps, give access to them to your teammates and clients, edit features directly on the map and in the feature tables, as well as process them with specialized Toolbox tools. [More on what NGW can do](https://docs.nextgis.com/docs_ngweb/source/general.html). Inputs: * Web GIS address. Example: [https://sandbox.nextgis.com](https://sandbox.nextgis.com); * Login. NextGIS ID or Web GIS user login; * Password. User password; * Vector layer resource ID. Numbers at the end of the layer resource URL. For instance, corresponding number for resource “Matter levels” is 5150 since its address is [https://demo.nextgis.com/resource/5150](https://demo.nextgis.com/resource/5150).; * Delimiter. Specify delimiter in uploaded CSV-file, e.g. `,` (comma) * Mode. Use `Add` to add to the data and `Replace` to completely replace existing data; * Skip frist lines. Number of lines to skip before CSV header; * Choose CSV file. Point file with coordinates in ``` * ``` .CSV format. Fields with latitude and longitude should be named `lat` and `lon`, respectively. Coordinates should be in WGS84 (EPSG:4326). If the table contains dates, they must be written in [ISO](https://docs.python.org/3/library/datetime.html#datetime.datetime.isoformat) format, for example, 2019-05-18T15:17:08.132263. Outputs: * Updated vector layer in Web GIS. * CSV report, showing ID of the updated layer, selected mode, number of uploaded features and hyperlink to updated layer in Web GIS. Troubleshooting * Invalid type error - incorrect resource ID. Specify the ID of the vector layer resource, not that of the resource group containing the layer. * Invalid type of the layer - incorrect layer type. Only vector layers can be used. * Invalid operation mode - incorrect mode. You can only type in Replace or Add. * Invalid geometry type - target layer geometry is not point. * Invalid structure of the layer - data structures of CSV and target layer do not match. Launch the tool: [https://toolbox.nextgis.com/t/update_vector_layer](https://toolbox.nextgis.com/t/update_vector_layer) **Try it out using our sample:** Download [input dataset](https://nextgis.com/data/toolbox/update_vector_layer/update_vector_layer_inputs.zip) to test the instrument. Step-by-step instructions included. Get the [output](https://nextgis.com/data/toolbox/update_vector_layer/update_vector_layer_outputs.zip) to additionally check the results. # upgrade.html.md # Upgrade The version number for NextGIS GeoServices On-Premise contains three parts in `A.B.C` pattern, where `A.B` is the main version number and `C` is a patch version. Updates between main versions must be performed step by step, without skipping a version. So if your current version is `2.18.0` and you wish to update to `2.20.0`, you need to update to `2.19.0` first, and only then to `2.20.0`. If there are patched versions (e.g. `2.18.1`, `2.18.2` and so on), upgrade to the latest patched version of the main version. #### IMPORTANT All steps in this section must be performed by the `root` user. If you use `sudo` to avoid mixing up the commands, we recommend first running `sudo -i` to get a fully functional root user session. To upgrade from one version to another follow these steps: **Step 1:** Review the actions and requirements listed below for the specific version: > * [Upgrade to 2.26.x from 2.25.x](#upgrade-to-2-26-x-from-2-25-x) > * [Upgrade to 2.25.x from 2.24.x](#upgrade-to-2-25-x-from-2-24-x) > * [Upgrade to 2.24.x from 2.23.x](#upgrade-to-2-24-x-from-2-23-x) > * [Upgrade to 2.23.x from 2.22.x](#upgrade-to-2-23-x-from-2-22-x) > * [Upgrade to 2.22.x from 2.21.x](#upgrade-to-2-22-x-from-2-21-x) > * [Upgrade to 2.21.x from 2.20.x](#upgrade-to-2-21-x-from-2-20-x) > * [Upgrade to 2.20.x from 2.19.x](#upgrade-to-2-20-x-from-2-19-x) > * [Upgrade to 2.19.x from 2.18.x](#upgrade-to-2-19-x-from-2-18-x) > * [Upgrade to 2.18.x from 2.17.x](#upgrade-to-2-18-x-from-2-17-x) > * [Upgrade to 2.17.x from 2.16.1](#upgrade-to-2-17-x-from-2-16-1) > * [For versions 2.16.1 and below](#for-versions-2-16-1-and-below) **Step 2:** Stop all the services: ```shell $ docker compose stop ``` **Step 3:** In the file `.env` change the value of `IMAGE_VERSION` to the code of the version you’re upgrading to. If you haven’t modified the configuration, you can instead [download the current config template](https://docs.nextgis.com/docs_geoserv_prem/source/admin.html#nextgis-geoservices) and unpack it. If the server does not have Internet access, download the file on another PC and transfer it to the server. **Step 4:** Restart all the services: ```shell $ docker compose up -d ``` ## Upgrade to 2.26.x from 2.25.x No additional steps needed, proceed with the standard steps to update. ## Upgrade to 2.25.x from 2.24.x No additional steps needed, proceed with the standard steps to update. ## Upgrade to 2.24.x from 2.23.x No additional steps needed, proceed with the standard steps to update. ## Upgrade to 2.23.x from 2.22.x If you set up an OAuth server with GeoServices, change path in the Redirect URI from `/oauth2/callback` to `/oauth`. ## Upgrade to 2.22.x from 2.21.x No additional steps needed, proceed with the standard steps to update. ## Upgrade to 2.21.x from 2.20.x No additional steps needed, proceed with the standard steps to update. ## Upgrade to 2.20.x from 2.19.x If you’ve modified the configuration, then in order to preserve them, do the following: In the `docker-compose.yaml` file add `node-renderer`, in the `app` service add environment variable `NODE_RENDERER_SECRET`: ```yaml app: ... environment: NODE_RENDERER_SECRET: node-renderer-secret ... node-renderer: image: ${IMAGE_BASE}/node-renderer:${IMAGE_VERSION} restart: unless-stopped environment: SECRET: node-renderer-secret ``` After that perform the upgrade as described above. If no modifications were made, you can instead download a current template at Step 3 and unpack it. ## Upgrade to 2.19.x from 2.18.x No additional steps needed, proceed with the standard steps to update. ## Upgrade to 2.18.x from 2.17.x No additional steps needed, proceed with the standard steps to update. ## Upgrade to 2.17.x from 2.16.1 No additional steps needed, proceed with the standard steps to update. ## For versions 2.16.1 and below If you have GeoServices 2.16.0 or earlier, contact us at [support@nextgis.com](mailto:support@nextgis.com). #### NOTE If you need to perform an upgrade in a closed network, contact us at [support@nextgis.com](mailto:support@nextgis.com) # upgrade.html.md # Upgrade In general NextGIS Web upgrade process consist of the following steps: * Stop services * Create backup * Upgrade packages * Apply migrations * Start services ## Stopping services and creating backup Previous sections describe services and backups. For example, it may look as follows: ```none # systemctl stop ngw.service ngw-maintenance.timer # su ngw -c "nextgisweb backup" ``` ## Upgrading packages Switch to `ngw` user (do not forget about virtualenv and `NEXTGISWEB_CONFIG` environment variable if you hadn’t added them to `.bashrc`): ```none # su ngw $ cd ``` Change directory to `package/nextgisweb`, pull latest changes, and look at available version tags: ```none $ cd package/nextgisweb $ git pull $ git tag -l '*.*.*' 4.3.0 4.3.1 4.3.2 4.4.0 ``` Of course, you can use any other version, including a `master` branch, but here we consider an upgrade to the `4.4.0` version as an example. So check it out, upgrade the package in virtualenv and recompile i18n translations: ```none $ git checkout 4.4.0 $ cd .. $ pip install -e nextgisweb $ nextgisweb-i18n -p nextgisweb compile ``` And then, go to the home directory and update Node.js and pnpm project environment with workspaces, and build necessary files: ```none $ cd $ nextgisweb jsrealm install $ pnpm run build ``` Repeat these steps with additional packages such as `nextgisweb_qgis` and `nextgisweb_mapserver`. Some of them may require additional steps, such as upgrading system software. After that you return to `ngw` home directory: ```none $ cd ~ ``` ## Applying migrations ### Upgrading from 3.7.0 or higher Automatic database migrations were introduced in version `3.7.0`. If you’re upgrading from `3.7.0` or higher, check required migrations with: ```none $ nextgisweb migration upgrade ``` And then apply them with: ```none $ nextgisweb migration upgrade --no-dry-run ``` ### Upgrading from previous versions In case of upgrade from a version before `3.7.0`, you should manually apply SQL migrations from `package/nextgisweb/migration` directory before you run automatic migration. Files in that directory are prefixed by date, so you have to run them one-by-one in historical order. The command `nextgisweb sql -f` can help you with that: ```none $ nextgisweb sql -f package/nextgisweb/migration/2001-01-01-filename.sql ``` Don’t worry about applying SQL-migration twice. If it’s already applied, it will fail with an error and doesn’t change any data. When all SQL-migrations are applied you should run automatic migrations with commands given above: ```none $ nextgisweb migration upgrade $ nextgisweb migration upgrade --no-dry-run ``` ## Starting services Now you can start services back. It may look as follows: ```none # systemctl start ngw.service ngw-maintenance.timer ``` ## Upgrading PostgreSQL and PostGIS PostgreSQL and PostGIS can be upgraded as described in corresponding docs, including dump and restore major upgrades. But keep in mind the following: - After dump and restore during PostgreSQL upgrade, ownership of PostGIS tables (`spatial_ref_sys`, etc.) can be lost. You will have to set it up again. - NextGIS Web manages the `spatial_ref_sys` table, but it will be overwritten while restoring from a dump or upgrading PostGIS. So that, you will need to execute `nextgisweb spatial_ref_sys sync_postgis` command after restoration. # upload_tables_postgis.html.md # How to load multiple tables of different regions in PostgreSQL/PostGIS #### IMPORTANT To run, you need an installed PostgreSQL database with the [PostGIS](https://postgis.net/install/). * [Order data](https://data.nextgis.com/en/) for multiple regions in SQL (PostgreSQL/PostGIS) format. * Go to the [orders](https://data.nextgis.com/en/orders/actual/) page and download the archive when it’s complete. * **Unpack** the archive. * Open the first dataset. Load target layer as stated [here](https://data.nextgis.com/en/howto/pg/) without changing the structure. For example: ```bash psql -f aerialway-line.sql -h host -U user -d database ``` where aerialway-line.sql - target layer, host - address of the server with database (or localhost), user - user name, database - name of the database. * Go to the second dataset. Open in the editor (Notepad) same type of layer, which was loaded from the first set (e.g. aerialway-line.sql) Modify it so that only this structure remains (remove extra lines): ```bash SET standard_conforming_strings = OFF; BEGIN; COPY "public"."boundary_polygon_lvl8 ... ... END; COMMIT; ``` Modified file example: ```bash SET standard_conforming_strings = OFF; BEGIN; COPY "public"."aerialway_line" ("wkb_geometry", "aerialway", "name", "name_en", "osm_type", "osm_id") FROM STDIN; 0105000020E61000000100000001020000000D0000007CABBF6F8D25344046802E75EB784B40A279A5D189253440DA0BBBDEEC784B40BF547DF8432534401AB3DB1D08794B40E129E44A3D2534404EA6C0B80A794B4064986E6D3C2534405A0CC3EC0A794B40597A23A93B25344095C84FF40A794B40A65F22DE3A253440CB51DBE10A794B402A2AD1483A2534403C69E1B20A794B40EE3F321D3A2534404240BE840A794B407D282C4C3A253440BF61A2410A794B403FA2AE5A3E253440196B24AE08794B40D9C6E93587253440A5CAE660EC784B403CDC0E0D8B253440888961E2EA784B40 gondola \N \N way 71513012\. END; COMMIT; ``` * Load the edited file(s) in the same way as in step 3 to the database ```bash psql -f aerialway-line.sql -h host -U user -d database ``` # url_route.html.md # URLs and routes This document summarizes the current URL and route naming conventions. These rules are taken into account in some parts of backend and frontend logic (CORS, client-side routes). ## URLs URLs are split into three categories: * API URLs - accessed by the fronted and libraries. * Static URLs - used to serve static content. * User URLs - viewed by users in browsers. API URLs: 1. Start with `/api/` prefix. 2. If bound to a specific resource, `/api/resource/{id}/` prefix is used. 3. For the rest, `/api/component/{component}/` prefix is used. 4. Use snake case (`/api/component/auth/current_user` for example). 5. Collections must use singular forms and the trailing slash (`/api/resource/{id}/feature/` for features of resource). 6. Collection items mustn’t use the trailing slash. Static URLs: 1. Start with `/static/{static_key}/` prefix (`{static_key}` is unique for each build and used for cache invalidation on caching proxies). User URLs: 1. Use kebab case (`/control-panel` for example). 2. Prefix `/resource/{id}/` is used if bound to a specific resource. ## Route names Pyramid route names: 1. Start with `{component}.` prefix. 2. Use snake case (`pyramid.control_panel` for example). # users.html.md # Managing users To allow another user to access your Web GIS, [add them to your team](https://docs.nextgis.com/docs_ngcom/source/teams.html#team-management). Keep in mind, that the user would only see the resources if corresponding [permissions are set](https://docs.nextgis.com/docs_ngcom/source/permissions.html). A newly added user has the permissions set for: * “Authenticated” or “Everyone”; * a user group that has [“new users” flag ticked](https://docs.nextgis.com/docs_ngweb/source/users.html#ngweb-admin-controlpanel-usergroup-create-pic). After adding a user to your team, you can include them in a [group](https://docs.nextgis.com/docs_ngweb/source/users.html#ngw-create-group) or [set up permissions](https://docs.nextgis.ru/docs_ngcom/source/permissions.html) for that particular user. ## Create new user group Open “Control panel” from the main menu (see item 1 in [Fig. 283.](admin_interface.md#admin-index-pic)). Then go to the “Groups” page and click **Create**. ![image](docs_ngweb/source/_static/usergroup_create_en.png) In “Create new group” dialog enter full name and group name (short name), if necessary enter a group description, set group members and global permissions (see [below](https://docs.nextgis.com/docs_ngweb/source/users.html#global-permissions)) and click **“Create”**. Set “New users” flag for a group to automatically assign new user to it. #### NOTE A name for a group should contain only letters and numbers. ## Global permissions While creating or editing a user or user group, you can set global permissions concerning Web GIS a whole: * creating users and groups of users, managing access permissions; * manage spacial reference systems of the Web GIS; * manage CORS settings. These global permissions are separate from [access permissions](https://docs.nextgis.com/docs_ngcom/source/permissions.html) applied to particular resources (vector and raster layers, resource groups, services, Web Maps etc). The latter regulate working with resources, while global permissions allow users to manage Web GIS functions. ![image](docs_ngweb/source/_static/ngw_group_rights_en.png) #### WARNING If you include Guest to a group that has global permissions, anyone will be able to access Control panel even without logging in. See how it works in our video: Watch on [youtube](https://youtu.be/pp137N12-B4?si=r-Kb92HSVI2tbfHl). ## How to find user identification number To learn user ID, in the Web GIS go to the [Control panel](https://docs.nextgis.com/docs_ngweb/source/admin_interface.html#ngw-control-panel), open [Users](https://docs.nextgis.com/docs_ngweb/source/users.html) section, find the user you need and enter the Edit mode (or just hover the cursor over the pencil icon to see the link without opening the page, if your browser allows it). ![image](docs_ngweb/source/_static/ngw_user_id_en.png)![image](docs_ngweb/source/_static/ngw_user_id_list_en.png) ## Disable or delete users First, [remove the user from your team](https://docs.nextgis.com/docs_ngcom/source/teams.html#ngcom-team-management) In the main menu open the Control panel and select “Users”. Each user has “Edit” and “Delete” icons on the right end of the line. ![image](docs_ngweb/source/_static/admin_controlpanel_user_list_en.png) On the editing page you can modify properties of the user and **disable** the user. Tick “Disabled” and press **Save**. ![image](docs_ngweb/source/_static/admin_controlpanel_user_disable_en.png) If the user is disabled, settings concerning groups, resource ownership and permissions stay intact and can be reactivated after the user is re-added to the team. This also preserves all information on the user’s acivity in versioned resources. In most cases, disabling a user is enough, however, you can **delete a user permanently**. Click the “Delete” icon in the user list and confirm the action in the pop-up window. Alternatively, you can open the editing page and click **Delete**. If the user is the owner of Web GIS resources or edited a versioned vector layer, a warning appears: *Validation error. User is referenced with resources*. Click on **Technical information** to see ID of the resources owned by the user. To delete the user, first you need to [change the owner](https://docs.nextgis.com/docs_ngweb/source/edit_resource.html) of resources and disable versioning for the layers the user edited. Keep in mind, that it destroyes all recorded version information for that layer. So we recommend disabling users instead, unless strictly necessary. ## How to bind NextGIS ID to an existing Web GIS user If you have a user created within Web GIS with a username and password (e.g. paganel, 12345paganel) you can bind it to your NextGIS ID account. 1. [Create a NextGIS ID account](https://docs.nextgis.com/docs_ngcom/source/create.html) 2. Let the Web GIS administrator know what username you have in your [NextGIS ID profile](https://docs.nextgis.com/docs_ngcom/source/create.html#ngcom-ngid-profile). The administrator adds you [to the team](https://docs.nextgis.com/docs_ngcom/source/teams.html#ngcom-team-management). Then go to your NextGIS ID account, log in and make sure that the Web GIS is shown in the [list of your teams](https://my.nextgis.com/teammanage/member). 3. Open Web GIS, log in using your old username and password (in our example paganel/1234paganel). 4. Click on the initials or userpic in the top right corner and open the user settings. ![image](docs_ngweb/source/_static/user_settings_open_en.png) 1. In the user settings click **Bind account** in the NextGIS ID field. ![image](docs_ngweb/source/_static/bind_ngid_en.png) If binding is successful, the button is replaced by the words “Account bound” and your identifier. ![image](docs_ngweb/source/_static/ngid_bound_success_en.png) ## Create new local user If Web GIS has a local limit enabled, the Administrator can set usernames and passwords for users. This way the users only access the Web GIS and cannot use the other NextGIS functionality available on Premium. To create a new local user, go to “Control panel” from the main menu. Then go to the “Users” page and click **Create**. ![image](docs_ngweb/source/_static/user_create_en.png) In “Create new user” dialog enter the following information: * Full user name (e.g. John Smith) * Login – user login (e.g. smith) * Password * Group(-s) user belongs to (select from a dropdown menu. If the required group is absent you need to create a new one (see [Create new user group](#ngw-create-group))). * Permissions - [global permissions](https://docs.nextgis.com/docs_ngweb/source/users.html#global-permissions) concerning Web GIS as a whole * Interface language for the user You can add some more information about the user in the “Description” field. Then click **“Create”**. #### NOTE The password is limited in length in the range of 5-25 characters. Login can have symbols of the Latin alphabet, numbers and an underscore, but must begin necessarily with a letter. You can set up [access permissions](https://docs.nextgis.com/docs_ngcom/source/permissions.html) for particular users and groups of users. ## Update local user password To update user password you can use administrative interface. To do it select “Control panel” in the main menu. Go to “Users” and click pencil icon near the user you want to update password for. In the “Password” field select “Assign new” in the dropdown menu, fill in a new password and click **Save** button. ![image](docs_ngweb/source/_static/ngweb_change_password_eng_2.png) Also there is an option to change user password using command line: #### WARNING Setting a password using a command line is not safe. ```bash env/bin/nextgisweb --config config.ini change_password user password env/bin/nextgisweb --config config.ini change_password user password ``` #### NOTE The password is limited in length in the range of 5-25 characters. If you forgot the password to your NexGIS ID, follow [this instruction](https://docs.nextgis.com/docs_ngcom/source/faq_webgis.html#i-forgot-my-account-password-nextgis-id-what-to-do). # vect_layer_upload_params.html.md # Advanced options for uploading vector layer from a file Advanced settings are available when uploading a vector layer from a file ([Fig. 476.](#ngweb-vect-layer-upload-params)). ![image](docs_ngweb/source/_static/ngweb_create_vector_layer_upload_en.png) ## Processing possible errors **Fix errors** Possible values: * **Whatever possible** - errors will be corrected to the maximum with possible data loss; * **Without losing data** - errors will be corrected without data loss; * **None** - no error will be corrected. The following fixes are made: * Extract geometries from Geometry Collection and Multigeometries if they have only one part; * Close the rings of polygons; * When extracting geometries from a Geometry Collection and Multigeometries the first matching geometry is taken, the others are discarded. This correction is not performed in “Without losing data” mode. **Skip features with unfixable errors** - defines what happens if the errors cannot be corrected using the *Fix errors* mode. If ticked, features with errors will be skipped and the layer will be created. If unticked, then the layer will not be created and the first 10 errors that led to this will be listed. ## Detecting geometry type In NextGIS Web vector layers must have a single type of geometry. If the source file contains different types of geometry, you must either set up filtering or convert the geometries to a specific type. **Geometry type** Possible values: * Auto * Point * Linesrting * Polygon This setting specifies the geometry class. For example, the POINT class includes geometries such as POINT, MULTIPOINT, POINTZ, MULTIPOINTZ. If a geometry class is selected and the original layer contains geometries from other classes, this will be considered an error. If you check **Only load features of the selected geometry type**, then geometries of other classes will be skipped. Geometry type can be further specified by parameters **Multi-geometry** and **Z-Coordinate**. Possible values for those two parameters are: * Auto * Yes * No ## Object ID detection settings (FID) Every feature in a NextGIS Web vector layer must have a unique identifier. If the file has no field that can serve as FID, a new field is created. You can select how to define FID for the layer. **FID source** Possible values: * **Auto** - FID is taken from the *integer* field with unique values if it exists. The field is not included into the layer’s attributes. Otherwise, a new hidden field is created, numbers start with 1; * **Sequence** - a new field is created, FID starts with 1; * **Field** - FID is taken from the field defined by user. For example, if a layer was exported from NextGIS Web, it has a field *ngw_id*. # vector2datalens.html.md # Prepare vector layer for DataLens The tool converts vector dataset to a CSV file, compatible with DataLens BI service. Both Geopolygons and Geopoints are supported. Inputs must be points or polygons. You can get a vector data layer at [data.nextgis.com](https://data.nextgis.com). See also a [detailed instruction](https://data.nextgis.com/en/howto/yandex_datalens/) on how to upload data to Yandex DataLens. Inputs: * Input vector – vector data layer or zip-archive. Outputs: * CSV file ready to be imported in DataLens. Launch the tool: [https://toolbox.nextgis.com/t/vector2datalens](https://toolbox.nextgis.com/t/vector2datalens) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # vector_data_types.html.md # Vector layer data types The following vector layer field types (datatype) are supported: * INTEGER - number * BIGINT - long number * REAL - floating point number * STRING - string * DATE - date * TIME - time * DATETIME - timestamp The following vector layer geometry types (geometry_type) are supported: * POINT * LINESTRING * POLYGON * MULTIPOINT * MULTILINESTRING * MULTIPOLYGON * POINTZ * LINESTRINGZ * POLYGONZ * MULTIPOINTZ * MULTILINESTRINGZ * MULTIPOLYGONZ # vectorclip.html.md # Layer intersection Finds overlapping areas between features of 2 polygon layers. Inputs: * Polygon layer 1 * Polygon layer 2 Files should be in GDAL-supported format, e.g. GeoPackage, GeoJSON, MapInfo TAB, ESRI Shapefile (the last two - in ZIP-archive). You can use this tool to clip line geometry. Upload the line layer to the field 1 and the clipping boundary to the field 2. Outputs: * GeoPackage file with polygon layer containing only the overlapping areas. Launch the tool: [https://toolbox.nextgis.com/t/vectorclip](https://toolbox.nextgis.com/t/vectorclip) ![image](docs_toolbox/source/_static/vectorclip_input_en.png)![image](docs_toolbox/source/_static/vectorclip_result_en.png) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # version.html.md # Versioning Geodata storage NextGIS Web supports **versioning**, a mechanism that logs changes made to features of vector layers. When a feature is created, deleted or edited, this change is registered (who made it and when), and the state of the database before the change is saved in a special way. It allows NextGIS Web administrator to: * Learn who and when made any change to the vector layer; * Learn who, when and how changed the attributes or the geometry of the feature; * Access any recorded state of the vector layer and reset incorrect changes; * Get a list of all the edits made by one user; * Get a list of all the edits for a given period, for example, a particular date or since a connected database was last updated; etc. Changes in both **attributes** and **geometry** are logged. Versioning is **disabled by default**. You can [turn it on](https://docs.nextgis.com/docs_ngweb/source/layers_settings.html#create-vector-layer-vers-pic) for a specific vector layer or [for all subsequently created layers](https://docs.nextgis.com/docs_ngweb/source/version.html#vers-ngw-default) if needed. Logging activates when the versioning is turned on, the changes made before that are not registered anywhere. #### IMPORTANT When the versioning is turned off, all the logged information about the changes in the layer is **deleted**. ## Versioning in the NextGIS Web interface At the moment in the user interface of NextGIS Web you can access the following functions: * Enable and disable versioning [in the vector layer settings](https://docs.nextgis.com/docs_ngweb/source/layers_settings.html#create-vector-layer-vers-pic); * Enable [feature versioning by default](https://docs.nextgis.com/docs_ngweb/source/version.html#vers-ngw-default) for your Web GIS; * View versioning status (yes/no) on the Vector layer resource page; * [View history of a vector layer](https://docs.nextgis.com/docs_ngweb/source/version.html#vers-ngw-view-history); * Additional [virtual field “Last changed”](https://docs.nextgis.com/docs_ngweb/source/feature_table.html#ngw-feature-table-fields) in the attribute table of the versioned layer. It allows to see the time and author of the latest change for each feature of the layer; * [Revert vector layer to the selected version](https://docs.nextgis.com/docs_ngweb/source/version.html#vers-ngw-revert); * [Copy selected version to a new layer](https://docs.nextgis.com/docs_ngweb/source/version.html#vers-ngw-copy). ### View history of a versioned layer To see the history of vector layer edits, go to the resource page and click **Version history** in the actions panel on the right. A table opens: ![image](docs_ngweb/source/_static/history_table_en.png) Each version entry has the following information: * Date and time of the edits; * Editor username; * Stats: how many features were created, updated, deleted or restored. Click on the + on the left end of the row to expand the list of the modified features. The number of the feature is its fid. ![image](docs_ngweb/source/_static/history_details_en.png) Click on the tree dots on the right end of the row to open the version menu. It has two options: * Revert the layer to the selected version; * Create a copy of the layer, reproducing its state in the selected version. ![image](docs_ngweb/source/_static/history_menu_en.png) ### Revert a versioned layer to the selected version If feature versioning is enabled for a layer, you can revert it to any of the previous recorded states. Open the layer resource page. Click **Version history** in the right panel. In the Version history table find the row that logs the last edits you wish to keep. Click on the three dots on the right end of the row to open the menu and select **Revert to this version**. ![image](docs_ngweb/source/_static/history_revert_en.png) Confirm your action in the pop-up window. The layer is reverted to the selected version. A new entry is added to the version history. It logs undoing of all the edits after the selected version. If features were added, deletion is recorded, and vice versa: if features were deleted, their restoration is recorded. All the previously recorded history entries are preserved. You can restore the layer to any of the versions, including the one that was current before reverting. ![image](docs_ngweb/source/_static/revert_in_history_en.png) ### Create a copy of the selected version Versioning allows to undo the latest changes by [reverting to an earlier version](https://docs.nextgis.com/docs_ngweb/source/version.html#vers-ngw-revert) of the layer, or save a version of a layer recorded in its history as a separate resource. Open the layer resource page. Click **Version history** in the right panel. In the Version history table find the row that logs the last edits you wish to keep. Click on the three dots on the right end of the row to open the menu and select **Create copy**. ![image](docs_ngweb/source/_static/history_copy_en.png) In the pop-up window select the resource group where you want to create a copy of the layer. By default the copy is created in the same group. Press ![button_open_resource](docs_ngweb/source/_static/button_open_resource.png) to select another group. Also here you can enter a custom name for the new layer. By default the name is “Copy” + name of the initial layer. ![image](docs_ngweb/source/_static/history_copy_settings_en.png) Click **Create copy** to finish. ### Enable feature versioning by default You can have feature versioning enabled by default for all new layers added to your Web GIS. Go to the [Control panel](https://docs.nextgis.com/docs_ngweb/source/admin_interface.html#ngw-control-panel) and select **Feature versioning**. On the opened page switch the slider and click **Save**. ![image](docs_ngweb/source/_static/version_default_en.png) For all the layers you subsequently create in the Web GIS via web interface or [add from QGIS with NextGIS Connect](https://docs.nextgis.com/docs_ngconnect/source/ngc_data_transfer.html#vector-data) the versioning is on by default. You can also enable and disable versioning for individual layers [in the layer setttings](https://docs.nextgis.com/docs_ngweb/source/layers_settings.html#create-vector-layer-vers-pic). ## Versioning in NextGIS Web API The main options for obtaining information about versioned layers are now available only in the NextGIS Web API. Through API queries, you can get the states of layers and features for different time periods, the difference between different states, and so on. Here are some examples of API methods for versioned layers: - `/api/resource/{id}` you can get the information on the versioning status and the current version of the data in the general layer query (‘versioning’ property). - `/api/resource/{id}/feature/` add layer version to get its state at a particular moment - `/api/resource/{id}/feature/changes/check` to get information about the difference between two given versions of the layer - `/api/resource/{id}/feature/version/{vid}` get metadata for a given version ## Versioning in QGIS Versioning is actively used in QGIS plugin [NextGIS Connect](https://docs.nextgis.com/docs_ngconnect/source/ngconnect.html) that allows integration with NextGIS Web. When versioning is enabled, QGIS can get information about all the changes made to the layer stored in NextGIS Web since the last time it had been accessed. It allows to [simultaneously edit](https://docs.nextgis.com/docs_ngconnect/source/edit.html) a layer stored on the server from several QGIS sessions on separate computers. # versioning.html.md # Package versioning NextGIS Web itself and most extension packages use [bump2version](https://github.com/c4urself/bump2version) to manage versions. Here is the sample configuration file `.bumpversion.cfg`, which should be placed next to `setup.py`: ```ini [bumpversion] current_version = 1.0.0.dev0 parse = (?P\d+)\.(?P\d+)\.(?P\d+)(\.(?P[a-z]+)(?P\d+))? serialize = {major}.{minor}.{patch}.{release}{dev} {major}.{minor}.{patch} tag_name = {new_version} message = Bump version to {new_version} commit = False tag = False [bumpversion:part:release] optional_value = release values = dev release [bumpversion:part:dev] [bumpversion:file:VERSION] ``` This configuration provides [PEP 440](https://www.python.org/dev/peps/pep-0440/) compatible version numbers, which consist of `major`, `minor`, `patch` and `dev` parts. And the special part `release` separates release and development versions. The current version is stored in `bumpversion.cfg` and `VERSION` files. In `setup.py` Python package version should be read from `VERSION` like this: ```python from setuptools import setup with open('VERSION', 'r') as fd: VERSION = fd.read().rstrip() setup( name='nextgisweb_foo', version=VERSION, # ... ) ``` Bump2version provides tools for incrementing version parts and for updation files where it is stored. If the current version is `4.3.2.dev1` incrementing different parts will with `bump2version part` lead to the following results: `major` → `5.0.0.dev0`, `minor` → `4.4.0.dev0`, `patch` → `4.3.3.dev0`, `dev` → `4.3.2.dev2`, `release` → `4.3.2` As you see, it increments the given part and sets the following parts to zero. Incrementing of `release` part just drops `.devX` suffix (actually it becomes `.release0` but this part is declared as optional). ## Package configuration 1. Decide which version is the current, `1.0.0.dev0` in the example. 2. Create `.bumpversion.cfg` file from the template above. 3. Create `VERSION` text file and place the current version there. 4. Adapt `setup.py` with the example above. ## Development versions Incrementing `dev` version part is helpful in dependencies between packages. Imagine you have added some function in `nextgisweb` core package and now you want to use it in the extension package. So, in `nextgisweb` package: ```bash $ cd package/nextgisweb $ cat VERSION 3.8.0.dev0 $ bump2version --commit dev $ cat VERSION 3.8.0.dev1 ``` In the extension package `nextgisweb_foo` you can use this version in requirements in `setup.py`: ```python from setuptools import setup setup( name='nextgisweb_foo', version=VERSION, # ... install_requires=[ 'nextgisweb>=3.8.0.dev1', ], # ... ) ``` This prevents installation and usage of `nextgisweb_foo` package when `nextgisweb` version is lower than `3.8.0.dev1`. #### NOTE The `3.8.0.dev1` version in lower than `3.8.0` and higher than `3.7.0`. It’s also possible to increment the version during git merge, for example: ```bash $ cd package/nextgisweb $ cat VERSION 3.8.0.dev1 $ git merge --no-commit some-feature-branch $ bump2version --allow-dirty dev $ cat VERSION 3.8.0.dev2 $ git add VERSION .bumpversion.cfg $ git commit ``` ## Release versions To create release version use the following commands: ```bash $ cd package/nextgisweb $ cat VERSION 3.8.0.dev2 $ bump2version --commit --tag release $ cat VERSION 3.8.0 ``` Then start new minor (or major) version: ```bash $ bump2version --commit minor $ cat VERSION 3.9.0.dev0 ``` And push tags to remote repository: ```bash $ git push --tags origin master ``` ## Backports and patches Sometimes it’s required to backport critical bug fixes to previous major and minor versions. These fixes should be done in a separate branch. So if it doesn’t exist, create it from a tag: ```bash $ git checkout 3.8.0 $ git branch 3.8.x ``` After that start new development version: ```bash $ bump2version --commit patch $ cat VERSION 3.8.1.dev0 ``` Then use `git cherry-pick` to backport required commit and increment `patch` version component: ```bash $ git cherry-pick commit-hash ``` And then create a new release version and push it to the repository: ```bash $ bump2version --commit --tag release $ git push --tag origin 3.8.x ``` # view_webgis.html.md # Viewing tracks on a Web Map in Web GIS If the app is synced with a Web GIS, you can view the tracks on a Web Map. Before recording a track make sure the synchronization is enabled (see [how to do it](https://docs.nextgis.com/docs_ngtracker/source/setting_up.html#ngtr-set-send)). ![image](docs_ngtracker/source/_static/synced_success_en.png) When you finish [recording the track](https://docs.nextgis.com/docs_ngtracker/source/rec_track.html), open the Web GIS synchronized with the app. In the Main resource group you’ll find a Tracker group with a Tracker inside, see [Fig. 1133.](#trackers-group-pic). ![image](docs_ngtracker/source/_static/trackers_group_en.png) Open any Web Map in the Web GIS [Fig. 1134.](#open-main-webmap-pic) or create a new one (“Create resource” button, [learn more](https://docs.nextgis.com/docs_ngweb/source/webmaps_admin.html)). ![image](docs_ngtracker/source/_static/open_webmap_en.png) On the Web Map on the left panel press the “Trackers” icon ![panel_trackers](docs_ngtracker/source/_static/panel_trackers.png), see [Fig. 1135.](#trackers-panel-select-pic). ![image](docs_ngtracker/source/_static/trackers_panel_select_en.png) It will open the Trackers panel that has a list of all available trackers. Trackers can be sorted by name or time of the recording. To view a track on the Web Map: 1. in the “Time range” field select the time interval when the track was recorded; 2. in the track list select the element(s) of the track(s) you want to display on the map. ![image](docs_ngtracker/source/_static/webmap_track_display_en.png) Elements you can view: * ![button_tracker_lastpoint](docs_ngtracker/source/_static/button_tracker_lastpoint.png) last point of the track * ![button_tracker_line](docs_ngtracker/source/_static/button_tracker_line.png) the route lines of the GPS-tracks * ![button_tracker_points](docs_ngtracker/source/_static/button_tracker_points.png) points where coordinates were picked * ![button_tracker_stops](docs_ngtracker/source/_static/button_tracker_stops_h.png) stops (not all tracks have them) In the context menu of a tracker you can set the time range to the last day of its activity to see the latest track recorded by the tracker. You can also see tracker activity chart for a selected day (points per hour). ![image](docs_ngtracker/source/_static/webmap_tracker_menu_en.png) Also in the Web GIS you can: * [Generate reports](https://docs.nextgis.com/docs_ngweb/source/trackers.html#reports) on mileage, top speed, average speed, spent fuel, stops; * [Export tracks](https://docs.nextgis.com/docs_ngweb/source/trackers.html#track-export) as GPX files. # water_usage.html.md # Convert data on water objects The tool processes data from the State water register: extracts geodata from XLSX file (available for download from [https://voda.gov.ru/activities/gosudarstvennyy-vodnyy-reestr/](https://voda.gov.ru/activities/gosudarstvennyy-vodnyy-reestr/)) and forms GeoPackage with vector data. Inputs: * Source file - XLSX file, downloaded from [https://voda.gov.ru/activities/gosudarstvennyy-vodnyy-reestr/](https://voda.gov.ru/activities/gosudarstvennyy-vodnyy-reestr/) * Object number — unique number of the object from the State water register. Optional field, if a number is specified, the output will contain data only about target object. * Region of Russia - Optional field. If region is specified, the output will contain data only about this region. Field “Object number“ takes precedence over current field. Basically it means that only one optional field should be filled in at a time. Output: * GeoPackage file with water marks on water objects and attributes from the source file. Launch the tool: [https://toolbox.nextgis.com/t/water_usage](https://toolbox.nextgis.com/t/water_usage) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # web_gis_structure.html.md # Web GIS structure to spreadsheet Creates XLSX spreadsheet with a Web GIS structure (a list of resources). Inputs: * Web GIS address. Your full Web GIS address, example: [https://sandbox.nextgis.com](https://sandbox.nextgis.com) * Login. NextGIS ID or Web GIS username; * Password. Web GIS user password; * Resource type. Keep the default option “All resources” or select from the resource type from the dropdown menu (see the full list below). Possible type options: 1. All resources from Web GIS 2. Resource group (directory) 3. PostGIS layer 4. WMS service 5. Basemap 6. PostGIS connection 7. Web Map 8. WFS service 9. Vector layer 10. Raster layer 11. MapServer style 12. QGIS vector style 13. Raster style 14. File bucket 15. Lookup table 16. WMS layer 17. WMS connection 18. Form 19. Trackers group 20. Tracker 21. Collector project Output: * XLSX spreadsheet with the list of selected resources from Web GIS. Launch the tool: [https://toolbox.nextgis.com/t/web_gis_structure](https://toolbox.nextgis.com/t/web_gis_structure) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # webmap2qgis.html.md # Web Map to QGIS project The tool works with Web GIS data: converts vector layers and its styles from any chosen Web Map to QGIS project and GeoPackage file. Inputs: * Web GIS address – URL of the Web GIS on NextGIS Web platform, containing the Web Map to be converted into QGIS project. For example, `https://demo.nextgis.com`; * Web Map ID - numbers at the end of the Web Map URL; * Login – NextGIS ID or username of a Web GIS user that has permissions to read the data; * Password – password for the user; * Extent - by default, the extent of the Web Map is used. You can enter a different extent in EPSG:4326. Format: bottom, left, top, right (South, West, North, East). Separate by comma. Example: `54.5, 102.5, 59, 116`; * Output format. Format in which vector layers from the Web Map will be saved: - Geopackage (GeoPackage) - GML - MID/MIF - ESRI Shapefile - CSV - DXF * CRS ID - Coordinate system identifier for the output project. For standard CRS use the numbers of the EPSG code. Default is 3857. For custom CRS see the id in the [Control panel](https://docs.nextgis.com/docs_ngweb/source/ngw_srs.html#ngw-srs-id) To view the list of all available codes use the following API: `/api/component/spatial_ref_sys/`. Outputs: * ZIP-archive with QGIS project file (.qgs) and GeoPackage file, containing vector layers. Watch on [youtube](https://youtu.be/uFiOJfK6VQw?si=VN6jPbsW_5TSWNRY). Launch the tool: [https://toolbox.nextgis.com/t/webmap2qgis](https://toolbox.nextgis.com/t/webmap2qgis) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # webmap_clone.html.md # Web Map Cloning With NextGIS Web you can create a copy of an existing Web Map by cloning it. To copy a Web Map, select “Clone” in the actions pane of its resource page. ![image](docs_ngweb/source/_static/webmap_clone_action_select_en.png) You will be redirected to “Clone Web Map” page to set up the location of the copy in the resource tree and the name for it. ![image](docs_ngweb/source/_static/webmap_clone_page_en.png) By default it’s the name of the original Web Map with an added number, “(1)”, “(2)” etc. By default a copy is created in the group containing the original Web Map. If all the parameters are correct, press “Clone”. A copy of the map will be created. After the cloning process is completed successfully you will be redirected to “Update resource” page where you can change the settings of the newly created copy. See the process of cloning a Web Map in our video: Watch on [youtube](https://youtu.be/Ra3rzjz3-LA?si=tpO0k-Zn9NCSop9K). If you wish to create a copy in a **different folder**, press the magnifying glass icon at the end of the “Resource group” field. See detailed description below. ## Clone to another group A magnifying glass icon in the right end of the “Resource group” field opens the group selection pop-up window. This window contains the following elements: 1. Search bar and path to the resource the copy will be created in 2. Return to the initial folder (the one containing the original Web Map) **|<**, refresh the resource tree state and close the window 3. Option button to select a group (folder) 4. Open the selected group (folder) 5. Create new resource group (folder) 6. Clear selection 7. Button that complets group selection. ![image](docs_ngweb/source/_static/webmap_clone_selected_group_elements_en.png) If a group (folder) is selected, the button reads “Clone to selected group”. If no group is selected, it reads “Clone to this folder”, in this case the copy will be created in the group currently open (the path to it is indicated in the top panel of the pop-up window). ![image](docs_ngweb/source/_static/webmap_clone_into_this_group_en.png) Use the second way to copy a Web Map to the main resource group (marked by a house icon in the path panel). ## Clone to a new group If you need to create a new group, click on the folder icon with a plus in the bottom left corner of the pop-up window. ![image](docs_ngweb/source/_static/webmap_clone_group_create_en.png) A field will appear where you need to enter the name for the new group. To confirm group creation click the blue button with a tick. ![image](docs_ngweb/source/_static/webmap_clone_new_group_en.png) The group witll appear in the list. New group is created inside the group that is open in the window. # webmap_create.html.md # How to create a Web Map [Web GIS](description.md#ngcom-description) allows you to display geodata on Web Map and view it through built-in [web client](../../docs_ngweb/source/webmaps_client.md#ngw-webmaps-client). ## Create Web Map #### WARNING Make sure all [Vector layers](data_upload.md#ngcom-vector-layer), [Raster layers](data_upload.md#ngcom-raster-layer) and [PostGIS layers](data_connect.md#ngcom-postgis-layer) which you want to display on the new Web Map have [Styles](styles.md#ngcom-styles) created for them. #### NOTE Your Web GIS already has one ready-to-use Web Map. You can use it for geodata visualization or create an unlimited number of new Web Maps. By default there’s one basemap added to this Web Map - OpenStreetMap Standard. As soon as you add any other additional basemap to the Web Map, OpenStreetMap Standard will switch off. 1. Open Resource group where you want to create Web Map (by default, from the main page of Web GIS you access the Main resource group); 2. Press **Create resource** and select **Web Map**; 3. In the opened dialog, go to Resource tab and type a name for the new Web Map in the field Display name; 4. Go to Layers tab and using Add layer dialog window select the resources ([Basemaps](data_connect.md#ngcom-basemap-layer), [Styles](styles.md#ngcom-styles) or [WMS layers](data_connect.md#ngcom-wms-layer)) which you want to display on your Web Map; 5. Select layers one-by-one using a layer tree and set their properties in the right section of the dialog window. For [WMS layers](data_connect.md#ngcom-wms-layer) it is recommended to select Image as an adapter. If you select Tiles adapter, you will quickly use up all available connections and other layers on the map will not be shown until these connections are free again. 6. The Settings tab is used to allow layer editing and enable annotations, set Web Map [extent](../../glossary.md#term-Extent) and a title if it needs to be different than resource name. 7. Press **Create** button. If Web Map is created successfully, you’ll see its name in Child resources pane of the relevant Resource group. #### NOTE You can set the content of geodata attributes displayed on the Web Map in Vector layers and PostGIS layers settings. Read more about this option [here](../../docs_ngweb/source/layers_settings.md#ngw-attributes-edit). #### NOTE When data is uploaded to Web GIS [with desktop app QGIS](../../docs_ngconnect/source/ngc_data_transfer.md#qgis-project), a Web Map can be created automatically. Read more about Web Map creation [here](../../docs_ngweb/source/webmaps_admin.md#ngw-webmaps-admin). ## Open Web Map 1. Go to the Properties window of the created Web Map from the relevant Resource group; 2. Select Web Map ‣ Display on the right side of Web GIS [admin console](../../docs_ngweb/source/admin_interface.md#ngw-admin-interface). Web Map will open in a web client which allows to view and edit geodata. Read more about Web Map web client [here](../../docs_ngweb/source/webmaps_client.md#ngw-webmaps-client). #### WARNING We do not recommend turning on more than 1 [WMS layer](data_connect.md#ngcom-wms-layer) on Free/Mini plan and 3 WMS layers on Premium plan. Otherwise slow connections with external WMS servers might use up all available similtaneous connections, slowing down considerably (or stopping altogher) the rendering of all your Web Maps and making [admin console](../../docs_ngweb/source/admin_interface.md#ngw-admin-interface) unavailable. ## Add a description 1. Open Resource group containing the Web Map; 2. Click on **Update** (pencil icon) next to your Web Map; 3. Switch to **Description** tab, set descriptive text, hyperlinks and insert a map legend image via URL or paste it from the clipboard; 4. Click on **Save** button; 5. Display Web Map. Menu bar with **Description** button (*info* icon) is located on the left side of the workspace. Information presented there reflects the description you’ve just set; 6. To share Web Map with the description open, copy the link from your browser address bar. The link should end with **panel=info**. Clicking on such a link will load a Web Map with description opened. [Example](https://demo.nextgis.com/resource/5201/display?panel=info) of a Web Map showing a legend. ![image](docs_ngcom/source/_static/Legend_1_en.png) Legend is also viewed in the layer tree, see [more on how to set it up](https://docs.nextgis.com/docs_ngcom/source/legend.html). # webmap_set.html.md # Web Map Settings Using the control panel administrator can set a number of general settings for all Web Maps in NextGIS Web: * Visibility of the navigation menu for guests; * Identification popup parameters; * Measurement units; * Address search parameters; * Legend visibility. ![image](docs_ngweb/source/_static/admin_webmap_panel_settings_eng_5.png) ## Navigation menu vizibility You can hide the navigation menu for guests. While veiwing your Web Maps, guests will not have access to the main dropdown menu in the top right corner that has link to the main resource group. In the Control panel of your Web GIS go to the Web Map settings ([Fig. 580.](#admin-webmap-panel-settings-pic)) and enable the option *Hide navigation menu for guest*. ![image](docs_ngweb/source/_static/admin_webmap_no_menu_en.png) ## Identify panel The section regulates the following parameters: * The radius of the area around the object within which the identification works; * Enabling or disabling geometry info; ![image](docs_ngweb/source/_static/webmap_identification_eng_3.png) ## Measurements The section sets the parameters responsible for various measurements on the Web Map: * Units of length measurement (according to the selected SRS) * Units of measurement of areas (in accordance with the selected SRS) * Degree format * Coordinate system for calculating measurements ## Address search NextGIS Web address search is performed through one of the two data bases (providers): * Nominatim (OpenStreetMap) - used by default * Yandex.Maps - an external geocoder with API key The following parameters can be set up: * “Enable” - the search results on the Web Map will include not only the attribute data but also the address base if there are matches * “Limit by Web Map initial extent” - the search will be performed within the extent set in the Web Map settings * “Provider” - defines the geocoder used for address search. OpenStreetMap by default, can be changed to Yandex.Maps * “Limit search results to countries” - while using OSM, if a country code is specified (de, fr, gb etc), the search results will only include matches from the selected country’s territory * “Yandex.Maps API Geocoder Key” - when Yandex.Maps is selected as provider, this is the field to enter the API key. Users obtain the keys independently by signing up on [https://developer.tech.yandex.ru](https://developer.tech.yandex.ru). ![image](docs_ngweb/source/_static/adress_search_yandex_API_en.png)![image](docs_ngweb/source/_static/admin_webmap_search_bar_eng.png) ### Disabling address search Address search can be turned off. In that case the search will only be performed in the feature attributes of the layers added to the Web Map (except the basemap). From the control panel go to [Web Map settings](https://docs.nextgis.com/docs_ngweb/source/admin_tasks.html#web-map-settings). Set the toggle of the “Address search” section to the off position. ![image](docs_ngweb/source/_static/address_search_disabled_en.png) ### Selecting search provider NextGIS Web can use one of the two data bases for searching: Nominatim of OpenStreetMap or Yandex.Maps API Geocoder By default the OSM search is used. To select a provider, go to control panel and open [Web Map settings](https://docs.nextgis.com/docs_ngweb/source/admin_tasks.html#web-map-settings). In the “Address search” section use the dropdown menu of the “Provider” field to select the desired geocoder. ![image](docs_ngweb/source/_static/address_search_provider_en.png) To use Yandex.Maps enter your API key in the field on the right. API keys can be obtained by users signed up on [https://developer.tech.yandex.ru](https://developer.tech.yandex.ru). ![image](docs_ngweb/source/_static/adress_search_yandex_API_en.png) ### Limit search area You can limit the search area to the Web Map’s initial extent. From the control panel go to [Web Map settings](https://docs.nextgis.com/docs_ngweb/source/admin_tasks.html#web-map-settings). Set the toggle of the “Limit by Web Map initial extent” to the on position. ![image](docs_ngweb/source/_static/address_search_initial_extent_en.png) While using OSM, you can also limit the search to a particular country. In the field “Limit search results to countries” enter the code of the country using the ISO of the OSM data base: de, gb, fi etc. To find out the code, use the search on [https://www.openstreetmap.org](https://www.openstreetmap.org). ![image](docs_ngweb/source/_static/address_search_country_en.png) # webmaps_admin.html.md # Adding Web Maps There could be several Web Maps in NextGIS Web. For example one map is for work, another is for public access and third is for testing of layer styles. Each Web Map has its own URL address. Different access permissions for Web Map viewing can be set for users and groups. Web Map displays layers. They can be turned on or off by the user. You can set the [order](https://docs.nextgis.com/docs_ngweb/source/webmaps_admin.html#layer-draw-order) of the layers, default layer [visibility](https://docs.nextgis.com/docs_ngweb/source/webmaps_admin.html#admin-webmap-create-layers) and create layer [groups](https://docs.nextgis.com/docs_ngweb/source/webmaps_admin.html#layer-groups). Groups on a map do not relate to resource groups in the Control Panel. Groups may be nested. To view Web Map in browser, press ![magnifying glass on map](docs_ngweb/source/_static/button_open_web_map.png) next to its name in the resource list or open the resource page and select **Display** in the Actions panel on the right. It will open in a [web viewer](https://docs.nextgis.com/docs_ngweb/source/webmaps_client.html). ## Creating a Web Map First upload the data to your Web GIS as [layers](https://docs.nextgis.com/docs_ngweb/source/layers.html). To create a Web Map, open the resource group where you want to add it, press **Create resource** button and in the pop-up window select “Web Map”. (see [Fig. 513.](#ngweb-admin-layers-create-webmap)). ![image](docs_ngweb/source/_static/ngweb_create_webmap_en.png) Create resource dialog for a Web Map will open, see [Fig. 514.](#admin-webmap-name). ![image](docs_ngweb/source/_static/admin_webmap_name_eng_3.png) Enter Web Map display name that will be visible in the administrator interface and in the Web Map viewer. (You can set up a title to be displayed in Web Map viewer in the [Settings tab](https://docs.nextgis.com/docs_ngweb/source/webmaps_admin.html#ngw-map-settings).) “Keyname” field is optional. You can also add resource description and metadata on the corresponding tabs. If you want to create a copy of an existing Web Map, you can [clone](https://docs.nextgis.com/docs_ngweb/source/webmap_clone.html) it. ## Web Map Layers In the “Layers” tab you can add, group or remove layers and change their order using the buttons “Add layer”, “Add group”, “Customize draw order” and “Delete layer” (X at the end of each row). ![image](docs_ngweb/source/_static/admin_webmap_layers_eng_3.png) To view the data of the layer on a map, you need to create at least one layer style. More on creating styles for different layer types [here](../../docs_ngcom/source/styles.md#ngcom-styles). ![image](docs_ngweb/source/_static/admin_webmap_add_layers_en_2.png) If the layer you want to add doesn’t have a style yet, you click on the ![square with arrow](docs_ngweb/source/_static/button_open_resource.png) icon next to its name. The layer resource opens in a separate tab where you can create a style for it. ![image](docs_ngweb/source/_static/open_layer_from_picker_en.png) Then return to the tab where the layer picker is open, click ![circular arrows](docs_ngweb/source/_static/button_refresh.png) Refresh and select the newly created style. You can add multiple styles at once. The layers containing selected styles are marked with blue dots. Navigate between resource groups and tick the styles of various layers you want to add. The **Pick selected** button displays the total number of selected styles. To clear the selection press the ![X](docs_ngweb/source/_static/button_clear_selection.png) button next to it. ![image](docs_ngweb/source/_static/webmap_add_layers_multi_en.png) You don’t need to go the style list of the layer to select the style. Press the ![editor's choice](docs_ngweb/source/_static/button_pick_first.png) button to the right of the layer name to auto-select the first style. ### Properties of Web Map layers Layers of a particular map have several settings, see [Fig. 519.](#admin-webmap-create-layers). ![image](docs_ngweb/source/_static/webmap_layer_settings_en.png) “Enabled” checkbox sets default visibility of a layer. When the **Identifiable** flag is on, a click on the map opens the [Identify panel](https://docs.nextgis.com/docs_ngweb/source/webmaps_client.html#ngw-webmaps-client-ident) with the information about the layer feature. Untick it to have the layer ignored by the identification. The “Transparency” field sets the layer transparency on a map between 0% (opaque) and 100% (completely transparent). We recommend setting the “Adapter” field to “Image” (a single image for the entire map), unless there are some special requirements. Alternatively, you can choose “Tiles” (images of 256 x 256 pixels). You can also set up a scale range. Min scale corresponds to the smaller image, max scale - to the larger, more detailed image. For example, if you want a layer to be displayed in scales between 1 : 250,000 and 1 : 5,000, the higher number (250,000) is the minimal scale. #### NOTE Max and min scale can be set not only using the Web Map’s Layers tab, but also in the layer style itself (See an [example](https://docs.nextgis.com/docs_ngweb/source/mapstyles.html#osm-water-line)). If the layer should not be displayed in a certain range of scales, we recommend to mark it in the Web Map’s layer settings. If the scale limit is only set within the style, empty tiles will be generated in other scales, which is less efficient. To go back to the layer list, press **Hide details**. ### Layer groups Layers added to Web Map can be gathered into groups. It will only affect the layer tree displayed on the map itself, making the legend more legible. It does not affect the actual resource group contents. To add a new group press **+ Group**. To put a layer into a group, drag and drop. ![image](docs_ngweb/source/_static/webmap_group_settings_en.png) **Expanded** option defines the way the layer group is presented in the layer tree when the Web Map is opened. If **Exclusive** is ticked, layers in the group will only be displayed one at a time. If you activate a layer, all other layers of the group are automatically hidden. It can be handy if you have, for example, a group of satellite data that completely overlaps. To go back to the layer list, press **Hide details**. ### Layer draw order The order of the layers on a map can be different from the order in which they appear in the tree. Click “Customize draw order” in the “Layers” tab of the map settings. It allows to choose the order of the displayed layers without affecting the groups. ![image](docs_ngweb/source/_static/admin_webmap_layerorders_1_cut_en.png)![image](docs_ngweb/source/_static/admin_webmap_layerorders_2_cut_en.png) To go back to the list of layers, press **Back to layers and groups**. To restore the initial layer order, press **Use default draw order**. Press **Save** to save the changes. ## Basemaps “Basemaps” tab allows to add and remove basemaps using corresponding buttons “Add” and “Remove” or [disable basemaps](https://docs.nextgis.com/docs_ngweb/source/webmaps_admin.html#ngw-map-no-base) altogether. ![image](docs_ngweb/source/_static/admin_webmap_basemaps_eng_3.png) For each basemap, you can set up a custom name different from the name of the resource. If “Default basemap” is checked, this basemap will be visible when the Web Map is opened. “Opacity” field sets basemap transparency on a map in a range between 0 and 100%. ### Creating Basemap Press **Create resource** button and select **Basemap** ([Fig. 524.](#ngweb-admin-create-basemap)). In the opened window enter the name of the resource that will be displayed in the administrator interface ([Fig. 525.](#ngweb-admin-basemap-name)). ![image](docs_ngweb/source/_static/ngweb_create_basemap_en.png)![image](docs_ngweb/source/_static/ngweb_admin_basemap_name_eng_3.png) The “Description” and “Metadata” of the resource are configured on the corresponding tabs ([Fig. 526.](#ngweb-admin-basemap-desc)). On the “Description” tab you can add any text describing the content. ![image](docs_ngweb/source/_static/ngweb_admin_basemap_desc_eng_3.png) In the “Basemap” tab you must enter the URL-address of the TMS service ([Fig. 527.](#ngweb-admin-basemap-param)). There are two ways to do so: * Use the search bar to find a map in the [QuickMapServices catalog](https://qms.nextgis.com/). After a map is selected, other fields will be filled in automatically. * Enter the address manually. The basemap will be previewed below. Press ![button_toggle_basemap](docs_ngweb/source/_static/button_toggle_basemap.png) **Toggle basemap** and move the opacity slider to compare it to the standard OSM basemap. ![image](docs_ngweb/source/_static/create_basemap_settings_en_3.png) #### HINT Want to be independent of the basemap provider? Deploy your own self-hosted basemap with [NextGIS GeoServices](https://nextgis.com/nextgis-geoservices/)! ### Web Map with no basemap By default a Web Map is created with OpenStreetMap basemap. If you need a map without a basemap, on the Basemap tab go to **Additional settings**. ![image](docs_ngweb/source/_static/webmap_basemap_additional_en.png) In the Additional settings section tick **Disable basemaps**. ![image](docs_ngweb/source/_static/webmap_basemap_nobase_en.png) In this section you can also set up the background color. By default it’s white. This color is visible if you have no basemap or your basemap has transparancy. ### How to use any layer in your Web GIS as a basemap Any layer (style) created in Web GIS can be used as a source of a tile service and connected as a **basemap**. To do this, you should: 1. Create the required [layer](https://docs.nextgis.com/docs_ngweb/source/layers.html) (vector or raster) and a [style](https://docs.nextgis.com/docs_ngweb/source/mapstyles.html) for it. Inside the style you’ll find a link marked **TMS service** - you will need it for step 3; 2. Enable [caching](https://docs.nextgis.com/docs_ngweb/source/mapstyles.html#tile-cache) (to speed up Web Map processing, for [Premium plan](https://nextgis.com/pricing-base/) only); 3. Create “Basemap” resource with unchecked “Use options from QMS” and the URL of the above-created TMS layer. ## Settings In the “Settings” tab you can modify several parameters: * title that will be displayed on the Web Map instead of resource name; * legend visibility (more [here](https://docs.nextgis.com/docs_ngcom/source/legend.html)); * enable annotations ([more on annotations](https://docs.nextgis.com/docs_ngweb/source/annotation.html)); * select measurement spacial reference system; * allow layer editing; * set up initial and constraining [extent](https://docs.nextgis.com/docs_ngweb/source/webmaps_admin.html#extent); * select [bookmark](https://docs.nextgis.com/docs_ngweb/source/webmaps_admin.html#bookmarks) resource; * set visibility of panels and feature identification elements. ![image](docs_ngweb/source/_static/admin_webmap_settings_tab_en_3.png) ## Legend Map symbols may need additional explanation. Paper maps and atlases use a separate page or an insert explaining what each symbol means. In NextGIS Web you have two options to display the information on symbols used in a layer: Display the map symbols in the layer tree. The markers of the layer styles will be used. In addition, you can add detailed description of the map symbols in the [Description panel](https://docs.nextgis.com/docs_ngcom/source/webmap_create.html#add-a-description-and-map-legend) (“i” in a circle). In NextGIS Web settings the term “legend” refers specifically to the map symbols displayed in the layer tree of the Web Map under the layer name. Visibility settings of the legend can be modified at various levels, allowing customization for specific goals, from “display all legends” to “display the legend differently for specific layers of one Web Map”. Legend visibility can be set: * for a layer of a Web Map * for a Web Map (all layers) * for the entire Web GIS Legend visibility for a particular layer is set in the Layer tab of the Web Map settings. ![image](docs_ngweb/source/_static/ngw_legend_map_layers_en.png) Legend visibility for a Web Map is set in its Settings tab. ![image](docs_ngweb/source/_static/ngw_legend_map_settings_en_2.png) You can also set default legend visibility for the Web GIS: Control panel – Web Map – Legend. This setting will be used if both Web Map and the layer have “Default” selected for legend visibility. ![image](docs_ngweb/source/_static/ngw_legend_webgis_en.png) Options for legend visibility are: * Expand – the legend is displayed in the layer tree. If the style has multiple marker types or colors, a full list will be shown. To collapse the list click on the ^ symbol next to the layer menu. ![image](docs_ngweb/source/_static/ngw_legend_full_view_en.png) * Collapse – the legend is displayed, but the list of the map symbols for a specific layer is collapsed when the map is opened. To expand it, click on a table symbol next to the layer menu. ![image](docs_ngweb/source/_static/ngw_legend_min_view_en.png) * Disable – the legend is not displayed in the layer tree. ![image](docs_ngweb/source/_static/ngw_legend_disabled_en.png) * Default – the higher level setting is used. For the layers that have “default” selected for legend visibility, the setting of the Web Map will be used. If the Web Map also has “default” selected, the visibility setting selected for the Web GIS is applied. ![image](docs_ngweb/source/_static/ngw_legend_mixed_en.png) NextGIS Web GIS supports legends for both vector and raster layers. Raster data in geographic information systems can represent vegetation cover and its density, changes in elevation, and other similar indicators. In this case the legend will show the gradient steps and corresponding values of the parameter. ![image](docs_ngweb/source/_static/ngw_legend_raster_en.png) The way the legend is formed depends on the raster type: * Multiband color - as it is RGB raster, the legend consists of red, green and blue squares; * Paletted/unique values - each value is represented with the color it corresponds to; * Singleband gray - it is a gradient, but the legend shows a set number of symbols (5 by default) marked by value range; * Singledband pseudocolor - like singleband gray shows symbols marked by value range. ## Extent On the Settings tab you can set up: * Initial extent - part of the Web Map that is shown upon its opening; * Constraining extent - users will not be able to zoom out or scroll past this extent. Extent is determined by four parameters in degrees. There are several ways to set them up. ![image](docs_ngweb/source/_static/webmap_extent_en_2.png) **From layers** button allows to so use the bounding box of layer or layers to set up the map extent. Click it, then in the pop-up window select layer or layers. The four coordinate fields will be filled automatically. ![image](docs_ngweb/source/_static/ngw_extent_from_layers_en.png) Click on the ![button_extent_all](docs_ngweb/source/_static/button_extent_all.png) button to set the extent by the combined extents of all the layers added to the Web Map. Click ![button_toggle_basemap](docs_ngweb/source/_static/button_toggle_basemap.png) to draw a custom bounding box on a map. ![image](docs_ngweb/source/_static/ngw_extent_from_map_en.png) Also you can enter the four coordinates manually. After the Web Map is created, you can pick an extent in display mode and [set it as initial or constraining](https://docs.nextgis.com/docs_ngweb/source/webmaps_admin.html#ngw-webmap-update). ## Bookmarks In the “Bookmark resource” field of the Settings tab you can select a vector layer with any type of geometry to use for bookmarks. The Web Map will show bookmarks panel (see [Fig. 542.](#ngw-bookmarks)) with names defined by “Label attribute” if it is set (see [Fig. 543.](#bookmark-attribute)). ![image](docs_ngweb/source/_static/ngw_bookmarks_en.png)![image](docs_ngweb/source/_static/bookmark_attribute_en_2.png) ## Hide or show panels and identification sections In the “Additional options” of the Web Map settings you can set up visibility for the following elements: * [Trackers](https://docs.nextgis.com/docs_ngweb/source/trackers.html#tracking-web-map) panel; * feature attributes in the identification panel; * feature geometry info in the identification panel. For each of them you can choose one of three options: “Yes” - show, “No” - do not show, “Auto” - applies the default [option](https://docs.nextgis.com/docs_ngweb/source/webmap_set.html#ngw-contr-panel-webmap-settings) set up for the Web GIS a whole. To set the “Auto” option, click on the cross on the right side of the option field. ![image](docs_ngweb/source/_static/ngw_additional_opt_en.png) ## Social The “Social” tab is used to upload an image to be used as preview in social media. ![image](docs_ngweb/source/_static/admin_webmap_social_en.png) ## Final steps After creating the map content and adjusting settings for all the layers, click “Save” button. A saved map will be shown in the list of maps. Click an icon with a map in the list of Web Maps or select “Display” action in the tab on the Web Map properties page to open it in the viewer. While the Web Map resource page is open, you can also open the map by clicking the “View” button on the right. Web Maps viewer is described [here](webmaps_client.md#ngw-webmaps-client). A Web Map URL displayed in the viewer may be shared with other users because it is static. #### WARNING After a map is deleted, its URL will no longer be available. ## Open Web Map settings Click on ![button_edit](docs_ngweb/source/_static/button_edit.png) “Update resource” on the resource page, in the resource list or in the Web Map viewer. ![image](docs_ngweb/source/_static/webmap_open_settings_en.png) If you open the settings from the map viewer, they are displayed in a pop-up window. ![image](docs_ngweb/source/_static/webmap_settings_on_map_en.png) To view the changes in the layers without refreshing the whole page, select “Reset layers” in the Layers panel menu. Layers are updated to the newly saved settings without losing the current extend of the map. When editing Web Map settings from the display screen, you can set the current extent as initial or constraining extent of the Web Map. ![image](docs_ngweb/source/_static/ngw_extent_from_current_en.png) Web Map settings are available for the user who have [modify permission](https://docs.nextgis.com/docs_ngcom/source/permissions.html#) for the corresponding resource. See how to modify settings from the Web Map viewer in our video: Watch on [youtube](https://youtu.be/IZHborRY5xA?si=xjTIUyEDGEXfF0DQ). ## How to optimize Web Map performance Web Maps show data rendered by the server. The more of this data you have, the more server resources are needed to render and the more time it takes. There are several techniques you can use to improve your map experience. **Don’t show everything at once** This is a universal recommendation. Does your user need to see everything after opening the Web Map for the first time? Typically, it is not informative. On broad scales (smaller zooms) it is advisable to show limited amount of data as a start. **Scale range** Set a range of [scale levels](https://docs.nextgis.com/docs_ngweb/source/webmaps_admin.html?highlight=scale#admin-webmap-create-layers) for displaying data on a Web Map. This will allow you to avoid requesting data outside this range and showing excess data where it is not essential. **Caching** Set up [caching](https://docs.nextgis.com/docs_ngweb/source/mapstyles.html#tile-cache) for your layer styles. In this case, already rendered data will not be re-requested. Note that, while technically it’s possible to turn on caching for rasters, this is not recommended. **Services** Today’s interactive map is often a complex system that might include connections to external services, such as basemaps, WMS, TMS services and more. If you use them on your map, overall speed on it will depend on their performance. Remove them if you don’t need them or at least turn them off not to show by default. **Select Image as an adapter** In the Web Map settings, go to the Layers tab and [select](https://docs.nextgis.com/docs_ngweb/source/webmaps_admin.html?highlight=adapter#admin-webmap-create-layers) **Image** as an adapter to allow for faster data processing. We do not recommend using Tiles if it isn’t necessary. It slows down the entire Web GIS if large amounts of data are used. **Raster styles instead of QGIS raster style** If your map shows big rasters you can add few percents of performance by switching from QGIS raster styles to regular raster styles. Go to your raster, add a raster style (if possible), add them back to your Web map replacing QGIS ones. # webmaps_client.html.md # Web Map viewer A special web application for viewing Web Maps is included in NextGIS Web (see [Fig. 554.](#webmap-client)). To view the Web Map press ![magnifying glass on map](docs_ngweb/source/_static/button_open_web_map.png) next to its name in the resource list or open the resource page and select **Display** in the Actions panel on the right. The following page will open: ![image](docs_ngweb/source/_static/webmap_client_eng_4.png) Numbers indicate: * 1 – map; * 2 – map [panels](https://docs.nextgis.com/docs_ngweb/source/webmaps_client.html#ngw-webmaps-client-panels); * 3 - open [Web Map settings](https://docs.nextgis.com/docs_ngweb/source/webmaps_admin.html#web-map-layers); * 4 - [layer tree](https://docs.nextgis.com/docs_ngweb/source/webmaps_client.html#ngw-webmaps-client-layers) with layer menu buttons; * 5 – [dropdown list of basemaps](https://docs.nextgis.com/docs_ngweb/source/webmaps_client.html#ngw-webmaps-client-basemap); * 6 and 7 - [map tools](https://docs.nextgis.com/docs_ngweb/source/webmaps_client.html#ngw-webmaps-client-tools); * 8 - [status bar](https://docs.nextgis.com/docs_ngweb/source/webmaps_client.html#ngw-webmaps-client-scale) and copyright. ## Zoom and rotation The status bar (see [Fig. 554.](#webmap-client)) displays the current scale of the map. If you use the identify tool to click on the map, a pop-up window will show the coordinates of the point you clicked on and list map features if present in this point of the map. You can change the scale of the map using zoom tools (see item 5 in [Fig. 554.](#webmap-client)). To reset the map to its initial extent, press the house icon. There are some options to work with map: * if you click on `alt + shift` simultaneously and execute round cursor movements around a monitor, a map will turn for a certain degrees to the right or to the left, * if you simultaneously click on `shift` and select of the necessary part of a map on a monitor by a cursor, you will highlight this part and zoom in it on the map. To view your current location on the map, press ![button_my_location](docs_ngweb/source/_static/button_my_location.png). See how it works in our video: Watch on [youtube](https://youtu.be/HVvuDMX1pEo?si=YzQcqFMw-ge50qPA). ## Panels On the left side of the workspace are the functional panels: * ![panel_layers](docs_ngweb/source/_static/panel_layers.png) [Layers](https://docs.nextgis.com/docs_ngweb/source/webmaps_client.html#ngw-webmaps-client-layers) * ![panel_ident](docs_ngweb/source/_static/panel_ident.png) [Feature identification](https://docs.nextgis.com/docs_ngweb/source/webmaps_client.html#ngw-webmaps-client-ident) * ![panel_search](docs_ngweb/source/_static/panel_search.png) [Search](https://docs.nextgis.com/docs_ngweb/source/webmaps_client.html#ngw-webmaps-client-search) * ![panel_annot](docs_ngweb/source/_static/panel_annot.png) [Annotations](https://docs.nextgis.com/docs_ngweb/source/annotation.html) * ![panel_info](docs_ngweb/source/_static/panel_info.png) [Description](https://docs.nextgis.com/docs_ngcom/source/webmap_create.html#add-a-description-and-map-legend) * ![panel_bookmarks](docs_ngweb/source/_static/panel_bookmarks.png) [Bookmarks](https://docs.nextgis.com/docs_ngweb/source/webmaps_admin.html#bookmarks) * ![panel_share](docs_ngweb/source/_static/panel_share.png) [Share](https://docs.nextgis.com/docs_ngweb/source/webmaps_client.html#ngw-webmaps-client-share) here you can generate a link to the Web Map or an [embed code](https://docs.nextgis.com/docs_ngweb/source/embed_webmap.html) * ![panel_print](docs_ngweb/source/_static/panel_print.png) [Print](https://docs.nextgis.com/docs_ngweb/source/print.html) * ![panel_trackers](docs_ngweb/source/_static/panel_trackers.png) [Trackers](https://docs.nextgis.com/docs_ngcom/source/tracking.html) ## Map tools Tools to work with the Web Map (see [Fig. 554.](#webmap-client) item 6) named from left to the right: Top left: * ![button_zoom](docs_ngweb/source/_static/button_zoom.png) zoom; * ![button_home](docs_ngweb/source/_static/button_home.png) back to initial extent; * ![button_my_location](docs_ngweb/source/_static/button_my_location.png) show my location. Bottom left: * ![panel_ident_small](docs_ngweb/source/_static/panel_ident.png) [Identify](https://docs.nextgis.com/docs_ngweb/source/webmaps_client.html#ngw-webmaps-client-ident) * ![magnifying glass +](docs_ngweb/source/_static/button_zoom_in.png) [Zoom in](https://docs.nextgis.com/docs_ngweb/source/webmaps_client.html#zoom-and-rotation) * ![magnifying glass -](docs_ngweb/source/_static/button_zoom_out.png) [Zoom out](https://docs.nextgis.com/docs_ngweb/source/webmaps_client.html#zoom-and-rotation) * ![ruler](docs_ngweb/source/_static/button_measure_distance.png) [Measure distance](https://docs.nextgis.com/docs_ngweb/source/webmaps_client.html#measuring-tools) * ![drafting triangle](docs_ngweb/source/_static/button_measure_area_map.png) [Measure area](https://docs.nextgis.com/docs_ngweb/source/webmaps_client.html#measuring-tools) * ![rectangle with vertical line](docs_ngweb/source/_static/button_swipe_off.png) [Swipe](https://docs.nextgis.com/docs_ngweb/source/webmaps_client.html#ngw-webmaps-client-tools-swipe) * ![button_extent_coord](docs_ngweb/source/_static/button_extent_coord.png) [Show cursor coordinates/extent](https://docs.nextgis.com/docs_ngweb/source/webmaps_client.html#show-extent-or-cursor-coordinates) See detailed descriptions below. ### Measuring tools Map tools allow to measure distance (straight or segmented line) and area. Activate the tool and draw a line by clicking on the map. Double-click to finish line creation. You can draw multiple measuring lines on a map and compare results. To delete one of the measurement lines, press X on the measurement results lable. To clear selection, press the tool button again. ![image](docs_ngweb/source/_static/ngw_map_measure_line_en.png) To measure area draw a custom polygon on the map. Double-click to finish the polygon. ![image](docs_ngweb/source/_static/ngw_map_measure_area_en.png) Measurement units are selected in the [Control panel](https://docs.nextgis.com/docs_ngweb/source/webmap_set.html#ngw-contr-panel-webmap-measure) ### Swipe Swipe makes the selected layer transparent to one side of the line. To select a layer click on it in the layer tree (it will be highlighted in blue), then press the swipe button ![rectangle with vertical line](docs_ngweb/source/_static/button_swipe_off.png) (see [Fig. 557.](#ngweb-webmap-choose-layer)). ![image](docs_ngweb/source/_static/choose_layer_swipe_en_2.png) Use the square in the center to move the swipe and the circle on the line to rotate it 90 degrees. Swipe makes it possible to “peek” under the selected layer and compare it with the substrate or another layer on the map. The tool will be useful if we want to compare changes in the terrain by satellite images for different dates (for example, to identify forest felling or floods). ![image](docs_ngweb/source/_static/swiped_satellite_en.png) ### Show extent or cursor coordinates A field can be added to the Web Map interface to show the coordinates of the current cursor position or the extent of the visible map area. To activate it, press the ![button_extent_coord](docs_ngweb/source/_static/button_extent_coord.png) button in the map tools panel. The icon on the right indicates what is displayed. Click on it to switch between modes. ![image](docs_ngweb/source/_static/web_client_coordinates.png)![image](docs_ngweb/source/_static/web_client_extent.png) ## Share In the ![panel_share_intext](docs_ngweb/source/_static/panel_share.png) “Share” panel you can: * copy a link to the Web Map (the link includes zoom level and layer visibility); * add the visible fragment of the Web Map to [favorites](https://docs.nextgis.com/docs_ngweb/source/favorites.html#ngw-favorites-wm-fragment); * configure and copy the code for embedding the Web Map to a Web site. ![image](docs_ngweb/source/_static/web_client_share_en.png) ## Link to a Web Map feature The easiest way is to zoom in on the area and copy the link via the **Share** panel ([Fig. 554.](#webmap-client)) Using specially generated GET queries you can share a link to a particular feature of a layer. The link will open with the geographical context that you can select in the Web Map settings. All you need to do is create links in the information systems. By clicking on them users will be directed to the map with the selected feature and context. Such links can be automatically generated by your system integrated with NextGIS Web. Example: [https://demo.nextgis.com/resource/6118/display?panel=layers&hl_lid=6108&hl_attr=OSM_ID&hl_val=230629285&zoom=17](https://demo.nextgis.com/resource/6118/display?panel=layers&hl_lid=6108&hl_attr=OSM_ID&hl_val=230629285&zoom=17) You can make such a link **manually**. Here’s what you need: * Link to the Web Map: [https://demo.nextgis.com/resource/6118/display?panel=layers](https://demo.nextgis.com/resource/6118/display?panel=layers) For the feature: * hl_lid - layer ID (open the layer resource page and see the number in the URL, for example [https://demo.nextgis.com/resource/6114](https://demo.nextgis.com/resource/6114), here `hl_lid=6114` * hl_attr – the name of the ID attribute field, for example `OSM_ID`; * hl_val – the value of the ID field. You can also add: * zoom - value in numbers with 1 being the minimum. Here’s the resulting link: [https://demo.nextgis.com/resource/6118/display?panel=layers&hl_lid=6114&hl_attr=OSM_ID&hl_val=1058246738&zoom=17](https://demo.nextgis.com/resource/6118/display?panel=layers&hl_lid=6114&hl_attr=OSM_ID&hl_val=1058246738&zoom=17) ![image](docs_ngweb/source/_static/webmap_feature_lik_ID_en_2.png) ## Legend in the layers tree The **Layer tree** panel ![panel_layers_small](docs_ngweb/source/_static/panel_layers.png) contains a list of all layer styles added to the Web Map. The panel allows to: * Disable/Enable layer visibility by ticking the checkbox on the left. You can also hide parts of a layer by selecting items in the Web Map lengend. It’s helpful for big projects where one layer may contain a variety of features grouped by value of an attribute. * Change the order of the layers by dragging them within the layer tree. Refresh the page to restore the original order. Click on the three dots next to the panel title to open the menu. In this menu you can: * ![table](docs_ngweb/source/_static/button_extent_all.png) Zoom to all layers; * ![crossed out eye](docs_ngweb/source/_static/button_visibility_off.png) Hide all layers; * ![arrow counterclockwise](docs_ngweb/source/_static/button_restore.png) Reset layers to the initial visibility setting without reloading the page, * ![table](docs_ngweb/source/_static/button_plus_layer.png) Add layers; * ![table](docs_ngweb/source/_static/button_plus_layer.png) Add group - creates a new group in the layer tree. To add layer to the group, drag and drop it. ![image](docs_ngweb/source/_static/webmap_layers_panel_menu_en_3.png) If you want the current state of the map legend to be the default for this Web Map, click ![floppy disk on blue](docs_ngweb/source/_static/button_save_blue.png) in the bottom left corner. More on how to [configure the legend](https://docs.nextgis.com/docs_ngweb/source/webmaps_admin.html#ngw-legend). Functionality of the layer panel is presented in our video: Watch on [youtube](https://youtu.be/4Pd5AKtoR2g?si=0lMooDE3ZzpO0xxz). ## Layer menu Click on the three dots to the right of the layer name to open its menu. The following options are available: ![image](docs_ngweb/source/_static/ngweb_webmap_layer_menu_en_4.png) * ![table](docs_ngweb/source/_static/button_extent_all.png) **Zoom to layer** - sets the map extent so that all features of the select area are in it. * ![funnel](docs_ngweb/source/_static/button_filter.png) **Filter** - display only the features fitting [set conditions](https://docs.nextgis.com/docs_ngweb/source/webmaps_client.html#filter). * ![table](docs_ngweb/source/_static/button_table.png) **Feature table** - opens the layer’s [feature table](https://docs.nextgis.com/docs_ngweb/source/feature_table.html#ngw-feature-table-webmap) on the map. * ![pencil](docs_ngweb/source/_static/button_edit_black.png) **Edit on map** - activates the ability to to modify the features of the selected layer. To complete the process, open the dropdown menu again and select **Stop editing** ([read more here](https://docs.nextgis.com/docs_ngweb/source/feature_edit.html#edit-mode)) or click ![floppy disk on white](docs_ngweb/source/_static/button_maptool_save.png) on the map. * ![three lines with handles](docs_ngweb/source/_static/button_tune.png) **Properties** - how the layer behaves on this particular Web Map ([more about layes on a Web Map](https://docs.nextgis.com/docs_ngweb/source/webmaps_admin.html#admin-webmap-create-layers)). * ![lined rectangle](docs_ngweb/source/_static/button_article.png) **Description** - view the description of the selected layer, if it has one. * ![Х](docs_ngweb/source/_static/button_close.png) **Remove layer** from the legend (to reset it, click ![arrow counterclockwise](docs_ngweb/source/_static/button_restore.png) Reset layers in the panel menu). * ![palette](docs_ngweb/source/_static/button_palette.png) **Edit style**, opens in a pop-up window, [more on style settings](https://docs.nextgis.com/docs_ngweb/source/mapstyles.html). * ![gear](docs_ngweb/source/_static/button_gear.png) **Edit layer**, opens the layer resource settings in a pop-up window, more on [vector layer settings](https://docs.nextgis.com/docs_ngweb/source/layers_settings.html). * **Identifiable** flag - when it is on, a click on the map opens the [Identify panel](https://docs.nextgis.com/docs_ngweb/source/webmaps_client.html#ngw-webmaps-client-ident) with the information about the layer feature. Untick it to have the layer ignored by the identification. * ![drop](docs_ngweb/source/_static/button_opacity.png) To change the transparency of the layer use the slider. See how it works in our video: Watch on [youtube](https://youtu.be/M4cThWxdaZg?si=8sohojUzoB8oovvY). ## Filter For any vector layer you can add a filter. Select **Filter** in the layer menu. In the pop-up window add one or several conditions. If you add multiple conditions, you can select if all of them must be satisfied at once or any one of them is sufficient. [More on how filter conditions work](https://docs.nextgis.com/docs_ngweb/source/feature_table.html#table-search-filter). ![image](docs_ngweb/source/_static/web_map_filter_add_en.png) Click **Apply**. Only the features that answer the conditions are still displayed on the Web Map and in the Feature table. ![image](docs_ngweb/source/_static/web_map_filter_result_en.png) You can also filter the features within a [selected area](https://docs.nextgis.com/docs_ngweb/source/feature_table.html#ngw-feature-table-filter-area). ## Feature identification To get information about features on the Web Map activate the ![panel_ident_small](docs_ngweb/source/_static/panel_ident.png) identify panel. Click anywhere on the map to get info on vector features and raster pixels. ![image](docs_ngweb/source/_static/ngw_panel_id_en.png) If a raster layer has raster attribute table, classes from it are displayed alongside the numerical value of the pixel. #### NOTE To use this feature, create raster layer via [Web interface](https://docs.nextgis.com/docs_ngweb/source/layers.html#ngw-create-raster-layer). Combine the .TIF and the corresponding .XML file into a ZIP-arhive. Then select this archive while creating a raster layer. ![image](docs_ngweb/source/_static/landcover_rat_ident_en.png) If there are multiple features (for example a point and a line going through it), the identify panel will show the feature of the topmost layer. To view information on the other features click on the downward arrow to the right of the feature name and select the feature from the dropdown list. ![image](docs_ngweb/source/_static/ngw_panel_id_select_feature_en_2.png) To clear selection, click on ![X](docs_ngweb/source/_static/button_maptool_clear.png) in the bottom left corner. When no feature is selected, this button looks like this: ![panel_ident_small](docs_ngweb/source/_static/panel_ident.png). To configure how far from the clicks the features can be to be identified and what parameters are displayed in the panel go to the [Control panel](https://docs.nextgis.com/docs_ngweb/source/webmap_set.html#ngw-contr-panel-webmap-ident). You can turn off identification for a particular layer in the layer menu. Also, you can disable identification for individual layers and modify their order in the [Web Map settings](https://docs.nextgis.com/docs_ngweb/source/webmaps_admin.html#ngw-map-layers). To modify attribute values of the feature, click on the pencil icon in the top right corner of the panel ([more details](https://docs.nextgis.com/docs_ngweb/source/feature_edit.html#ngweb-editing-when-viewing-map)). ![image](docs_ngweb/source/_static/ngw_panel_id_edit_en.png) ## Search **Search** is performed using three sources: 1. Coordinates. 2. Attributes of layers added to a map. 3. Address database (OpenStreetMap or Yandex.Maps, depending on [address search settings](https://docs.nextgis.com/docs_ngweb/source/webmap_set.html#address-search)). Results are shown as user inputs text and are sorted in this order: points on the map matching the coordinates, then feature numbers for attribute search and finally full addresses. After a click on a search result map changes extent to show selected feature. ![image](docs_ngweb/source/_static/webmap_search_results_en.png) ### Search by coordinates To find a point using the coordinates, enter the latitude and longitude in degrees, minutes and second, degrees and decimal minutes or decimal degrees (make sure to use straight single and double quotes), for example: ```bash 79 W 43 N W 79 N 43 -79 43 (the results will contain two points: 79 W, 43 N and 43 E, 79 S) 79- 43 -79 W 43 N 79°4'14.08" W 43°4'59.37" N -79°4'14.08" 43°4'59.37" -79 4.25 W 43 4.95 N -79 4.25 43 4.95 79.068493 43.079920 79.068 W 43.08 N ``` See how it works in our video: Watch on [youtube](https://youtu.be/tjPHvUWtpKs?si=Od-yUzIhM0yr4JwM). When the feature table is opened on the Web Map, you can filter features by area ([read more](https://docs.nextgis.com/docs_ngweb/source/admin_interface.html#ngw-feature-table-filter-area)). ## Basemap To change a basemap use the dropdown list (see [Fig. 554.](#webmap-client)). By default you can select: * OpenStreetMap * None - disable the basemap so that a white background is shown instead. You can add other basemaps, see the instructions in [Adding resources](https://docs.nextgis.com/docs_ngweb/source/webmaps_admin.html#creating-basemap). Usually a basemap is shared by thrid-party services in the Internet. Users can not influence their content. If the Internet access is expected to be poor or if the Web GIS is deployed in local network without access to the Internet, you can add base data as Web GIS layers (for example, a [Tileset](https://docs.nextgis.com/docs_ngweb/source/layers.html#ngw-tile-set)) or deploy [NextGIS GeoServices](https://docs.nextgis.com/docs_geoserv_prem/source/intro.html) to host your own basemaps. ## Contact Web GIS owner User viewing a publicly available Web Map can send a message to the Web Map administrator. ![image](docs_ngweb/source/_static/webmap_getintouch_en.png) Clicking this icon redirects to the account page (you have to log in with your [NextGIS ID](https://docs.nextgis.com/docs_ngcom/source/create.html)). Fill the message form: ![image](docs_ngweb/source/_static/webmap_owner_contact_en.png) The Web GIS administrator will receive your message and email address so that they can reply by email. # wildfire_analysis.html.md # Wildfire Susceptibility Analysis (Topographic) Topographic wildfire susceptibility analysis using slope, Heat Load Index (Bohner & Antonic 2009), TPI, TRI, inverse TWI, and elevation. Includes Rothermel fire spread factor. Note: vegetation, climate, and anthropogenic factors not included. Inputs: * Terrain Analysis Package (ZIP). ZIP file from [Comprehensive Terrain Analysis](https://toolbox.nextgis.com/t/terrain_analysis) containing DEM, slope, aspect, TWI, TPI, TRI, and manifest.json * Weight: Slope. Weight for the slope indicator (default: 0.25) * Weight: Heat Load Index. Weight for the Heat Load Index indicator (default: 0.25) * Weight: TPI. Weight for the Topographic Position Index (default: 0.15) * Weight: TRI. Weight for the Terrain Ruggedness Index (default: 0.10) * Weight: TWI (inverted). Weight for the inverted TWI indicator (default: 0.15) * Weight: Elevation. Weight for the elevation indicator (default: 0.10) * Hotspot Threshold. WTI value above which areas are classified as hotspots (default: 70) * Spectral Indices Package (ZIP). Optional ZIP from spectral_indices with vegetation index aggregates. When provided, a vegetation indicator is added to the weighted overlay. * Weight: Vegetation Index. Weight for the vegetation index indicator (default: 0.10). Only used when spectral_zip is provided. Other weights are scaled down proportionally. Outputs: * Wildfire Analysis Package (ZIP). ZIP archive with wildfire susceptibility rasters, vectors, statistics, and manifest * Summary. Human-readable summary of the wildfire analysis results * Manifest JSON. JSON manifest string describing all outputs Launch the tool: [https://toolbox.nextgis.com/t/wildfire_analysis](https://toolbox.nextgis.com/t/wildfire_analysis) Example: ![image](docs_toolbox/source/_static/analysis_input_en.png)![image](docs_toolbox/source/_static/wildfire_analysis_result_en.png) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # wurman_dots.html.md # Wurman Dots #### NOTE Qt6 compatible Create Wurman dots using a square or hexagonal grid. Wurman Dots is a method for visualizing the density of a point layer. The area is split into cells, each of them is then marked by a circle. The inner circle vary in size representing the density of objects within each corresponding grid cell. ![image](docs_ngqgis/source/_static/wurman_dots_result.png)![image](docs_ngqgis/source/_static/wurman_dots_result_hex.png) After installation you can find the plugin in the Vector menu. It has two options of grid generation, one creates a grid based on cell size, the other - based on cell count. ![image](docs_ngqgis/source/_static/wurman_dots_menu_en.png) Settings: * Select a point layer (EPSG:3857 only), it is the only required field, for the other fields you can use default settings; * You can apply the algorithm to the selected features only by ticking this option; * Configure cell parameters (depending on the grid generation method): > * Set the grid cell size in meters (the default is 50000), OR > * Set the number of cells along the shorter side of the extent (the default is 10); * Select grid type (square or hexagonal); * If you want to create circles in the cells that have no points in them, tick “Create continuous grid of fixed circles”; * Enter paths to output files if you wish. By default, temporary layers will be created. * If you don’t want to add the resulting layers to the map, untick “Open output file after running the algorithm”. ![image](docs_ngqgis/source/_static/wurman_dots_settings_size_en.png)![image](docs_ngqgis/source/_static/wurman_dots_settings_count_en.png) The fixed circles and density circles are separate vector layers. For each of them you can modify color, opacity and other style parameters. See how the plugin works in our video: Watch on [youtube](https://youtu.be/5cwiV16rVGo?si=uX1W4ncIu3zuIDjI). # xml_decl_to_vector.html.md # Convert forest declaration into geodata Converts XML with forest declaration into vector layer. Inputs: * Input data – XML file or ZIP archive with several XML files * Vector file format – option to specify the output file format: geojson, shp, gpkg or tab. If not specified, gpkg will be applied by default. * ID of output geodata – prefix to be used in output file’s name * Create layer with binding – option to create additional layer with binding line Outputs: * ZIP archive with converted data Launch the tool: [https://toolbox.nextgis.com/t/xml_decl_to_vector](https://toolbox.nextgis.com/t/xml_decl_to_vector) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # xml_plv_to_vector.html.md # Convert XML: forestReforestation Convert XML: forestReforestation to geodata. Inputs: * Source file. Single XML file or ZIP with any XML. * Output format. One of output formats: GPKG, GEOJSON, SHP, TAB. Outputs: * ZIP archive with polygon and line files in the chosen format. Launch the tool: [https://toolbox.nextgis.com/t/xml_plv_to_vector](https://toolbox.nextgis.com/t/xml_plv_to_vector) ![image](docs_toolbox/source/_static/xml_plv_to_vector_result.png) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # xml_tol_to_vector.html.md # Convert XML: TaxationDescriptionCuttingArea Convert XML: TaxationDescriptionCuttingArea to geodata. Inputs: * Source file. Single XML file or ZIP with any XML. * Output format. One of output formats: GPKG, GEOJSON, SHP, TAB. Outputs: * ZIP archive with polygon and line layers in the chosen format. Launch the tool: [https://toolbox.nextgis.com/t/xml_tol_to_vector](https://toolbox.nextgis.com/t/xml_tol_to_vector) ![image](docs_toolbox/source/_static/xml_tol_to_vector_result.png) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button. # yandex_datalens.html.md # How to upload data to Yandex DataLens ## Prepare the file * [Order data](https://data.nextgis.com/en/) for your area of interest, for example in GeoPackage format. Most likely the product you need is the Basemap. * Go to the [orders](https://data.nextgis.com/en/orders/actual/) page and download the archive when it’s complete. * **Unpack** the archive. * Select the layer, for example, administrative boundaries of the counties (boundary-polygon-lvl6) or settlements (settlement-point). * Use the [free online converter](https://toolbox.nextgis.com/operation/vector2datalens) to prepare vector layer for DataLens by converting it to a fitting format. The output of this converter is a CSV file. ## Upload to DataLens 1. **Create connection** On the main page of the [DataLens service](https://datalens.yandex.cloud) click Connections: **Create**. Then select `Files and services --> Files`. In the top left corner click **Upload files**. ![image](docs_data/source/_static/DL_upload_file_en.png) After the file is uploaded, click **Create connection** in the top right corner. #### NOTE Make sure that the “Columns header” is set to “Yes”. ![image](docs_data/source/_static/DL_create_connection_en.png) Choose a workbook or create a new one. After selecting a workbook, click **Create**, enter the name for the new connection in the pop-up dialog and click **Create** in that dialog. ![image](docs_data/source/_static/DL_workbook_name_en.png) 1. **Create dataset** Click **Create dataset** in top right corner and select the connection you’ve just created. ![image](docs_data/source/_static/DL_create_dataset_en.png) Go to the “Fields” tab. For the first field, set the type to *Geopolygon* / *Geopoints* using the dropdown menu. ![image](docs_data/source/_static/DL_field_settings_en.png) Click **Save** in the top right corner. Enter a name for the new dataset and save it. 1. **Create a chart** After the dataset is created, the button **Create chart** in the top right corner becomes active. Click it to create a new chart. ![image](docs_data/source/_static/DL_chart_en.png) Select your **dataset** in the dropdown menu on the left. In the section to the right use the dropdown menu to select *Map* as the **chart type**. Below choose the **field type** in the dropdown menu so that it matches the geometry of your layer: **Polygons (Geopolygons)** or **Points (Geopoints)**. Drag the Geopolygon/Geopoint field to the “Polygons”/”Points” section to create the visualization. Click **Create** button in the top right corner. Enter the name for the chart (the default value is ‘Dataset name - Map’) and save it. ![image](docs_data/source/_static/DL_result_en.png) # zmu_data_analysis.html.md # Winter route census: data analysis and reporting Analysis of data on wildlife distribution and abundance obtained during the winter route census, and generation of analytic reports in accordance with the “Methodology for game species count using the winter route census” approved by Order No. 49 of the Federal State Budgetary Institution “Federal Research Center for Hunting” dated November 22, 2023. All data is taken from NextGIS Web. Input: * Web GIS Address `Required field` * Web GIS login * Web GIS Password * “WRC Data” resource group ID `Required field` - ID of the resource group with the deployed WRC system (by default, the name of the group is “WRC Data”) * Start date - The starting date for the WRC data used to generate the report, in the format DD.MM.YYYY. If you leave the field empty, the report will be generated for the entire time before the end date. * End date - The end date for the WRC data used to generate the report, in the format DD.MM.YYYY. If you leave the field empty, the report will be generated for the time period from the start date to today. * Adding a Web map - When selected, it generates a Web map with routes in the user’s web GIS and adds a link to it in the list. * The accounting strip width - The width of the accounting strip used in compiling the statement of calculation of the number of birds in the study area, in km. This parameter is required when taking into account bird species in the process of winter route census Output: * .DOCX report file Launch the tool: [https://toolbox.nextgis.com/t/zmu_data_analysis](https://toolbox.nextgis.com/t/zmu_data_analysis) **Try the tool in action** 1. Click on the **Demo** button above the tool form. The fields are filled in with demo values. 2. Click on the **Run** button.