Use one of the ArcGIS Maps SDKs for Native Apps to load the mobile map package and build an offline application.

Prerequisites

Setup offline app

In this step, choose the appropriate ArcGIS Maps SDK for Native Apps and set up your development environment.

  1. Install and setup the ArcGIS Maps SDK for .NET on your development machine. Make sure you fulfill the SDK's system requirements.

  2. Go to the Display a map tutorial and download the completed solution to get a starter code for this workflow.
    You do not need to create another API key credential.

  3. Open the .sln file in Visual Studio.

    The Visual Studio solution, project, and the namespace for all classes currently use the name DisplayAMap. Follow the steps below if you prefer the name to reflect the current tutorial. These steps are not required, your code will still work if you keep the original name.

  4. Update the name for the solution and the project.

    • In Visual Studio, in the Solution Explorer, right-click the solution name and choose Rename. Provide the new name for your solution.
    • In the Solution Explorer, right-click the project name and choose Rename. Provide the new name for your project.
  5. Rename the namespace used by classes in the project.

    • In the Solution Explorer, expand the project node.
    • Double-click MapViewModel.cs in the Solution Explorer to open the file.
    • In the MapViewModel class, double-click the namespace name (DisplayAMap) to select it, and then right-click and choose Rename....
    • Provide the new name for the namespace.
    • Click Apply in the Rename: DisplayAMap window that appears in the upper-right of the code window. This will rename the namespace throughout your project.
  6. Build the project.

    • Choose Build > Build solution (or press F6).

Add a mobile map package to the project

Add the mobile map package to your project so the app can load it from a bundled file or a local path.

You will add a mobile map package (MMPK) to your Visual Studio project.

  1. From the Visual Studio Project menu, choose Add > Existing item ....

  2. Navigate to the folder that contains your mobile map package. Change the file type in the dialog to All files (*.*), choose SantaMonicaParcels.mmpk, then click Add to add it to the project.

  3. In the Visual Studio Solution Explorer, select SantaMonicaParcels.mmpk. In the Properties window, set the following properties of the file.

    • Build Action: Content
    • Copy to Output Directory: Copy always

Display map from the mobile map package

Create a function that loads the mobile map package and displays its first map in the map view.

  1. In the Visual Studio > Solution Explorer, double-click MapViewModel.cs to open the file.

  2. Add additional required using statements at the top of the class.

    MapViewModel.cs
    Use dark colors for code blocks
    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
    using System;
    using System.Collections.Generic;
    using System.Text;
    
    using Esri.ArcGISRuntime.Geometry;
    using Esri.ArcGISRuntime.Mapping;
    using System.ComponentModel;
    using System.Runtime.CompilerServices;
    
    using System.Linq;
    using System.Threading.Tasks;
    
  3. In the MapViewModel class, remove all the existing code in the SetupMap() function.

  4. Modify the signature of the SetupMap() function to include the async keyword and to return Task rather than void.

    MapViewModel.cs
    Expand
    Use dark colors for code blocksCopy
    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
            private async Task SetupMap()
            {
    
            }
    
    Expand
  5. (Optional) Modify the call to SetupMap() (in the MapViewModel constructor) to avoid a compilation warning. After changing SetupMap() to an asynchronous method, the following warning appears in the Visual Studio Error List.

    Use dark colors for code blocksCopy
    1
    2
    Because this call is not awaited, execution of the current method continues before the call is
    completed. Consider applying the 'await' operator to the result of the call.

    Because your code does not anticipate a return value from this call, the warning can be ignored. Your code will run despite the warning. But if you want to be more specific about your intentions with this call and to address the warning, add the following code to store the return value in a discard.

    MapViewModel.cs
    Expand
    Use dark colors for code blocksCopy
    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
            public MapViewModel()
            {
    
                _ = SetupMap();
    
            }
    
    Expand
  6. Add the following code to the SetupMap() function. This code defines the path to the mobile map package relative to the app, creates the mobile map package using the MobileMapPackage constructor, loads the mobile map package asynchronously, and adds the first map in the mobile map package to the MapView.

    Expand
    Use dark colors for code blocks
    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
                // Define the path to the mobile map package.
                string pathToMobileMapPackage = System.IO.Path.Combine(Environment.CurrentDirectory, @"SantaMonicaParcels.mmpk");
    
                // Instantiate a new mobile map package.
                MobileMapPackage santaMonicaParcels_MobileMapPackage = new MobileMapPackage(pathToMobileMapPackage);
    
                // Load the mobile map package.
                await santaMonicaParcels_MobileMapPackage.LoadAsync();
    
                // Show the first map in the mobile map package.
                this.Map = santaMonicaParcels_MobileMapPackage.Maps.FirstOrDefault();
    
    Expand
  7. Click Debug > Start Debugging (or press F5 on the keyboard) to run the app.

Congratulations!

You have completed the Create and display a mobile map package how-to. The application uses the ArcGIS Maps SDKs for Native Apps to load and display a mobile map package (.mmpk) created in ArcGIS Pro.

What's next?

To explore additional ArcGIS offline capabilities, go to Tutorials for more how-tos, tutorials, and samples.

Honor mobile map package expiration date

Access the expiration information of an expired mobile map package.


Find route in mobile map package

Display maps and use locators to enable search and routing offline using a mobile map package.


Display scene from mobile scene package

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.