Feature layer (feature service)

View inJavaKotlin
View on GitHub
Sample viewer app

Show features from an online feature service.

Image of feature layer feature service

Use case

Feature services are useful for sharing vector GIS data with clients so that individual features can be queried, displayed, and edited.

How to use the sample

Run the sample and view the feature service as an operational layer on top of the basemap. Zoom and pan around the map to see the features in greater detail.

How it works

  1. Create a ServiceFeatureTable from a URL.
  2. Create a feature layer from the service feature table with FeatureLayer(serviceFeatureTable).
  3. Add the feature layer to your ArcGISMap using map.operationalLayers.add(FeatureLayer).

Relevant API

  • ArcGISMap
  • BasemapStyle
  • FeatureLayer
  • MapView
  • ServiceFeatureTable

Tags

feature table, layer, layers, service

Sample Code

MainActivity.kt
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
78
79
80
81
82
83
84
85
86
/* Copyright 2020 ESRI
 *
 * All rights reserved under the copyright laws of the United States
 * and applicable international laws, treaties, and conventions.
 *
 * You may freely redistribute and use this sample code, with or
 * without modification, provided you include the original copyright
 * notice and use restrictions.
 *
 * See the Sample code usage restrictions document for further information.
 *
 */
package com.esri.arcgisruntime.sample.featurelayerfeatureservice

import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import com.esri.arcgisruntime.ArcGISRuntimeEnvironment
import com.esri.arcgisruntime.data.ServiceFeatureTable
import com.esri.arcgisruntime.geometry.Point
import com.esri.arcgisruntime.geometry.SpatialReferences
import com.esri.arcgisruntime.layers.FeatureLayer
import com.esri.arcgisruntime.mapping.ArcGISMap
import com.esri.arcgisruntime.mapping.BasemapStyle
import com.esri.arcgisruntime.mapping.Viewpoint
import com.esri.arcgisruntime.mapping.view.MapView
import com.esri.arcgisruntime.sample.featurelayerfeatureservice.databinding.ActivityMainBinding

class MainActivity : AppCompatActivity() {

  private val activityMainBinding by lazy {
    ActivityMainBinding.inflate(layoutInflater)
  }

  private val mapView: MapView by lazy {
    activityMainBinding.mapView
  }

  override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(activityMainBinding.root)

    // authentication with an API key or named user is required to access basemaps and other
    // location services
    ArcGISRuntimeEnvironment.setApiKey(BuildConfig.API_KEY)

    // create the service feature table
    val serviceFeatureTable = ServiceFeatureTable(resources.getString(R.string.sample_service_url))
    // create the feature layer using the service feature table
    val featureLayer = FeatureLayer(serviceFeatureTable)

    // create a map with the terrain with labels basemap
    ArcGISMap(BasemapStyle.ARCGIS_TERRAIN).let { map ->

      // add the feature layer to the map
      map.operationalLayers.add(featureLayer)

      // set the map to be displayed in the map view
      mapView.map = map
      // set an initial viewpoint
      mapView.setViewpoint(
        Viewpoint(
          Point(
            -13176752.0,
            4090404.0,
            SpatialReferences.getWebMercator()
          ), 500000.0
        )
      )
    }
  }

  override fun onPause() {
    mapView.pause()
    super.onPause()
  }

  override fun onResume() {
    super.onResume()
    mapView.resume()
  }

  override fun onDestroy() {
    mapView.dispose()
    super.onDestroy()
  }
}

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