Skip To Content ArcGIS for Developers Sign In Dashboard

ArcGIS Runtime SDK for Qt

Map loaded

Sample Viewer View Sample on GitHub

Determine the map's load status which can be: NotLoaded, FailedToLoad, Loading, Loaded, Unknown.

Use case

Knowing the map's load state may be required before subsequent actions can be executed.

How to use the sample

Click on the button to reload the Map. The load status of the Map will be displayed on screen.

How it works

  1. Create a Map and add it to a MapView.
  2. Connect to the Map's onloadStatusChanged signal to query the map's load status. The loadStatus is Enums.LoadStatusLoaded when any of the following criteria are met:
  • The map has a valid spatial reference.
  • The map has an an initial viewpoint.
  • One of the map's predefined layers has been created.

Relevant API

  • Map
  • LoadStatusChanged
  • MapView

Tags

LoadStatus, Map, Loadable pattern

Sample Code

import QtQuick 2.6
import Esri.ArcGISRuntime 100.9

Rectangle {
    width: 800
    height: 600
    
    property string statusText

    // Create MapView that contains a Map
    MapView {
        anchors {
            left: parent.left
            right: parent.right
            top: parent.top
            bottom: statusBar.top
        }

        Map {
            // Set the initial basemap to Streets
            BasemapStreets {}

            // Set up signal handler to determine load status
            // Load status should be loaded once the basemap successfully loads
            onLoadStatusChanged: {
                switch (loadStatus) {
                case Enums.LoadStatusFailedToLoad:
                    statusText = "Failed to Load";
                    break;
                case Enums.LoadStatusLoaded:
                    statusText = "Loaded";
                    break;
                case Enums.LoadStatusLoading:
                    statusText = "Loading...";
                    break;
                case Enums.LoadStatusNotLoaded:
                    statusText = "Not Loaded";
                    break;
                case Enums.LoadStatusUnknown:
                    statusText = "Unknown";
                    break;
                default:
                    statusText = "Unknown";
                    break;
                }
            }
        }
    }

    Rectangle {
        id: statusBar
        anchors {
            left: parent.left
            right: parent.right
            bottom: parent.bottom
        }
        height: 30
        color: "lightgrey"
        border {
            width: 0.5
            color: "black"
        }

        Text {
            anchors {
                verticalCenter: parent.verticalCenter
                left: parent.left
                leftMargin: 10
            }
            text: "Map Load Status: %1".arg(statusText)
            font.pixelSize: 14
        }
    }
}