Geocoding Data Extensions

 

If the Manifold Geocoding Tools package is installed, Manifold System can use various geocoding data sources to enable the Manifold geocoding engine to provide street address geocoding capabilities. See the Geocoding Tools topic for information on the capabilities provided by the Geocoding Tools package. If the Geocoding Tools package is not installed, the capabilities provided by this topic will not be available.

 

Users may customize geocoding operation by providing their own data to be used as a geocoding data source. Such additional, customized data are referred to as geocoding data extensions because most frequently such user-provided data is intended as an adjunct to existing geocoding data sources, perhaps providing corrections or a limited amount of more recent data. However, even though such data is referred to as extensions, Manifold can use user-provided data without any other geocoding data source required.

 

Users provide geocoding data extensions in the form of one or more Manifold .map project files that contain tables with columns using predefined names and types. The project files must be placed in the folder cited in the Tools - Options - File Locations pane for Geocoding Extensions and the Use geocoding extensions checkbox must be checked in the Tools - Options - Geocoding pane.

 

User geocoding extensions are always considered first when processing data. Next, either the Manifold geocoding database or MapPoint geocoding data are considered depending on whether MapPoint is set to be the primary or the fallback geocoding engine.

 

Geocoding data extensions are used mainly in two forms:

 

§      First, they may be used to provide addresses for specific points of interest that exist at a specific latitude or longitude (such as the address and location of a hotel or restaurant). This format is easier to understand and implement.

§      Second, they may be used to provide ranges of addresses such as the ranges of address that may occur on a given street segment so that any address and location within the range may be interpolated.

 

The format for data extensions allows for both types of uses.

 

Tables used for geocoding data extensions may be local within the project, they may be linked from external DBMS providers or, if Enterprise Edition is in use, they may be shared from an Enterprise server.

 

Format

 

Each .map file must have a table named Geocoding Data. The table must have one or more address columns using specific names (Address, City, Country, From Number, Number, State, Street, To Number, Zip) and location columns that give latitude and longitude locations. The location columns may be either latitude and longitude columns (Latitude, Longitude) that specify a single location or they may be range columns (From Latitude, From Longitude, To Latitude, To Longitude) that specify a range of locations.

 

Address columns except Number columns (Number columns include Number, From Number and To Number) must be text, Number columns may be text or numeric, and latitude and longitude columns must be numeric. Latitude and longitude coordinates are assumed to be in WGS 84.

 

Range latitude and longitude columns (From Latitude, From Longitude, To Latitude, To Longitude) are always used in conjunction with range Number columns (From Number, To Number) to geocode street segments. The Street and Number columns are used as a substitute for the Address column if there is no Address column. If there is an Address column, the Street and Number columns are ignored.

 

Examples

 

Suppose we would like to create a user-supplied geocoding data extension that contained points of interest. For each point of interest such as a hotel or restaurant we have a record that contains a specific address and latitude / longitude location.

 

We would create a table called Geocoding Data and make sure that it contains the following fields and field types:

 

§      State - Text (ANSI, variable-length)

§      City - Text (ANSI, variable-length)

§      Address - Text (ANSI, variable-length)

§      Latitude - Latitude

§      Longitude - Longitude

 

In the above table each record represents a specific address at a specific location. When a given address is geocoded the exact latitude and longitude will be reported. If an address can not found in the table then no geocoded latitude and longitude will be reported.

 

Suppose we would like to create a geocoding data extension table for ranges of addresses. We could create a table called Geocoding Data and make sure that it contains the following fields and field types:

 

§      State - Text (ANSI, variable-length)

§      City - Text (ANSI, variable-length)

§      Street - Text (ANSI, variable-length)

§      From Number - Integer (32-bit)

§      To Number - Integer (32-bit)

§      From Latitude - Latitude

§      From Longitude - Longitude

§      To Latitude - Latitude

§      To Longitude - Longitude

 

In the above table each record represents a street segment that extends from a From latitude and longitude location to a To latitude and longitude location. The street segment contains addresses numbered from the From number to a To number. For example, a street segment may contain addresses from 100 to 200 on a Street called Western Avenue. An address located at 150 Western Avenue will be located at the middle of the straight line drawn from the From latitude and longitude location to the To latitude and longitude location.

 

The From Number used in a street segment may be greater than the To Number. More than one record can overlap for the same Street name with From Number and To Number address range so long as the overlapping number ranges are all odd or all even. The geocoding engine can exploit an all odd or all even number range to assign an odd or even street address number to the correct segment.

 

images\sc_geocode_odd_even_02.gif

 

Consider a situation where a street segment has a From Number of 10 and a To Number of 31. This is a typical situation where a building number between 10 and 31 with that same street name will be geocoded within that segment.

 

images\sc_geocode_odd_even_01.gif

 

If desired, the same street can be represented by more than one street segment where the ranges overlap numerically but the segments are distinguished by having all odd or all even number ranges. In the above illustration the same portion of the street is represented using three segments. There are two segments that use all even numbers for the From Number and To Number values (10 to 20 on one segment and 24 to 30 on the other segment). There is one segment that uses all odd numbers (11 and 31) for the From Number and To Number values.

 

The illustrations above show the position of street segments as lines for conceptual clarity, but .map files used for geocoding data extensions need not contain any drawings. All they need contain are one or more tables that have either point locations (as in the case of points of interest) or ranges of locations.

 

When matching a building number (street address number) against street segments for that street name, if the building number is even the geocoding engine will first try to find a segment into which the number falls where the number ranges are both even. If the building number is odd the engine will try to find a segment into which the number falls where the number ranges are both odd. For example, given three segments for Main Street with From / To Number ranges of 10 to 20, 24 to 30, and 11 to 31, the geocoding engine will match 18 Main Street to the first segment and 25 Main Street to the third segment.

 

If the geocoding engine cannot find any all odd or all even segments into which the street number falls, it will try to find a segment with a mixed odd/even From / To range (like the first illustration above) into which the number falls.

 

Note that the above table organization makes two assumptions:

 

§      There is no distinction between the left or right sides of the street in address ranges. Therefore, left and right offsets should not be used when geocoding using user-supplied geocoding data extensions. In some cases, left and right side addressing can be accomplished if the left or right sides of the street are exclusively odd or even numbers. In such cases, use two segments for the same part of the street with one segment being odd numbers and the other segment being even numbers. These segments may be offset from the centerline, as in the second illustration above, to create the effect of a left or right offset.

§      Each street segment geocoded is a straight line. A highly curved street should therefore be segmented into straight line segments that approximate the curves of the street with address ranges and latitude / longitude location ranges assigned for each segment.

 

In many cases, when creating custom geocoding data it may be easier to simply use points of interest organization and assign a specific location to each address that actually exists in the area of interest. Using the GPS Console or other GPS software it is remarkably fast and easy to collect street address locations even for very large numbers of addresses. Points of interest organization is also usually much more accurate than street segment ranges when creating custom geocoding data extensions for rural areas.

 

Tech Tip

 

Keep in mind that Manifold may lock the .map files used for geocoding data extensions or may cache their content; therefore, any modifications made to such files will only be visible in sessions of Manifold launched after any such modifications.

 

See Also

 

About Geocoding

Geocoding

Geocoding Tools

Street Address Geocoding

Geocoding Data Sources

Geocoding with MapPoint

Manifold Geocoding Servers