Select to view content in your preferred language

Locator won't match close street number in single address locator

13644
77
11-26-2013 06:49 AM
PeterHanmore
Emerging Contributor
We have built a locator in ArcGIS 10 SP5 which is based on the US Street - Single Address style.
We have been able to tweak most other settings but are still having issues with street number scoring.
Basically, we would like the locator to rank similar house numbers on the same street/town with a high score.
The default action (from my testing and based on one other forum thread) seems to indicate that the locator is VERY strict about the house number matching - to the point that it will give a high ranking to an address that matches the house number and street in a town hundreds of miles away, but fail to even score the address 100' away.
We have tried playing with the scoring of the FullNormalAddress, NormalAddress and House components but nothing seems to allow addresses with close house numbers in the desired city to be ranked higher than exact house number matches in a different city.

For example:
Search for 100 Main Street, Mytown

Geocoder responds with:
Score: 90, Address: 100 Main Street, Yourtown (could be large distance away from Mytown and therefore totally wrong location).

Yet 98 Main Street, Mytown is only two house numbers away from the desired address.  I would like the locator to return something like:

Score: 98, Address: 98 Main Street, MyTown
Score: 50, Address: 100 Main Street, Yourtown

Has anyone found a solution for this?  Any workarounds?  Apparently this worked as desired in 9.3.1 but was "improved" in 10.0?
Tags (2)
77 Replies
DanMcCoy
Frequent Contributor

Peter,

I agree with you.... It would make sense to me that you should be able to get a partial match to an address with a similar street number (13 -> 15), but I don't know if it's possible with ArcGIS locators.

Were you ever able to find any way of tweaking the scoring or match rules?

Dan

0 Kudos
DanMcCoy
Frequent Contributor
0 Kudos
BradNiemand
Esri Regular Contributor

Peter,

The reason we don't allow incorrect house number is because this locator type is supposed to be the most accurate type of match that you can obtain.  Generally we would suggest that you create a Dual Ranges locator as well and add the 2 locators to a composite locator instead. If you don't have this data, there is a way to customize the locator style template file to build a locator without requiring the house number to be correct.

What you would do is the following.

1. Open the USAddress.lot.xml file with a XML editor or text editor like Notpad++.

2. Search for "<mapping_schema ref="SingleAddressSearch" />"

3. Replace with "<mapping_schema ref="SingleAddressPolygonCentroid" />".

4. Build the locator again.

Let me know if you have any questions.

Brad

0 Kudos
JoeBorgione
MVP Emeritus

Gotta go with Brad on this one: A single address locator is just that.  I have address points that I am now incorporating into my 9-1-1 dispatch locators.  Sometimes a parcel or other physical address is not right along the street it is addressed to; a point is absolute. 

Consequently, I'm big fan of address points for my use in geocoding and single address locators for them.  I composite them with a US Streets locator so if I don't have a point or the incident is in an intersection, I'm good to go.

(Between the two 9-1-1 call centers I contract to, I'm responsible for  addressing about 3,000 9-1-1 calls a day, every day.  Probably a bunch more this holiday weekend. Please stay safe out there!)

That should just about do it....
0 Kudos
DanMcCoy
Frequent Contributor

Brad Niemand:

there is a way to customize the locator style template file to build a locator without requiring the house number to be correct.

What you would do is the following.

1. Open the USAddress.lot.xml file with a XML editor or text editor like Notpad++.

2. Search for "<mapping_schema ref="SingleAddressSearch" />"

3. Replace with "<mapping_schema ref="SingleAddressPolygonCentroid" />".

4. Build the locator again.

We tried changing the mapping_schema ref and rebuilding the locator, but did not see any change.  Are there any addtional steps needed to change the scoring weight of the house number component?

Thanks,

Dan

0 Kudos
BradNiemand
Esri Regular Contributor

You might need to reduce the MinimumMatchScore and/or MinimumCandidateScore for the locator.

Brad

0 Kudos
DanMcCoy
Frequent Contributor

Sure, reducing the min match/candidate scores will show more low-scoring matches, but the issue is how do we increase the score of a candidate that has a house number that is closer to the input address than some other random house number on the same street.

For exmaple, if I enter "916 I ST", get back all of the addresses on I ST with the same score...

101 I ST, score 55

1609 I ST, score 55

2322 I ST, score 55

915 I ST, score 55

910 I ST, score 55

401 I ST, score 55

+ many, many more

We should be able to adjust the scoring rules to promote 910 & 915 to have higher scores than the rest.  Obviously, we don't want these scores to be 100, because they don't match.  However, 910 & 915 are closer to 916 than the others, so the scoring should reflect that.

I hope that a 10.x locator style can be customized to change the way that the house number matches to behave more like it did with 9.x style locators.

Thanks,

Dan

BradNiemand
Esri Regular Contributor

Search for the following:

<mapping_schema name="SingleAddress" geom_type="point">

Under this section you will see a field defined for "House"  It will look like this:

          <field name="House" grammar_ref="House">

            <desc>House number</desc>

            <preferred_name>HN</preferred_name>

            <preferred_name>ADDRESS</preferred_name>

          </field>

Replace it with this and you will get the functionality you want:

          <field name="House" grammar_ref="House">

            <desc>House number</desc>

            <preferred_name>HN</preferred_name>

            <preferred_name>ADDRESS</preferred_name>

            <scoring_method ref="match_house_to_range">

              <init_properties>

                <prop name="MatchHouseToRange:DistanceScoring:Method">Linear</prop>

              </init_properties>

              <parameter>

                <input_value/>

              </parameter>

              <parameter>

                <field_value ref="House"/>

              </parameter>

              <parameter>

                <field_value ref="House"/>

              </parameter>

              <parameter>

                <value>B</value>

              </parameter>

            </scoring_method>

          </field>

Brad

0 Kudos
DanMcCoy
Frequent Contributor

Thanks Brad.  Would this be in addition to .... or instead of .... the "mapping_schema ref" change suggested previously?

0 Kudos
BradNiemand
Esri Regular Contributor

This would be in addition to the mapping_schema ref changes mentioned before.

Brad

0 Kudos