Flexible Locator Suggestions Like ArcGIS World Geocoding Service

1753
12
Jump to solution
04-12-2019 03:01 PM
KyleGruber
Occasional Contributor II

When creating a street address locator with suggestions enabled, is there a way to include fields such as Predirection, Postdirection, Suffix, etc but not make them a required part of the geocoding process?  For example, when I do this search with the World Geocoding Service:

World Geolocator Flexibility

Despite the fact that I'm not entering predirection as part of my inquiry, it's able to pull up 100 E Main and 100 W Main.  Does this require custom logic outside of the standard locator calls, or possibly a point address locator needs to be part of a composite?  I can't seem to achieve this using a Locator and Runtime SuggestAsync, even turning the minimum score down to 0.

Thanks!

0 Kudos
1 Solution

Accepted Solutions
KyleGruber
Occasional Contributor II

Anyone who comes across this thread, please see the corresponding runtime thread:

https://community.esri.com/thread/233047-mmpk-locator-discrepency-between-pro-and-runtime 

View solution in original post

0 Kudos
12 Replies
ShanaBritt
Esri Regular Contributor

Kyle:

If you would like to get suggestion behavior similar to what you are finding with the ArcGIS World Geocoding Service, I would suggest creating a locator using the Create Locator tool if you have access to ArcGIS Pro 2.3. The following resources should help with using the tool:

https://pro.arcgis.com/en/pro-app/help/data/geocoding/create-a-locator.htm

https://pro.arcgis.com/en/pro-app/help/data/geocoding/introduction-to-locator-roles.htm

https://pro.arcgis.com/en/pro-app/tool-reference/geocoding/create-locator.htm

KyleGruber
Occasional Contributor II

Shana,

Thanks for the suggestion, that's actually exactly what I'm using.  The new Create Locator tool is great, it fixed the long running issue with range address locators suggesting street numbers that don't exist, unfortunately I don't see an obvious solution to the predirection/postdirection issue.  I tried creating a composite locator with varying levels of mapped information, but it's causing a crash in the runtime that's noted here:

https://community.esri.com/thread/232024-access-violation-in-runtime-1005-with-mmpk-containing-compo... 

I'll try playing around with Create Locator and the field mappings to see what I can come up with without creating a composite.

Thanks!

0 Kudos
ShanaBritt
Esri Regular Contributor

Kyle:

The Create Locator tool will allow you to create a single locator that references multiple datasets, but you can only use a role once in the locator. So you could have a single locator based on the PointAddress, StreetAddress (includes street ranges, street names, and intersections), and Postal roles. You would be able to test out the suggestions in the Locate pane of Pro without having to publish the locator as a service.

KyleGruber
Occasional Contributor II

Shana,

This is helpful, and I think I've gotten the behavior of the locator to where I want it, the problem then becomes the output.  It seems as though the input and output are completely tied together. 

So if I map just the From/To Address Numbers and Street Name in the Field Mapping, I'm able to enter 3113 HOW and get back 3113 S Howard Ave as an example.  The problem is, there's seemingly no way to customize the output.  The label I get back in both ArcGIS Pro and ArcGIS Runtime is 3113 HOWARD, USA.

How does a locator determine what to send back as the suggest "label"?  I can't even figure out where it's getting USA as I'm not mapping country anywhere.  Is this where the Custom Output Fields come into play?

Thanks!

Edit:  I think I'm at the point where I have to put this back into the hands of the runtime team, although I'm still fundamentally lost on how the output of the locator is built.

https://community.esri.com/message/849365-mmpk-locator-discrepency-between-pro-and-runtime 

0 Kudos
BradNiemand
Esri Regular Contributor

Kyle,

There is no way to configure the output label.

The added "USA" to the end of the output text looks like something we will want to fix.  I will enter an issue in the backlog for this.

Brad

KyleGruber
Occasional Contributor II

Brad,

Thanks for the info.  This is probably a long shot but I was wondering if it was possible if the Pro team could share some information on what they're doing under the hood in the Locate process, and if any of this is potentially available to people on the SDK side.  Not looking for code or anything, just a vague outline of the calls the locator makes when looking for suggestions.

0 Kudos
BradNiemand
Esri Regular Contributor

Kyle,

I won't be able to go into any details about the geocoding process under the covers but I could potentially answer a specific question depending on what it was.

There is a basic SDK that can be found here:  https://pro.arcgis.com/en/pro-app/sdk/api-reference/index.html#topic18864.html

Was there something specific you were looking for in the SDK?

Brad

KyleGruber
Occasional Contributor II

Brad,

Having reviewed the Pro SDK information and looking at some basic information in the underlying calls, it's clear that ArcGIS Pro and ArcGIS Runtime SDK are using two completely different methods for getting suggest results from a Locator.  It doesn't even appear that ArcGIS Pro relies on a call into RuntimeCore in order to grab the suggestions, thus comparing results from the two is meaningless.

Just to clarify, I was referring to ArcGIS Runtime SDK in my previous post, not the ArcGIS Pro SDK.

Thanks for your help, but unless there's a way to integrate the Pro components into a WPF app without actually using Pro at all (which, even if possible, I'm guessing would be a violation of ESRI's EULA), I'm going to have to rely on the Runtime team to figure out why there's a difference in suggesting an intersection in Runtime vs Pro using the same Locator and same input text.

0 Kudos
LindseyStone
Occasional Contributor III

Brad,

Is there any update on how not show the USA label on a locator.  You said you were going enter a fix.  Is there a bug number on this to watch for updates?

0 Kudos