GIS software development 101, the essentials

GIS software development 101, the essentials

Geographic information system applications are designed for gathering and managing geographic information. GIS applications have revolutionized how information – geographic, attribute, spatial relationships, and more – is captured, stored, analyzed, and displayed.

The global GIS market is estimated to generate $14.8 billion by 2024 and outmatch $31.2 billion by 2030.

GIS innovation is the critical aspect behind growth that introduces custom software that meets specific needs. GIS programming, however, presents complex challenges that require domain-specific understanding of tools, modern technologies, and industry best practices.

In this brief overview, we’ll dive deeper into GIS software development fundamentals, in particular:

  • Data storage
  • Custom map tile servers
  • And map display technologies
Engage professionals
to assist you with GIS and mapping software
Contact us

GIS software: data storage

Geospatial information includes details about coordinates, specific addresses, and more complex structures. It’s utilized for mapping and cartography, urban planning, resource management, transportation, logistics, location-based services, and across other domains.

To be sufficiently queried for efficient GIS software, geospatial information must be appropriately stored.

Geospatial databases are the most essential component within geographic information system technologies. These handle data storage and querying, as well as analyzing.

The right data storage is essential as of several reasons:

  • Data querying and retrieval
  • Data indexing and organization
  • Greater scalability to support geospatial applications
  • Successful integration with already implemented systems
  • Better performance
  • Regulatory compliance

PostGIS

PostGIS, open-source software program, is an PostgreSQL extension adding support for storing and querying geospatial data, which supports:

  • Geometry data that represents geometric shapes and structures in a Euclidean (flat) coordinate system
  • Geography data that represents geographic data, typically using longitude and latitude coordinates

Geometry types are suitable for most spatial data analysis tasks and optimized for so-called planar operations. Geography types are useful for applications that require distance calculations, for example navigation systems, and analyzing spatial relationships over large geographic areas. 

PostGIS supports spatial indexing – in order to find relevant objects, the database will leverage R-tree indexing to catalog multi-dimensional information.

The concept explained briefly:

  • To determine what lines are intersecting with the yellow star (see the illustration below), the database will query which rectangles are intersecting with the appropriate rectangle
  • After figuring two rectangles (in blue and green) are intersecting with the star’s rectangle, the database will run precise calculations to determine whether those lines intersect the star
How spatial indexing works

To illustrate an example, let’s say you need to find all shops within the radius of 5 kilometers in a certain area. You can either write a raw SQL query or leverage object-relational mapping to work with the PostGIS database. 

SELECT * FROM "Shops"

WHERE ST_DWithin(

    ST_Transform(ST_SetSRID(ST_Point(30.5238, 50.4547), 4326), 3857),

    "Shops"."Geometry",

    5000

);

A raw SQL query

var closestShops = await _gisDbContext.Shops

   .Where(shop => myCurrentLocation.IsWithinDistance(shop.Geometry, radiusInMeters))

   .ToListAsync(ct);

C# code to fetch the shops by utilizing the Entity Framework ORM with NetTopologySuite to work with the PostGIS database

To note:

  • You have various tools to visualize PostGIS data (PgAdmin, QGIS)
  • While working with the PostGIS database, you can use existing docker images

What’s more, PostGIS supports numerous formats: GeoJSON, KML, WKT, WKB, GML, SVG.

Another advantage, as part of the PostgreSQL ecosystem, PostGIS allows users creating advanced applications by using other extensions:

  • pgRouting for finding the most optimal routes between points
  • MobilityDB for efficiently handling trajectories of objects that move

SpatialLite

SpatialLite, open-source software program, is an SQLite extension providing vector geodatabase functionality, quite similar to the SQL Server, Oracle Spatial, and PostGIS mentioned earlier.

The benefit of the SpatialLite database is that it’s not based on client-server architecture:

  • The database can run on the devices itself, where the devices acts as both the server and client
  • The database can be also used by smartphones for applications that require offline mode

Abto Software has worked on an Android application alerting when users enter zones defined as dangerous. Our engineers have designed it to fetch required zone information from the server backend when online, retrieving information only about zones relevant for the current location.

We used:

  • SpatialLite to determine whether the user was inside hazard areas even without Internet connection
  • PostGIS to re-fetch relevant zone information when having Internet connection
How the developed application works

Tile38

TIle38 is an open-source geospatial database, spatial index, and real-time geofencing server, which uses:

  • Redis protocol for communication
  • R-trees, B-trees, along with Hash tables to handle spatial indexing

Tile38 is very notable for its geofencing capabilities that create virtual perimeters around real geographic areas. For example, to determine if a certain point lies within a polygon, Tile38 reverses the traditional pull model pushing notifications to a callback endpoint whenever the said point interacts with the polygon.

Josh Baker, the platform’s technical leader, would call Tile38 a geolocation database rather than GIS database. It cannot store enormous data volumes and is most suitable for storing data that is on the move.

Tile38 supports:

  • Static geofences – fixed geofences defined around a specific geographic area
  • Roaming geofences – dynamic geofences defined around moving targets

Here is a command you can set up to receive alerts whenever a bus comes within 200 meters of a bus stop:

NEARBY buses FENCE POINT 49.84406506109752, 24.024313429248632 200

This enables dynamic responses to events – changing routes, sending updates to passengers, or adjusting service schedules based on bus locations.

Another thing, while working with the Tile38 database, you can use existing docker images.

Others

Several databases support spatial data querying, either through native functionality or extensions:

  • MS SQL Server database supports spatial data types since 2008, including geometry and geography
  • Oracle Spatial offers extensive spatial capabilities within the Oracle Database with features to build location-based applications and support for various data formats
  • MongoDB uses 2D and 2DSphere indexes for indexing and queries by leveraging Google S2 for spatial data handling
  • Redis provides geospatial support with its Geo API, thereby allowing efficient storage, data indexing, and querying capabilities including distance calculations 

These databases are different in approaches regarding handling spatial data, from the data types to complexity. The choice of the best-suiting database for your geographic information system software will depend on specific project needs – the scale, the nature of queries, and required performance characteristics.

GIS services extended through artificial intelligence
Read our detailed article
LEARN MORE

GIS solutions: moving further

GIS mapping software development: custom map tile servers

Sometimes, customers are interested in creating dedicated map hosting services, and that’s for a good reason.

But why is this that important when building GIS solutions?

Most typically, you would go for existing public map services, including GoogleMaps, Mapbox, OpenStreetMap. But imagine: a municipal GIS department is responsible for managing and distributing geospatial information – zoning areas, transportation routes, utility networks (water, sewage), and emergency services’ locations.

You need to ensure sensitive information is being securely managed and accessed by selected authorized staff. In this particular situation, self-hosted solutions are preferable.

GeoServer for GIS development

GeoServer is an open-source, Java-based server that caters as a custom map tile server:

  • For the data source, you can choose between vector files, different databases, and servers 
  • For the data display, you can use popular web-based maps (Leaflet, OpenLayers)

GeoServer exposes:

  • WFS (Web Feature Service) returns features that enable geospatial analysis
  • WMS (Web Map Service) provides images 
  • WCS (Web Coverage Service) returns information, including metadata and other data formats

GIS system software development: client-side map display technologies

To display the tiles and the data stored in the geospatial database, you’ll need a JS map library.

Map libraries provision functionality for creating interactive maps and integrating geographic information. These libraries provide features for displaying those maps, adding layers, and enabling user interactions.

Leaflet for GIS development

Leaflet is the leading JavaScript library for mobile-friendly interactive maps, weighting about 42 KB of gzipped JavaScript code and only 4 KB of gzipped CSS code, with all the necessary mapping features.

Leaflet has been designed with simplicity and performance in mind and functions efficiently across every major desktop and mobile platform, utilizing modern browser features while also being accessible on older ones too. Leaflet can be extended with plugins, has an easy-to-use and well-documented API, and a simple, readable source code.

How we can help

Abto Software possesses expertise in collecting, migrating, organizing, and managing geospatial information. Our engineers can cover data capturing, conversion, processing, database design, geo-informational services and modeling, as well as consulting.

Our expertise involves various GIS databases, maps and location services, client libraries, tile servers, and more.

Our services:

Our expertise:

One trend worth considering when approaching GIS software development thoughtfully – artificial intelligence. The scenarios are extensive – data cleansing, remote sensing (image interpretation), semantic segmentation and classification, digital mapping, and more.

To learn more about our technology-driven GIS software development services, explore our detailed overview.

Contact us

Tell your idea, request a quote or ask us a question