Select to view content in your preferred language

Building Cross Street Data Into Geocoding Locators

2399
6
03-23-2022 11:32 AM
BruceHarold
Esri Regular Contributor
3 6 2,399

Public safety geocoders in particular like to give cross-street names to first responders navigating to street addresses, their local knowledge helps them decide what streets 'book end' the block they are heading for.

Building a locator that does this starts with getting cross street data into your street centerline feature class you are using for locator reference data.  Here are some streets in Redding, California where I have derived cross street fields for a feature class, the pop-up relates to the selected street segment and I have redlined the cross street fields:

Inspecting Cross Streets Made By The ToolInspecting Cross Streets Made By The Tool

 

ArcGIS Data Interoperability comes to the rescue here.  In the past I have done all sorts of math in Python to calculate data structures I can query for cross streets but I much prefer the no-code approach.  If you go way back in ArcGIS like some people I know you may recall that edge-node topology was baked into the storage model for linear features.  It is no longer in a geodatabase, nor is it easy to make - except with Data Interoperability.  So that is what I did in the ETL tool in the post download (requires Pro 2.9+ and Data Interoperability):

 

The ETL Tool That Makes Cross StreetsThe ETL Tool That Makes Cross Streets

 

I'll let you surf the tool yourselves but in thumbnail I read in street reference data, send the geometry, ObjectID and a street name attribute into some processing that figures out cross streets, then join these back onto the street features and write out a new feature class.  I don't include the data but it is publicly available so you can test drive the tool for yourself after repairing paths.

In the download toolbox there is also a model that creates a locator (also included) with custom output fields for cross streets, and here it is in action with a 'What's Here?' query in a map.

You can get to the area by a geocode to 2500  CELESTIAL ST, Redding, 96002 with the supplied locator.

 

Cross Streets Returned By The LocatorCross Streets Returned By The Locator

 

In production street centerlines would often be used as one primary table in a locator that also uses point address data and zone features, and to access the cross street values from a geocode service you might have to use a category filter of 'Street Address'.

If you need help putting this together please contact your local Esri representative or use the comments feature in this post, I'll be listening!

6 Comments
ClaudiaGIS
New Contributor III

Hi Bruce, I came across this post. I am trying to geocode several cross streets so this seems to be a great option. Do you have additional help available for this tool? I am trying to make it work but still having some problems.

Thanks in advance.

BruceHarold
Esri Regular Contributor

@ClaudiaGIS Hi, yes sure, please email me as bharold at esri dot com - thanks.

KyleGruber
Occasional Contributor II

@BruceHarold Is there any updated workflow to this process, anything built into ArcGIS Pro now?  If not, do you have any suggestions on how you would get cross streets for an address point?  The only thing I can think of is doing a query to the centerline to find the street segment that the address point falls into, is there a better way?

BruceHarold
Esri Regular Contributor

Kyle, I have asked a colleague in the geocoding team to respond, I'm not aware of any new functionality - thanks.

RobertJensen
Esri Contributor

Hi Kyle,

We don’t have out-of-the-box data preparation functionality at this time for adding cross street data into locators, but we can add this to our backlog for a future release. In Pro 3.3, the ability to search for streets between other streets was added. Intersections can be built into a street address role with the name of the intersection in the address field, for example “Main St & Center Ave”, but the determination of the intersection at each end of a road segment requires pre-processing today. Please consider these options.

KyleGruber
Occasional Contributor II

@RobertJensen Thanks for the info.  Is there any resource you can point me to for determining cross streets with preprocessing?  This tool works well, but I don't know how for instance I would determine:

KyleGruber_0-1716912019822.png

 

what the cross streets for 101 E MAIN ST are.  I can visually tell it's N Highland St and Washington St, running this tool will likely give me those values for that street segment (E MAIN ST), but there's nothing that directly connects the address point to the centerline.

Update:  In this particular case, it appears the last statement is not true, and there is a SEGID element connecting the address point and centerline.  I'm not sure if this is a typical requirement of GIS data like this, but it does solve the issue entirely at least for this case.