ArcGIS Pro 2.4, Create locator.
In this post, Bryan Lynn describes a problem locating point addresses with units. He experienced it in an Oracle enterprise geodatabase; today I discovered the same problem using a file geodata base. Here are the field mapping parameters I use :
fieldMapping = "'PointAddress.HOUSE_NUMBER AddPntsProtected.ADDR_HN';"\
"'PointAddress.STREET_PREFIX_DIR AddPntsProtected.ADDR_PD';"\
"'PointAddress.STREET_NAME AddPntsProtected.ADDR_SN';"\
"'PointAddress.STREET_SUFFIX_TYPE AddPntsProtected.ADDR_ST';"\
"'PointAddress.STREET_SUFFIX_DIR AddPntsProtected.ADDR_SD';"\
"'PointAddress.SUB_ADDRESS_UNIT AddPntsProtected.UNIT_DESIG';"\
"'StreetAddress.STREET_NAME_JOIN_ID Centerlines.JOINID';"\
"'StreetAddress.HOUSE_NUMBER_FROM_LEFT Centerlines.FROMADDR_L';"\
"'StreetAddress.HOUSE_NUMBER_TO_LEFT Centerlines.TOADDR_L';"\
"'StreetAddress.HOUSE_NUMBER_FROM_RIGHT Centerlines.FROMADDR_R';"\
"'StreetAddress.HOUSE_NUMBER_TO_RIGHT Centerlines.TOADDR_R';"\
"'StreetAddress.STREET_PREFIX_DIR Centerlines.PREDIR';"\
"'StreetAddress.STREET_NAME Centerlines.NAME';"\
"'StreetAddress.STREET_SUFFIX_TYPE Centerlines.POSTTYPE';"\
"'StreetAddress.STREET_SUFFIX_DIR Centerlines.POSTDIR';"\
"'POI.PLACE_JOIN_ID Parcels.parcel_id';"\
"'POI.PLACE_NAME Parcels.parcel_id'"
Notice in line 6 the field UNIT_DESIG is used.
If I use the unit a given address this way, it ignores it:
Where as if I use # in front of the unit designator, I'll get the unit as the secondary hit (B):
Is this expected behavior? We do carry a field called 'FullAddress' that carries the unit with # but I'm not referencing that field at all in my parameters (Notice it's # (space) Z1):
Hi Joe,
You will need to include a unit type (#, Apt, Suite, Bldg) before the actual unit value in order to return a successful subaddress candidate in the Locate pane. If a unit type is not included, the subaddress will not be returned as a candidate. From my experience, these unit types are somewhat interchangeable and if in your reference data the unit type was designated as "Suite", you would still be able to return a candidate with "#", and vise versa.
The issue reported by Bryan in the other post (no subaddress candidate returned) was still reproduced even when a unit type was included with the input address when the reference data was sourced from an enterprise geodatabase. We were unable to reproduce this when sourced from a file geodatabase, but again, as long as a unit type was included with the unit value (e.g. 606 Main St #100).
Hope this helps!
Eric
Thanks Eric- I think I get it.
Why though when I include the #Z1, does my address come up as the 'B' choice and not the 'A' choice? In the case of the traditional composite, with the address points as the first locator at the 'top' of the composite list, that address would have hit at 100% and game over.
Eventually I'd like to publish this for public consumption, and it would be cool if someone ( a tax-paying voter) could just type in the street address and have the units suggested. Enhancement perhaps?
Hi Joe,
I'd be happy to get something like this logged. I tested with the Create Address Locator tool (US Address - Single House Subaddress style) and can confirm that just searching for the base address will return subaddress candidates as well:
Therefore, I can definitely see about getting something logged so the new Create Locator tool functionality is more in line with the older Create Address Locator tool.
Of course I'd recommend you post something on our ArcGIS Ideas page as well, so others can view it and promote it. If you decide to do this, please let me know so I can link it with our internal enhancement.
Best regards,
Eric
Here you go: https://community.esri.com/ideas/17064-provide-units-in-suggested-addresses
(vote early and vote often...)
Thank you Joe,
I have logged this under the following enhancement. If you'd like to be attached to it so you can track its status at anytime from My Esri, please go ahead and submit a Support case referencing the ENH number:
ENH-000124149: Allow locators built with the Create Locator tool and a Point Address role to return candidates and suggestions for subaddresses when the base address is inputted
Best,
Eric
Awesome! Thanks Eric!
Joe:
In your example above are you using a single locator or a composite locator? You can get suggestions from the classic locators that are created with the Create Address Locator tool, but they aren't validated against the house number or street name. The logic behind the subaddress results between the classic locators and the new locators is different and they are designed differently. If the locator mentioned above is a composite, I suggest that you combine all of the features, with and without subaddress units, into a single feature class and build the locator using the PointAddress role. Make sure the base address is part of the feature class so that if you search for a subaddress unit and it's not found you can return the base address.
If you create a multirole of PointAddress and StreetAddress, if there is a street segment id that exists in both the point and street data, they should be used to join the roles together using the 'Street Join ID' field from the locator role. This will keep from getting multiple candidates for the same location and if the base address didn't exist in the point data, searching for the base address of the subaddresses will return a match from the StreetAddress locator instead of no result from the PointAddress locator.