示例#1
0
 void dlg_Closed(object sender, EventArgs e)
 {
     //try and clean up
     GeocodeUtils.RemoveFromMapOverlay(ProSDKSampleModule.ActiveMapView);
     //geocode dialog was closed
     _dlg.Closed -= dlg_Closed;
     _dlg         = null;
 }
        private async void Button_Click(object sender, RoutedEventArgs e)
        {
            // get the current module to access helper method
            ProSDKSampleModule module = ProSDKSampleModule.Current;

            // remove any existing graphics
            MapView mapView = ProSDKSampleModule.ActiveMapView;

            GeocodeUtils.RemoveFromMapOverlay(mapView);

            try
            {
                // initiate the search
                CandidateResponse results = GeocodeUtils.SearchFor(this.SearchText.Text, 1);
                if (results.OrderedResults.Count > 0)
                {
                    // add a point graphic overlay
                    GeocodeUtils.UpdateMapOverlay(results.OrderedResults[0].ToPointN(), mapView);
                    // zoom to the location
                    await GeocodeUtils.ZoomToLocation(results.OrderedResults[0].Extent);

                    // add the search results to the dialog window
                    this.LastSearch.Text = string.Format("Last Match: {0}", results.OrderedResults[0].CandidateDetails);
                }
                else
                {
                    ArcGIS.Desktop.Internal.Framework.DialogManager.ShowMessageBox(
                        string.Format("No results returned for {0}", this.SearchText.Text), "GeocodeExample");
                }
            }
            catch (Exception ex)
            {
                string errorName = "Search Error";
                System.Diagnostics.Trace.WriteLine(string.Format("{0}: {1}", errorName, ex.ToString()));
                ArcGIS.Desktop.Internal.Framework.DialogManager.ShowMessageBox(errorName, this.SearchText.Text);
            }
        }