In ArcGIS, a route can be any line feature,—such as a street, highway, river, or pipe—that contains a unique identifier and a system of measurement. For linear referencing, typical measurement systems are distance or time, but the measurement system can be anything you want. M-values, also known as measures, are stored in the m-coordinate of each vertex on a route feature.
You can store routes in both shapefiles and as a feature class in the geodatabase. Geodatabases are the preferred method for storing and managing routes as they support advanced capabilities, (such as topologies, networks, attribute rules, or subtypes), which allow you to model real world behaviors, apply rules for managing and maintaining data integrity, and use tools for working with spatial relationships of the core features and attributes. ArcGIS Pro and the Linear Referencing toolbox contain tools for creating routes in shapefiles and geodatabases.
In addition to tools used to create new route feature classes for subsequent digitizing or importing, there are tools for creating routes by merging existing line features, calibrating route data with points, and migrating route data from one format to another.
About creating route feature classes
You can create routes from existing lines, import them from other formats, or create them as a new route feature class in ArcGIS Pro. To enable routes to store m (measure)-values, you can create a route feature class in the Catalog pane. When creating a route feature class, you must do the following:
- Define the feature class type as line and indicate that it will include m (measure)-values.
- You also need to add a route identifier field to uniquely identify each route in the feature class. This field can be numeric, text, or guid.
When you perform linear referencing operations in ArcGIS Pro, you will select a field in your route feature class layer that will supply this unique identifier. The value in each field is used to locate events on the line feature. First, the route ID matches a feature, and next, events are located along route features using measures in the event table.
Defining the measure properties of your m-coordinates
To create a route feature class, use the Create Feature Class wizard.
From the Create Feature Class dialog box, on the Define page, specify that the feature class has m-coordinates by checking the M Values box.
On the Tolerance page, shown below, set the m-tolerance or accept the default value. The m-tolerance defines the tolerance for clustering m-values during processing. Its default value is 0.001 units. If coordinates are coincident and their m-values are within this tolerance, they will be set equal to one another.
For almost all cases, it is recommended to accept the default m-tolerance. However, if your measure values are small (within 0.001 units) and you want to ensure that measures do not cluster, you can specify your own m-tolerance.
If you make changes to the x,y, or m-tolerances and want to revert back to the default value, click the Reset To Default button.
From the Resolution page, uncheck the Accept default resolution and domain extent check box if you want to change the m-resolution. You can also set the m-resolution and the m-range.
M Resolution defines the resolution of your m-values. Its default value is 0.0001 units, which is the default m-tolerance divided by 10. In this case, m-values store accuracy to four decimal places. If your m-measure represents something using very small incremental values with multiple decimal places, you may want to set your own m-resolution. For example, an m-resolution of 0.000001 stores m-values with accuracy to six decimal places.
The m-resolution and the m-domain extent (Min and Max) are directly related to each other. Changing the m-resolution causes the maximum m-values to recalculate to the largest value allowed based on the resolution. You can also set the range of m-values by setting the lowest (Min) value and the highest (Max) value. The m-resolution recalculates to the finest resolution possible based on the minimum and maximum m-values entered.
See Create a feature class to store routes for the complete list of steps to create a stand-alone feature class for storing routes.