AnsweredAssumed Answered

Locator Task

Question asked by afcon on Jun 1, 2014
Latest reply on Jun 9, 2014 by MBranscomb-esristaff
Hi,

Is there a way to locate address location by only partially search text?
I have tried the sample code (changed address Parameters):

if the search text is for example "2011 MISSION ST" i get no results...
how can i do this?

public LocalGeocode()         {             InitializeComponent();              FindText.Text = "1455 MARKET ST, SAN FRANCISCO, CA 94103";             FindText.Items.Add("2011 MISSION ST, SAN FRANCISCO  CA  94110");             FindText.Items.Add("820 BRYANT ST, SAN FRANCISCO  CA  94103");             FindText.SelectedIndex = 0;             _locationGraphicsLayer = MyMap.Layers["MyGraphicsLayer"] as GraphicsLayer;              LocalGeocodeService.GetServiceAsync("..\\Data\\Locators\\SanFrancisco\\SanFranciscoLocator.gcpk", "SanFranciscoLocator", (gs) =>             {                 if (gs.Error != null)                 {                     MessageBox.Show(gs.Error.Message);                 }                 if (gs.Status == LocalServiceStatus.Running)                 {                     _localGeocodeService = gs;                     ExecuteButton.IsEnabled = true;                     DataContext = this;                     IsBusy = false;                 }             });         }          private void ExecuteButton_Click(object sender, RoutedEventArgs e)         {             IsBusy = true;             var searchText = FindText.Text;             Locator locatorTask = new Locator(_localGeocodeService.UrlGeocodeService);             locatorTask.AddressToLocationsCompleted += (object sender1, AddressToLocationsEventArgs args) =>             {                 if (args.Results.Count > 0)                 {                     AddressCandidate bestCandidate = args.Results[0];                     foreach (AddressCandidate candidate in args.Results)                         bestCandidate = (candidate.Score > bestCandidate.Score) ? candidate : bestCandidate;                      MapPoint geographicPoint = new MapPoint(bestCandidate.Location.X, bestCandidate.Location.Y, new SpatialReference(4326));                      Graphic graphic = new Graphic()                     {                         Geometry = geographicPoint,                         Symbol = LayoutRoot.Resources["StrobeMarkerSymbol"] as ESRI.ArcGIS.Client.Symbols.Symbol                     };                     _locationGraphicsLayer.Graphics.Clear();                     _locationGraphicsLayer.Graphics.Add(graphic);                     IsBusy = false;                 }                 else                 {                     MessageBox.Show("No results found");                     IsBusy = false;                 }             };              locatorTask.Failed += (s2, e2) =>             {                 MessageBox.Show("Geocode failed with error: " + e2.Error.Message);             };              AddressToLocationsParameters addressParameters = new AddressToLocationsParameters();             Dictionary<string, string> address = addressParameters.Address;                             //address.Add("Single Line Input", searchText); instead of this line i have tried searching             foreach (var addressField in _localGeocodeService.AddressesFields)            {                   address.Add(addressField.Name, searchText);            }                locatorTask.AddressToLocationsAsync(addressParameters);         }           }

Outcomes