A GeoPackage is an OGC standard, making it useful when your project requires an open source data format or when other, non-ArcGIS systems may be creating the data. Accessing data from a local GeoPackage is useful when working in an environment that has an inconsistent internet connection or that does not have an internet connection at all. For example, a department of transportation field worker might source map data from a GeoPackage when conducting signage inspections in rural areas with poor network coverage.
How to use the sample
Pan and zoom around the map. View the data loaded from the geopackage.
How it works
Create a GeoPackage by passing the URL string to the .gpkg file.
Load the GeoPackage with GeoPackage.load
When it's done loading, get the GeoPackageFeatureTable objects from the geopackage with geoPackage.geoPackageFeatureTables
Create a FeatureLayer for each feature table and add it to the map as an operational layer. Add each to
the map as an operational layer with map.operationalLayers.append(featureLayer)
Relevant API
FeatureLayer
GeoPackage
GeoPackageFeatureTable
Map
Offline data
Read more about how to set up the sample's offline data here.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
// [WriteFile Name=FeatureLayer_GeoPackage, Category=Features]// [Legal]// Copyright 2017 Esri.// Licensed under the Apache License, Version 2.0 (the "License");// you may not use this file except in compliance with the License.// You may obtain a copy of the License at// http://www.apache.org/licenses/LICENSE-2.0// Unless required by applicable law or agreed to in writing, software// distributed under the License is distributed on an "AS IS" BASIS,// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.// See the License for the specific language governing permissions and// limitations under the License.// [Legal]import QtQuick
import Esri.ArcGISRuntime
import Esri.ArcGISExtras
Rectangle {
id: rootRectangleclip: truewidth: 800height: 600 readonly property url dataPath: {
Qt.platform.os === "ios" ?
System.writableLocationUrl(System.StandardPathsDocumentsLocation) + "/ArcGIS/Runtime/Data/gpkg/" :
System.writableLocationUrl(System.StandardPathsHomeLocation) + "/ArcGIS/Runtime/Data/gpkg/";
}
MapView {
id: mapViewanchors.fill: parentComponent.onCompleted: {
// Set the focus on MapView to initially enable keyboard navigation forceActiveFocus();
}
Map {
id: mapBasemap {
initStyle: Enums.BasemapStyleArcGISLightGray
}
// Load the GeoPackage once the Map loadsonLoadStatusChanged: {
if (loadStatus === Enums.LoadStatusLoaded)
gpkg.load();
}
// set an initial viewpointViewpointCenter {
Point {
y: 39.7294x: -104.8319spatialReference: Factory.SpatialReference.createWgs84()
}
targetScale: 200000 }
}
}
// Declare a GeoPackageGeoPackage {
id: gpkgpath: dataPath + "AuroraCO.gpkg"// Wait for the GeoPackage to load successfullyonLoadStatusChanged: {
if (loadStatus !== Enums.LoadStatusLoaded)
return;
if (!gpkg.geoPackageFeatureTables.length > 0)
return;
// Get the first feature tableconst gpkgFeatureTable = gpkg.geoPackageFeatureTables[0];
// Create a FeatureLayer with the tableconst featureLayer = ArcGISRuntimeEnvironment.createObject("FeatureLayer", {featureTable: gpkgFeatureTable});
// Append the layer to the map map.operationalLayers.append(featureLayer);
}
}
}