Open source geospatial software as a service.


Manage your team


This feature makes it possible to create new users under your regular GC2 account. The new users are called sub-users and do not have their own database, but will log into the "parent" database. The parent-user will be able to assign the sub-user privileges such as read/write access to certain layers. A new sub-user will have its own schema in the database, where the sub-user can create its own data sets and assign privileges to other sub-users.

Versioning of data (Track changes)

Tracking changes keeps the full transaction history in the actual table. This enables users to go back in history and see how a layer looked at a particular time. Also it works as a log of all transactions made on the layer. A versioned layer acts like all other layers and can be edited in the normal way. GC2 takes care of versioning in the background. Versioning takes place in the WFS service layer. That is, it works both when editing in GC2's Map tab, but also through external WFS editors such as QGIS.

Workflow management

Workflow makes it possible to control the editing of a layer in a typical author-reviewer-publisher chain. A layer under workflow management acts like all other layers and can be edited in the normal way. GC2 takes care of the workflow in the background. Workflow happens in the WFS service layer. That is, it works both when editing in GC2's Map tab, but also through external WFS editors such as QGIS.


Import your spatial data

Its very easy get your data uploaded to GC2. You can upload vector files like ESRI Shape, MapInfo tab/mif, GeoJSON, GML, KML and  ESRI fileGDB. But also raster and imagery can be uploaded. After upload you can add title, description, styles etc. The data layers are instantly available through the SQL, WFS, WMS amd TMS services. You can also create a empty layer from scratch and populate through the services.


Style your maps

A layer must be styled before it can be seen on the map and in map/tile services. Styling is done through the layer's class(es), which may be assigned properties such as color, symbol, thickness, size, label etc. GC2 has a Class Wizard, which can help with the creation of classes.


Manage your database

We have built a very powerful administration interface for your GeoCloud. From a web browser you can manage every single component. Alter the layer schemes, set level of authentication, manage the tile caching and much more. You can even edit your data with the online editor.


JavaScript API

The GC2 JavaScript API is a thin wrapper around Leaflet. It makes it easy to initiate a Leaflet map with tile and vector overlays from a GC2 server. Also it defines commonly used base layers from providers like OSM, Google, Bing, HERE, Yandex and Stamen.

Below is the Hello World example, which is a map with a single tile layer. For more examples, check out the example collection


Edit your data online

We have built an online editor so you can create,update and delete records in your data set without the use of an external application. Filtered load of features makes it possible to edit huge data sets by downloading only parts of the data. The video shows editing a data set with thousands of tweets. Only points within the viewport is loaded. It also shows how to edit the polygon data.


Spatial SQL API

The SQL API exposes the power of PostGIS as a web service. You can fire any select query against the database and retrieve the result set as GeoJSON. You can insert, update and delete rows is a safe way using a simple api key method. Soon we'll introduce our SQL bulk API, which enables you to post a transaction block of queries.

Basically you call the API endpoint with q=select.... like this: 

/api/v1/sql/naturalearth?q=SELECT * FROM public.ne_50m_lakes

Where "naturalearth" is your GeoCloud database.

You can enable server side caching of the result by using &lifetime=[seconds]. You can use this on long running queries.

You can use the full disposal of (spatial) SQL, like JOIN, UNION, LIMIT and so on. You can also construct geometies without quering tables like this:

/api/v1/sql/naturalearth?q=SELECT ST_SetSRID(ST_Point(-123.365556, 48.428611),4326) as geom

By default the SQL API will transform geometries to Web Mercator. To override this you can use &srs=[EPSG]

/api/v1/sql/naturalearth?q=SELECT ST_SetSRID(ST_Point(-123.365556, 48.428611),4326) as geom&srs=4326

Some non-GeoJSON properties are included in the JSON:

forStore Is an object that describes the schema of the result set.

forGrid As above, but with column headings for use the a Extjs grid.

success True or false

message If above is false this will contain the error message.

For use in cross domain scripting, you can "pad" the JSON response with a function (This is know as JSONP): 

/api/v1/sql/naturalearth?q=SELECT * FROM public.ne_50m_lakes&jsonp_callback=myfunction

Insert, update and delete

When doing inserts, updates and deletes you must use your API key.

/api/v1/sql/naturalearth?q=DELETE FROM public.ne_50m_lakes&key=mykey

affected_rows in the JSON response shows how many rows where affected by the query.

You find your API key in GeoCloud administation (The 'Authentication' button).

The SQL bulk API

Coming soon...


GIS Support

Browse and edit your data from other applications. All layers are available instantly through the WMS og WFS services. Browse your layers in any GIS desktop application that supports WMS. Get the actual data in your desktop GIS application by using the WFS service. You can even make edits through the WFS-T service. Take a look at this video showing how to use QGIS to browse and edit data in a GeoCloud.



Elasticsearch provides a distributed, multitenant-capable full-text search engine with a RESTful web interface and schema-free JSON documents. It not only great for search, but also for extracting value out of all the data that businesses are collecting.

In GC2 we’ve made an API for 1) exposing the Elasticsearch API in a secure manner and 2) getting data from PostGIS to Elasticsearch in a very simple way. It’s not because it’s hard to get data into Elasticsearch in the first place. That’s done simply by posting JSON to its API. The challenge is to get data from PostGIS formatted to GeoJSON and then piped to Elasticsearch in one easy step.

With GC2 all you have to do is selecting a layer in the GC2 Admin and click the “Index in Elasticsearch” button. GC2 will first map the table schema to an Elasticsearch type and then pipe the tabular data as GeoJSON to Elasticsearch.

To hold data synchronized between PostGIS and Elasticsearch you can start a daemon that listens to INSERT, UPDATE and DELETE statements on the database. Technically, there will be installed a trigger on the table when it is indexed in Elasticsearch. The trigger uses NOTIFY/LISETN to send messages to the daemon, which ensures the transfer of the modified data to Elasticsearch. It all happens asynchronously, so database transactions are not affected by the system.


Dive into access stats

You can explore, visualize and discover access log data on your GC2 server with the slick Kibana application.

From the dashboard of GC2 You can directly access key-parameters, like count of tile downloads and OWS requests for each schema.

From the Kibana web application you can easily create bar charts, line and scatter plots, histograms, pie charts, and maps to gain insight into all the access log data from your GC2 server.

The stat system needs some additional instalment of software on the GC2 server. We’ve created Docker images with the necessary software, so you can get started as easy and quickly as possible. Head over to Docker Hub or get in touch for help or advice.


Content Delivery Network

GeoCloud is using a so-called Content Delivering Network or CDN, which is a large distributed system of servers deployed in multiple data centers across the Internet. The CDN offload the traffic served directly from our origin infrastructure and this allows our users to scale their solutions to potentially millions of end-users. The CDN sits in front of the tile cache server installed on our origin infrastructure. When a request for a tile image is sent from a client application, it will be routed to the nearest edge location in the CDN, which will cache the tile.

Read more about the use of the CDN in this blog post.


Open Source

MapCentia is a big supporter of open source software. GeoCloud is built on top of open projects like PostgreSQL, PostGIS, MapServer, GDAL, TileCache, PHP, Python, etc. The source code for GeoCloud available on Github.

MapCentia ApS
Flintevej 35
DK-9000 Aalborg, Denmark
Phone : +45 26277810
CVR: 35379193

© 2020 MapCentia ApS

Contact us