37

What is the difference between a feature class and a feature layer?

To me they seem very similar in concept.

1
  • 2
    Also note that if you're talking about ArcGIS Server, a "feature layer" means something slightly different. Eg see the ArcGIS Server JavaScript API featureLayer reference Commented May 29, 2012 at 22:12

6 Answers 6

32

Vector data can have properties stored at two levels. File level or Layer level.

For feature class (a type of vector data), file level information is stored in a geodatabase. This consists of properties like feature class geometry, attribute table, assigned subtypes and domains, a coordinate system, etc:. All these file level properties make up the actual feature class data.

Feature layers are properties you assign to a feature class to define how it is rendered in a client (read ArcMap). This includes Symbology, Labels, Scale Range, Joins, Relates, Definition Query, 'Data Source to the feature class it renders' and so on. These properties can be stored as layer files on disk or when you look at feature classes in an ArcMap document, they are actually feature layers referencing the feature class.

1
  • 7
    I'd also add that outside of the mapping realm, and in the coding realm, feature layer is often an in-memory representation of the feature data in a feature class (or other data source). Using something like the Make Feature Layer tool (help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//…), you can get a feature layer to work on. That's more of a specific use case though.
    – nicksan
    Commented May 29, 2012 at 18:12
13

These terms specifically relate to the ESRI software and data schemas.

A feature class is a set of common geographic features, for example roads, or parcels, or land use, as they are stored in a geodatabase or shapefile, or other storage format. Here is the help file on Feature Class Basics.

A feature layer is the representation of a feature class after it is loaded into ArcMap. Here are some of the properties to describe a Layer.

It might be better to not just think in terms of feature class or feature layer, but to think just in terms of class or layer. This is because there are more types of classes or layers, than just feature. The other types are:

  • Object Class/Layer - Tabular data with no spatial component
  • Raster Dataset/Layer - Data in a grid format, like aerial photography, Is technically a class as well, but usually referred to as a dataset. digital elevation models, etc.
  • Relationship Class - This type of class defines a one to one, one to many or many to many join between 2 different classes.
9

In simple terms ...

I try to think of a feature class being a spatial dataset, i.e. not much more than x,y coords and attributes on disk, while a layer applies symbology (and many other lesser known properties) to a spatial dataset.

A layer does not store data, just symbology and a link to where the data is located on a disk somewhere.

Feature classes and shapefiles don't store symbology, just x,y coords and attributes, etc

Only when a feature class is added to a map (or is abstracted using Make Feature Layer outside of ArcMap) does it become a layer.

7

what it means as conceptual, you can check out GIS Dictionary from ESRI, here.

Feature Class

In ArcGIS, a collection of geographic features with the same geometry type (such as point, line, or polygon), the same attributes, and the same spatial reference. Feature classes can be stored in geodatabases, shapefiles, coverages, or other data formats. Feature classes allow homogeneous features to be grouped into a single unit for data storage purposes. For example, highways, primary roads, and secondary roads can be grouped into a line feature class named "roads." In a geodatabase, feature classes can also store annotation and dimensions.

Feature Layer

A layer that references a set of feature data. Feature data represents geographic entities as points, lines, and polygons.

1

A Feature Class is a database table with geometries (points, lines or polygons). A Feature Layer is the rendering of a table of geometries, for display on computer screen, or map printout.

Esri invented these terms to describe their database tables (with geometries) and the rendering of them on screen or map. "Spatially Enabling" those databases allows for the query of the databases based on various coordinate systems, and where the geometries fall within them. An Esri Geodatabase is considered to be, therefore, spatially enabled, and contains feature classes that can be loaded into GIS desktops for view, query or map printout.

If you're using Esri software and Geodatabases, the industry standard, then you hear those terms used frequently. If you're using other GIS software and databases, then you can still run across the exact same concepts and features, but not hear them used at all. For example, with QGIS users, you might hear of only a "table" or a "layer", and they would be equivalent to "feature class" or "feature layer"

0

This is ESRI description about feature class based on this comment, Feature Class is NOT a file format! like other file formats in computer such as *.shp, *.exe *.py and etc

"feature class. [ESRI software] In ArcGIS, a collection of geographic features with the same geometry type (such as point, line, or polygon), the same attributes, and the same spatial reference.

Feature classes can be stored in geodatabases, shapefiles, coverages, or other data formats."

Feature classes allow homogeneous features to be grouped into a single unit for data storage purposes. For example, highways, primary roads, and secondary roads can be grouped into a line feature class named "roads." In a geodatabase, feature classes can also store annotation and dimensions.

and what is Feature Layer: [data analysis] A layer that references a set of feature data. Feature data represents geographic entities as points, lines, and polygons

therefore you can't compare feature class with other regular formats in GIS software.

as I already described in above line about feature class, I think feature Layer is ONLY references. references to what? reference to SET OF DATA

Not the answer you're looking for? Browse other questions tagged or ask your own question.