Skip To Content ArcGIS for Developers Sign In Dashboard

ArcGIS Runtime SDK for Qt

Raster layer (GeoPackage)

Sample Viewer View Sample on GitHub

Display a raster contained in a GeoPackage.

Use case

GeoPackages are designed to simplify file management and transfer. They can store raster files (as well as other types of data). An end-user wishing to transfer rasters from ArcGIS Pro or between runtime apps, might need to import raster files from GeoPackages into their map to view and analyze the data.

How to use the sample

When the sample starts, a raster will be loaded from a GeoPackage and displayed in the map view.

How it works

  1. Create and load a GeoPackage, specifying the path to the local .gpkg file.
  2. When it is done loading, get the GeoPackageRasters from the geopackage.
  3. Construct a RasterLayer with the geopackage raster you want to use.
  4. Add the raster layer to the map.

Relevant API

  • GeoPackage
  • GeoPackageRaster
  • RasterLayer

Offline Data

Read more about how to set up the sample's offline data here.

Link Local Location
Aurora, Colorado GeoPackage <userhome>/ArcGIS/Runtime/Data/gpkg/AuroraCO.gpkg

About the data

The Aurora Colorado GeoPackage holds datasets that cover Aurora, Colorado. The raster that is opened and displayed shows airport noise levels.

Tags

container, data, image, import, layer, OGC, package, raster, visualization

Sample Code

import QtQuick 2.6
import Esri.ArcGISRuntime 100.9
import Esri.ArcGISExtras 1.1

Rectangle {
    id: rootRectangle
    clip: true
    width: 800
    height: 600

    readonly property string dataPath: System.userHomePath + "/ArcGIS/Runtime/Data/gpkg/"

    MapView {
        id: mapView
        anchors.fill: parent

        Map {
            id: map
            BasemapLightGrayCanvas {}

            // Load the GeoPackage once the Map loads
            onLoadStatusChanged: {
                if (loadStatus === Enums.LoadStatusLoaded)
                    gpkg.load();
            }

            // set an initial viewpoint
            ViewpointCenter {
                Point {
                    y: 39.7294
                    x: -104.8319
                    spatialReference: SpatialReference { wkid: 4326 }
                }
                targetScale: 200000
            }
        }
    }

    // Declare a GeoPackage
    GeoPackage {
        id: gpkg
        path: dataPath + "AuroraCO.gpkg"

        // Wait for the GeoPackage to load successfully
        onLoadStatusChanged: {
            if (loadStatus !== Enums.LoadStatusLoaded)
                return;

            if (!gpkg.geoPackageRasters.length > 0)
                return;

            // Get the first raster
            const gpkgRaster = gpkg.geoPackageRasters[0];
            // Create a RasterLayer with the raster
            const rasterLayer = ArcGISRuntimeEnvironment.createObject("RasterLayer", {raster: gpkgRaster});
            // Append the layer to the map
            map.operationalLayers.append(rasterLayer);
        }
    }
}