A How-To Guide For GIS Application Development

Paweł Hersztowski

Paweł Hersztowski

Head of Studio

You may not have heard of them, but you’ve probably used GIS apps numerous times. These apps have a very specific purpose, in that they focus on geographica functionality and as such, GIS application development can look a little different from the normal process.

 

Furthermore, from satellite images to advanced machine learning potential, the scope and scale of GIS technology is indeed staggering. Here, we want to introduce you to these applications, as well as what additional tools we need to use and how this impacts the overall project.

 

What Is A GIS App?

 

GIS stands for Geographic Information System - technology for collecting, editing, transforming, analyzing and displaying spatial data - and GIS apps refer to software built around this core technology.

 

These applications, which can be web, computer or mobile based, often use maps or other spatial representations to overlay or assess data with a geographical factor. As such, their core functionality often differs from traditional applications.

 

However, it’s perhaps better to say that there are two factors for GIS - the technologies that collect the data and the tools that format and analyse them. To have a useful GIS system, you need both.

 

  • For data sources, there are numerous official sources available. This can include anything from cartography records to satellite imagery. GIS is able to take all of this and accurately format scale with the second part. 

    • On this note, however, it’s also very easy to add your own data to a GIS system. We don’t expect you to have your own satellites, but visual maps, survey data and more can also be imported. With mobile devices, GPS coordinates further expand these possibilities (so you can see why we like to talk about it!)

 

  • Of course, once you have the data, you need a GIS system to format and collect it. Like any data source, you need to extract, transform and load it into a compatible format. GIS does this in a way that, as we’ll explain shortly, ensures complete consistency and accuracy of scale - which in turn means further calculations, such as distance, remain accurate.

    • We can then use this data to build countless possibilities. We can create reports, produce real-time location tracking or even utilise the mapping techniques with machine learning for powerful analytical insights.

 

GIS Mapping

 

It’s well known that airplanes don’t fly in a straight line, as they use the curvature of the earth to their advantage. GIS applications play a role here.

 

A world map can show either the correct sizes of countries or their correct shapes, but it can’t do both. GIS takes data from maps that were made using different projections and combines them so all the information can be displayed using one common approach.

 

This is because mapping has long been a challenge - something that GIS application development solves as feasibly as possible - due to the 3D curved nature of the earth. More specifically, how we typically try to represent this 3D data on 2D maps. For this, there are two factors: scale and projection.

 

For the former, GIS focuses on keeping the scale as correct as possible; specifically, this is the relationship between the map’s distance and the real distance of the earth itself.

 

As for projections, most maps can either display a flat view, or they can represent the curvature correctly. This stretching and skewing inevitably has issues in certain uses. For the likes of Uber, which only focuses on roads and streets of a given area, this isn’t a problem, but for international or overseas travel, it is.

 

Height is also an issue. For example, the towers on the Golden Gate Bridge are further apart at the top, due to the curvature of the earth. Needless to say, the scaling in GIS application development can help architects, civil engineers and other industries in keeping track of this information in a way that a simplified ‘2D’ projected map can’t - it also helps them plan new projects in digital twin or machine learning programs. 

 

Putting It All Together

 

GIS must make the information from all the various maps and sources align, so they fit together on the same scale. A scale is the relationship between the distance on a map and the actual distance on Earth. 

 

To put this into context, imagine trying to compare aerial or satellite photography with existing data With GIS, you can use known points of reference and topological data to better understand what the 2D images represent with 3D values. When you add in satellite images, you get the same problem as the Golden Gate bridge - the latter has data that’s more heavily impacted by the earth’s curvature. Up, down, or across a vertical plane… there are similar problems at every vertex.

 

If that wasn’t enough, GIS must manipulate data because different maps have different projections. A projection is the method of transferring information from Earth’s curved surface to a flat piece of paper or computer screen. Different types of projections accomplish this task in different ways, but all result in some distortion. To transfer a curved, three-dimensional shape onto a flat surface inevitably requires stretching some parts and squeezing others. 

 

Finally - and especially when it comes to GIS apps - the data needs to be visually understandable and usable. Human users need to be able to manipulate data layers, add their own data points (with coordinates, street addresses or some other agreed upon ‘language’ for geospatial points) or even use advanced solutions, such as AI, to interpret new understandings or correlations.

 

What’s The Purpose Of A GIS App?

 

Needless to say, GIS applications have a core focus on spatial data, which means that they have numerous uses, ranging from wide-reaching to industry niches.

 

  • Data Capturing and Formatting - To format and utilize data correctly, it all needs to be in the same format. Yet GIS apps can take data from various sources, such as cartographic data, satellite data and more. Because of its focus on scaling, GIS is the best option for combining and utilizing these. Similarly, you may also want to import more data, such as from photographs, where the true-scale nature of GIS will help transpose these as accurately as possible.

 

  • Spatial Relationships - If you want to measure the distance between different points or objects, GIS mapping is essential. By measuring their specific location this way, you get more accurate results as distance is kept relative.

 

  • Mapping - while this seems obvious, it’s important to understand that mapping in this case - interactive mapping, real-time displays or even separation via various layers - is only possible with the above examples. Google Maps and services that use maps, such as Uber, are perfect examples.

 

  • Analysis - GIS allows users to analyse large areas of land, whether horizontally vertically, or both, in as streamlined approach as possible. As much of the calculations are performed in the backend, enabling users to get in-depth results for as little manual effort as possible. 

 

So, with all this in mind, where can you find examples of GIS application development? Well, as we’ve already mentioned, anything that uses a map, such as Uber, likely uses GIS technology. We also covered the aviation industry, but GIS solutions are also found in architects, engineering, surveying, telecoms and more.

 

What’s The GIS Application Development Process?

 

At the start, let’s state that the core tenements of application development still apply here. We still start by choosing our core technologies, such as backend and frontend solutions. What differs, however, is the additional tools and libraries we use to apply these additional GIS functions.

While each GIS application development project is different, there are a number of steps involved in every process:

 

  1. Project Planning. While all apps start with product design, here it’s essential - we need to know what GIS tools we will use to ensure we use suitable technologies throughout. For example, React Native is one of our go-tos because lots of GIS tools are built on JavaScript. If we had chosen to use a Python based option, for instance, we would have to make different choices.

  2. Build the initial app. The core functionalities (log in, view, UI etc) can still be built as normal.

  3. Add your library or map. GIS apps need data, which means you need a database or source of information. It’s worth noting here that many sources are online, called through API, as this gets the most up-to-date information. (Of course, that isn’t true for every app, as real-time changes aren’t always needed). This is where we important our choice of map (or set up the API calling) or import an entire library, like leaflet.js. Depending on your choices, you may need to use wrappers to ensure compatibility or otherwise get the desired level of performance.

  4. Create Map Components. Once we have all of the tools and data available, we need to create a map component. This will vary based on the chosen set-up, but we need to determine which region or area we are showing - this can include an initial position and scale.

  5. Add objects, overlays and layers. With a working map, we can now include the information we want to include. For example, for an app like Uber, we want to import the position of the vehicles and display them on the map in real-time. Thanks to GIS, this can then be scaled against the user’s device for the most accurate distance. Depending on your app, there may be many different layers and views. Google Maps web client, for example, tracks initial streets and overlays building data, public transport, commercial information etc on top.

  6. Repeat and Refine. Depending on the scale of your app, you may need to go the last two steps as many times as needed to add all the required functionality.

  7. Et Voila! And that’s really it. After this, we still go through the typical app development process of testing and releasing.

 

 

On that note, it’s also worth adding that, if you’re creating a very specific application and want to ensure the data is represented right, it may be worth creating a prototype or proof of concept first, in order to fully test the feasibility. In these cases, the process would be very similar, but only focuses on the first 4 or 5 steps, in regards to the specific functionality concerned.

 

GIS Application Development Tools

 

As we’ve just mentioned, GIS application development requires specific GIS tools, alongside traditional app development measures. Fortunately, there are a broad range of options to choose from, including:

 

  • Web AppBuilder for ArcGIS - tailored towards web apps, this tool focuses on the ability to access and manipulate layers, as well as widgets to better tailor your final application.

 

  • Leaflet.js - This is a custom, open-source library for creating maps. Aside from using JavaScript, which already makes it highly useful in most application projects, the API is easy to use and, since it launched in 2012, it’s continued to have a large community to offer constant support.

 

  • Turf.js - This is a similar JavaScript library. It can be used to perform geospatial functions, such as calculating distances or preparing heatmaps. As such, there are many projects which can greatly benefit from the streamlined nature of Turf.js.

 

  • OpenStreetMap (and Overpass-Turbo) - This is one of the largest sources of map data available. It’s open source, which ensures its contributors are regularly adding to each “weekly planet file”. It’s quite substantial - at 40 GB plus! - but it includes data on buildings, roads, natural features and more. We also recommend using it with Overpass-Turbo, which is an interactive site for performing queries on OpenStreetMap’s database.

 

  • OpenLayers - Another open-source JavaScript library, OpenLayers is pretty straight forward. It helps us easily put a map into our applications, as well as add layers and import data from numerous sources.

 

Tl;DR - GIS Application Development

 

GIS applications serve a wide range of purposes but, in short, if the core functionality of your product or service requires geographical spatial data (and not just mapping), GIS technology can help a lot! From finding the nearest taxi to planning civil engineering projects, GIS tools and libraries let us create the most versatile and functional apps for these purposes.

Easter egg ;)