In ArcMap there are apparently tools for stationing lines. See here: Adding linear events by station measures—Help | ArcGIS Desktop
Is there a similar process for ArcGIS Pro? I have figured out a bit of a workaround that gets me close by using $measure with the symbol property connection enabled for the route. But it doesn't give true "stationing" in the format of 4+03.12 for instance. It displays 403.12 instead. Is there a way to get true stationing in ArcGIS Pro?
Cheers,
Justin
Solved! Go to Solution.
A quick tour of ArcGIS Roads and Highways—ArcGIS Pro | Documentation
is in Production Mapping
A quick tour of ArcGIS Roads and Highways—ArcGIS Pro | Documentation
is in Production Mapping
I know this can be done with the ArcGIS Enterprise Roads and Highways available via the Location Referencing extension with the workflow listed here but I'm not seeing a similar page for ArcGIS Pro. I'd recommend tagging this post to the Roads and Highways Esri Community page. Perhaps folks in that group may know more.
Marketing wise, calling it "Roads and Highways" leaves out about 3/4 of the community that uses linear tools. Pipelines, electric lines, water lines, sewer lines, all the other linear projects out there that need the tools and they just call it "Roads and Highways".
Justin - there is another product, ArcGIS Utility Network, that focuses on the types of networks you mentioned. You can learn more about this product and it's capabilities here.
To all those that are following and looking for a good answer that doesn't require purchasing additional extensions or products to display stationing. I came up with the following arcade syntax to label stationing on routes.
var Station = $measure+25950
//$measure gets the length from the route feature
//If start station is not zero, start station should
//be added to the $measure to set the start station.
var ModStation = Station%100
//ModStation returns the remainder after
//dividing by 100
var Start = Text((Station-ModStation)/100,"##.##")
//Start gets the value before the + sign
IF(ModStation == 0){
var End = "00"
} ELSE {
var End = Text(ModStation, '##')
}
//The function above is required to display 00 if
//the remainder is 0. Otherwise would only display
//a single 0 at 100 foot intervals
var labelStation =""
labelStation = start + '+' + end
//This assembles the Start and End text into station
return labelStation
Thanks for sharing this tip! I just used it on a map that I'm working on and it totally worked!
Dang I wish I understood how Expressions worked and what all the various symbols mean!
I just want to say thanks for sharing this...I have a lot of training to do before I can use it!😋
Hey Justin,
This is an old thread, but have you continued to use this script? If so where do you apply this expression? Can you explain the process of using this?
Hi William,
Yes, I use this all the time. There are some quirks to using it.
1. You must have an M-enabled route. So if you have a regular polyline that is not M-enabled, you 1st need to create an M-enabled polyline feature class and copy that line into it. I usually trace the line in the new feature class. That only gets you half-way there though. Once you have the M-enabled line, you need to create a route from it using the Analysis >Create Routes tool. The M-enabled line needs an identifier field as an attribute. I use "Name" for the tool to work. You need to include where you want the measurements to be from in the tool and what units to use.
2. Once you have the route created, create a marker layer by going to Symbology > Properties.
3. Click the 3 lines in the top right of the Symbology window and select "Allow symbol property connections".
4. A little database symbol will appear next to "Text string". Click that icon.
5. Click the little Expression Builder icon on the right side of the pop-up.
6. Paste the script in that area and edit the expression as needed and hit enter.
7. Select the marker layer with the text element from the "Element" dropdown (it is the sideways number 1).
8. For marker placement, use "At Measured Intervals" and select the interval you want.
If it helps, I posted a video on YouTube showing my method and here is the link. https://youtu.be/sDx7J_wNw0Y
Cheers,
Justin Johnston
Big Pine Consultants LLC