A platform for building spatial data infrastructure and deploying browser based GIS.

The Platform

GC2 – makes it easy to deploy PostGIS, MapServer, QGIS Server, MapCache, Elasticsearch, GDAL/ogr2ogr. And offers an easy-to-use browser application to configure the software stack.

Manage your team

User roles, versioning af data and workflow management. Get full control of creation and editing of data.

Learn more

Import your spatial data

Drag and drop uploading/importing of vector, raster and imagery files. Common formats are supported.

Learn more

Style your maps

Let the Class Wizard help you create style classes for your tiles or dive into the advanced settings of MapServer.

Learn more

Manage your database

Manage your PostGIS database in the browser. Add, drop and rename columns. Or create new tables from scratch.

Learn more

Edit your data online

You can edit your data online in a browser. Both geometry and attributes.

Learn more

GIS support

You can browse and edit your data from any GIS application, which supports the WMS and WFS-T standard.

Learn more

Spatial SQL API

You can run any select, insert, update or delete SQL query from your own pages, apps or terminal.

Learn more


Pipe data from PostGIS to Elasticsearch for realtime search and analytics.

Learn more

Open source

GeoCloud is an open source project. Fork it on GitHub.

Learn more


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.


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.


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