Skip To Content ArcGIS for Developers Sign In Dashboard

ArcGIS Runtime SDK for .NET

Feature layer (shapefile)

This code sample is available for these platforms:
View Sample on GitHub

Open a shapefile stored on the device and display it as a feature layer with default symbology.


Use case

Shapefiles store location, shape and attributes of geospatial vector data. Shapefiles can be loaded directly into ArcGIS Runtime.

How it works

  1. Create a ShapefileFeatureTable passing in the URL of a shapefile.
  2. Create a FeatureLayer using the shapefile feature table.
  3. Add the layer to the map's operation layers.

Relevant API

  • FeatureLayer
  • ShapefileFeatureTable

Offline data

This sample downloads the following items from ArcGIS Online automatically:

  • - Shapefiles that cover Aurora Colorado: Public art (points), Bike trails (lines), and Subdivisions (polygons).


Layers, shapefile, shp, vector

Sample Code

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns=""
    <esriUI:MapView x:Name="MyMapView"/>
// 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:
// 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.

using System;
using ArcGISRuntime.Samples.Managers;
using Esri.ArcGISRuntime.Data;
using Esri.ArcGISRuntime.Mapping;
using Xamarin.Forms;

namespace ArcGISRuntime.Samples.FeatureLayerShapefile
        "Feature layer (shapefile)",
        "This sample demonstrates how to open a shapefile stored on the device and display it as a feature layer with default symbology.",
        "The shapefile will be downloaded from an ArcGIS Online portal automatically."
    public partial class FeatureLayerShapefile : ContentPage
        public FeatureLayerShapefile()

            // Open a shapefile stored locally and add it to the map as a feature layer

        private async void Initialize()
            // Create a new map to display in the map view with a streets basemap
            MyMapView.Map = new Map(Basemap.CreateStreets());

            // Get the path to the downloaded shapefile
            string filepath = GetShapefilePath();

                // Open the shapefile
                ShapefileFeatureTable myShapefile = await ShapefileFeatureTable.OpenAsync(filepath);

                // Create a feature layer to display the shapefile
                FeatureLayer newFeatureLayer = new FeatureLayer(myShapefile);

                // Add the feature layer to the map

                // Zoom the map to the extent of the shapefile
                await MyMapView.SetViewpointGeometryAsync(newFeatureLayer.FullExtent, 50);
            catch (Exception e)
                await Application.Current.MainPage.DisplayAlert("Error", e.ToString(), "OK");

        private static string GetShapefilePath()
            return DataManager.GetDataFolder("d98b3e5293834c5f852f13c569930caa", "Public_Art.shp");