Friday, March 24, 2006

Intersection Queries without Intersection Data

A common query that users like to use is an Intersection Query. For example, find me Main Street and 4th Ave or Jordan Ln. and Holmes Ave. An Intersection Query is sometimes more useful than an Address Query because you do not have to be as precise to get relatively close to what you are looking for. Also, it is often easier to remember an intersection than an addresses, and it is also easy to identify intersections just by looking for the closest street signs. Interestingly, many data sets to not model intersections as a feature, so creating an explicit intersection query may not be something supported by your GIS data. GTData has provided some utilities for some time to specifically create street intersection features from a street segment data and provide the ability to locate by intersection in GTViewer, GTVx, Pocket GTViewer, and GTWeb even if the source GIS data does not support this type of query in its native environment.

The Intersection feature building utilities in GTData were implemented because several customers wanted to use TIGER Line data to provide landbase information in their data. This data is available (free of charge) in many different formats and from many different sources, such as the U.S. Census Bureau (http://www.census.gov/geo/www/tiger/index.html) or ESRI (http://esri.com/data/download/census2000_tigerline/index.html). While this free data does provides a street segment network, it does not provide intersection features, so while an address can be located using GTViewer’s Geocoding Address Query, an Intersection query was not directly supported. To solve this problem, the GTIntersect utility was added to GTData to generate intersection features (points with associated street names) directly from Shapefile data. This utility looks at all of the street segments and performs geoprocessing to check for any intersecting segments and any place where street segments meet. The end result is a new intersection category for GTViewer and associated tabular data. The tabular data can be used to generate an intersection query with GTQuery.

The success of the GTIntersect utility with the TIGER data was too good to limit it to Shapefile data. Perhaps it was a little shorted-sighted to build the utility to work with Shapefiles when there is other data that could benefit from it as well. So, the GTInterGtg was implemented to take care of this oversight. The GTInterGtg utility is also part of GTData and is equivalent to the GTIntersect utility except that it works against .GTG files (GTViewer’s native graphics format) instead of Shapefiles. This change opens intersection building up to any data that can be converted to the GTViewer format.

To illustrate how the intersection query works, the following screenshots step through the process of locating an intersection in GTViewer.

The Find Intersection Query asks for 2 streets in the screenshot below. This query could also ask for a city and/or state as well. The order that the streets are entered does not matter as the Intersection query automatically checks the values both ways when processing the query:



The intersection being queried was Jordan Ln and Holmes Ave, but the only first few letters were entered for each of the street names.. The Query Results below show all of the matches:



Picking the intersection in the list will locate on that spot in the map in GTViewer:



The Intersection Query can also be used to find all streets that intersect with a specific street by just entering one street in the query dialog:






While the ability to generate intersection may not be of interest to those who already have intersection features in their GIS data, it can be very useful to those who do not have this information. GTData provides 2 ways to produce intersection features to solve this problem, so if you want to try building intersections from your street networks, the tools are available.

No comments: