Extending Kano capabilities

In a previous article we introduced the latest version of Kano, a powerful geospatial visualizer. In this article, we introduce additional services that can be deployed to enhance Kano capabilities.

Luc Claustres
4 min readSep 3, 2024

Introduction

We previously gave an overview of our ecosystem, the subject of this article is to focus on a specific set of “low-level” microservices running under-the-hood to provide some of the capabilities available in the Kano web application, namely:

  • geocoding,
  • elevation profile computation,
  • image capture,
  • interoperability with third-party GIS software.

However, all of these services can also be used out of the scope of Kano as they offer a standard API to be integrated in thrid-party softwares.

Geocoding

Forward geocoding is the operation of generating a location (i.e. geographical coordinates) from a meaningful description of the location such as an address or the name of a place. The resulting locations are output as geographic features with attributes, which can be used for mapping or spatial analysis. The process of doing the opposite, i.e. translating a location on the map into a human-readable description such as an address, is known as reverse geocoding.

The Kalisio Geokoder is a service that let you perform forward and reverse geocoding in various data sources exposed by what is called a provider. The following providers are currently supported:

  • Kano to expose Kano catalog layers as sources,
  • NodeGeocoder to expose node-geocoder providers as sources,
  • MBTiles to expose layers from MBTiles files as sources.

At the present time Kano relies on the Geokoder to search for an address or a feature name in the location toolbar. In the following example, each matching element from available sources is displayed as an address or a feature in the results list:

Results of the Geokoder service tagged by source with location preview in the Kano search toolbar

Of course, you can directly request the service to get similar results and process it in your application or service to fulfill your own needs. Indeed, with geocoded addresses or points of interest, you can spatially display the corresponding locations and recognize patterns within the information. Here is a forward geocoding request, which response is an array of GeoJson features matching the input pattern:

https://geokoder.domain.com/forward?q=carcassonne

Reverse geocoding is not yet used in the Kano GUI but you can request the service API to fulfill your own needs. Here is a typical request, which response is an array of GeoJson features matching the input location:

https://geokoder.domain.com/reverse?lat=48.7945965&lon=2.2719145

Elevation profile

K2 is a service that let you compute the elevation of the terrain under a linear geographical element (i.e. a path/trajectory) based on

  • a set of elevation data in GeoTIFF format,
  • a requested corridor width along the line,
  • a target resolution for the computation.
The computed elevation profile for a linear feature, the y-axis shows elevation while the x-axis displays the distance covered from the start, moving the mouse in the graph shows the corresponding location on the map

For instance, a POST request to https://k2.domain.com/elevation with the following body

will result in the following response:

Image capture

When it comes to geographical data visualisation, an essential feature is the ability to print maps. Very often it is implemented using a completely different stack than the visualisation itself, e.g. MapFish Print based on the report oriented toolkit JasperReports, leading to a more complex system and difficulties to get coherency between visualisation preview and print results. In order to avoid these pittfalls, kapture is a lightweight service that relies on a WYSIWYG approach by letting you take configurable screenshots of Kano instead.

For instance, a POST request to https://kapture.domain.com/capture with the following body:

will result in the following response:

The result of a Kano capture using the kapture service with a selected background layer and a provided user input as an overlay layer.

Kano provides you with a built-in GUI to customize the request to the capture service, notably the target image size/format, the footer/header text, additional components to be displayed such as the legend or compass :

Kano image capture built-in GUI.

The time range for time-based data can also be defined, which will typically result in a multipage PDF illustrating a single time step (as configured in the application) on each page.

Interoperability

The Kalisio Features Service (KFS) is a lightweight service that let you distribute geospatial data from applications developed using the Kalisio Development Kit like Kano through the OGC API Features standard (a.k.a. WFS v3).

Each service-based layer from Kano will generate two or one feature collection(s) depending if probes are used or not.

Data layers coming from the Kano catalog displayed in a QGIS project using KFS

The following requests will let you retrieve all what you usually need but most GIS software can automatically connect to this kind of service out-of-the-box without configuring anything but the base URL:

We hope that you now may enjoy our powerful geospatial visualizer Kano even more !

If you liked this article feel free to have a look at our Open Source solutions and enjoy some of our other articles, the Kalisio team !

--

--

Luc Claustres
Luc Claustres

Written by Luc Claustres

Digital Craftsman, Co-Founder of Kalisio, Ph.D. in Computer Science, Guitarist, Climber, Runner, Reader, Lover, Father

No responses yet