MainPage.Localizador_LocationToAddressCompleted(object sender, AddressToLocationsEventArgs e) Error: No overload for 'Localizador_LocationToAddressCompleted' matches deleagate 'System.EventHandler<ESRI.ArcGIS.Client.Tasks.AddressToLocationsEventArgs>'
using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Shapes; using ESRI.ArcGIS.Client; using ESRI.ArcGIS.Client.Tasks; using ESRI.ArcGIS.Client.Geometry; namespace AdressLocator { public partial class MainPage : UserControl { List<AddressCandidate> _candidateList; private bool _firstZoom = true; private int _lastIndex = 0; Locator localizador = new Locator("http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Locators/" + "ESRI_Geocode_USA/GeocodeServer"); public MainPage() { InitializeComponent(); btnAcheEncereço.Click += BtnAcheEncereço_click; //Here's where the Visual Studio point's the error: localizador.LocationToAddressCompleted += Localizador_LocationToAddressCompleted; localizador.Failed += new EventHandler<TaskFailedEventArgs>(Localizador_Failed); } private void BtnAcheEncereço_click(object sender, RoutedEventArgs e) { AddressToLocationsParameters addressParams = new AddressToLocationsParameters(); Dictionary<string, string> address = addressParams.Address; if (!string.IsNullOrEmpty(State.Text)) address.Add("Address", Address.Text); if (!string.IsNullOrEmpty(City.Text)) address.Add("City", City.Text); if (!string.IsNullOrEmpty(State.Text)) address.Add("State", State.Text); if (!string.IsNullOrEmpty(Zip.Text)) address.Add("Zip", Zip.Text); if (addressParams.Address.Count == 0) { GraphicsLayer graphicsLayer = mapa.Layers["MyGraphicsLayer"] as GraphicsLayer; if (graphicsLayer != null) graphicsLayer.ClearGraphics(); candidateScrollViewer.Content = null; candidatePanelGrid.Visibility = Visibility.Collapsed; MessageBox.Show("No address field entered."); return; } localizador.AddressToLocationsAsync(addressParams); } private void Localizador_LocationToAddressCompleted(object sender, ESRI.ArcGIS.Client.Tasks.AddressToLocationsEventArgs e) { List<AddressCandidate> returnedCandidates = e.Results; if (returnedCandidates.Count == 0) { MessageBox.Show("No address match found."); return; } GraphicsLayer graphicsLayer = mapa.Layers["MyGraphicsLayer"] as GraphicsLayer; graphicsLayer.ClearGraphics(); _candidateList = new List<AddressCandidate>(); ListBox candidateListBox = new ListBox() { BorderThickness = new Thickness(0), VerticalAlignment = VerticalAlignment.Center }; foreach (AddressCandidate candidate in returnedCandidates) { if (candidate.Score >= 65) { _candidateList.Add(candidate); candidateListBox.Items.Add(candidate.Address); Graphic graphic = new Graphic() { Symbol = DefaultMarkerSymbol, Geometry = candidate.Location }; graphic.Attributes.Add("Address", candidate.Address); string latlon = String.Format("{0}, {1}", candidate.Location.X, candidate.Location.Y); graphic.Attributes.Add("LatLon", latlon); graphicsLayer.Graphics.Add(graphic); } } candidateListBox.SelectionChanged += _candidateListBox_SelectionChanged; candidateScrollViewer.Content = candidateListBox; candidatePanelGrid.Visibility = Visibility.Visible; MapPoint pt = _candidateList[0].Location; if (_firstZoom) { mapa.ZoomToResolution(mapa.Resolution / 4, pt); _firstZoom = false; } else mapa.PanTo(pt); _lastIndex = 0; candidateListBox.SelectedIndex = 0; } void _candidateListBox_SelectionChanged(object sender, SelectionChangedEventArgs e) { ListBox listBox = sender as ListBox; int index = listBox.SelectedIndex; if (index >= 0 && _lastIndex != index) { _lastIndex = index; AddressCandidate candidate = _candidateList[index]; mapa.PanTo(candidate.Location); } } private void Localizador_Failed(object sender, TaskFailedEventArgs e) { MessageBox.Show(e.Error.ToString()); } } }
private void Localizador_LocationToAddressCompleted(object sender, ESRI.ArcGIS.Client.Tasks.AddressToLocationsEventArgs e)
{
LocationToAddress delegate is waiting for an AddressEventArgs (not a AddressToLocationsEventArgs)
using System; using System.Collections.Generic; using System.Windows; using System.Windows.Controls; using ESRI.ArcGIS.Client; using ESRI.ArcGIS.Client.Geometry; using ESRI.ArcGIS.Client.Tasks; namespace ArcGISSilverlightSDK { public partial class AddressToLocation : UserControl { List<AddressCandidate> _candidateList; private bool _firstZoom = true; private int _lastIndex = 0; public AddressToLocation() { InitializeComponent(); } private void FindAddressButton_Click(object sender, RoutedEventArgs e) { Locator locatorTask = new Locator("http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/" + "Locators/ESRI_Geocode_USA/GeocodeServer"); locatorTask.AddressToLocationsCompleted += LocatorTask_AddressToLocationsCompleted; locatorTask.Failed += LocatorTask_Failed; AddressToLocationsParameters addressParams = new AddressToLocationsParameters(); Dictionary<string, string> address = addressParams.Address; if (!string.IsNullOrEmpty(State.Text)) address.Add("Address", Address.Text); if (!string.IsNullOrEmpty(City.Text)) address.Add("City", City.Text); if (!string.IsNullOrEmpty(State.Text)) address.Add("State", State.Text); if (!string.IsNullOrEmpty(Zip.Text)) address.Add("Zip", Zip.Text); if (addressParams.Address.Count == 0) { GraphicsLayer graphicsLayer = MyMap.Layers["MyGraphicsLayer"] as GraphicsLayer; if (graphicsLayer !=null) graphicsLayer.ClearGraphics(); CandidateScrollViewer.Content = null; CandidatePanelGrid.Visibility = Visibility.Collapsed; MessageBox.Show("No address field entered."); return; } locatorTask.AddressToLocationsAsync(addressParams); } private void LocatorTask_AddressToLocationsCompleted(object sender, ESRI.ArcGIS.Client.Tasks.AddressToLocationsEventArgs args) { List<AddressCandidate> returnedCandidates = args.Results; if (returnedCandidates.Count == 0) { MessageBox.Show("No address match found."); return; } GraphicsLayer graphicsLayer = MyMap.Layers["MyGraphicsLayer"] as GraphicsLayer; graphicsLayer.ClearGraphics(); _candidateList = new List<AddressCandidate>(); ListBox candidateListBox = new ListBox() { BorderThickness = new Thickness(0), VerticalAlignment = VerticalAlignment.Center }; foreach (AddressCandidate candidate in returnedCandidates) { if (candidate.Score >= 65) { _candidateList.Add(candidate); candidateListBox.Items.Add(candidate.Address); Graphic graphic = new Graphic() { Symbol = DefaultMarkerSymbol, Geometry = candidate.Location }; graphic.Attributes.Add("Address", candidate.Address); string latlon = String.Format("{0}, {1}", candidate.Location.X, candidate.Location.Y); graphic.Attributes.Add("LatLon", latlon); graphicsLayer.Graphics.Add(graphic); } } candidateListBox.SelectionChanged += _candidateListBox_SelectionChanged; CandidateScrollViewer.Content = candidateListBox; CandidatePanelGrid.Visibility = Visibility.Visible; MapPoint pt = _candidateList[0].Location; if (_firstZoom) { MyMap.ZoomToResolution(MyMap.Resolution / 4, pt); _firstZoom = false; } else MyMap.PanTo(pt); _lastIndex = 0; candidateListBox.SelectedIndex = 0; } void _candidateListBox_SelectionChanged(object sender, SelectionChangedEventArgs e) { ListBox listBox = sender as ListBox; int index = listBox.SelectedIndex; if (index >= 0 && _lastIndex != index) { _lastIndex = index; AddressCandidate candidate = _candidateList[index]; MyMap.PanTo(candidate.Location); } } private void LocatorTask_Failed(object sender, TaskFailedEventArgs e) { MessageBox.Show("Locator service failed: " + e.Error); } } }
LocationToAddress delegate is waiting for an AddressEventArgs (not a AddressToLocationsEventArgs)
I already said that on my the post.
What I said that was the problem is that the ESRI SAMPLES of the ArcGIS API shows the code receiving ESRI.ArcGIS.Client.Tasks.AddressToLocationsEventArgs as parameter instead of AddressEventArgs, and my question was how do i make it work...
Did you check the code at the link to the ESRI samples?
This code is at the Samples Gallery at http://resources.esri.com/help/9.3/arcgisserver/apis/silverlight/samples/start.htm#AddressToLocation
Sorry, I am not sure to understand.
I checked the ESRI samples, I didn't find any LocationToAddress sample which would use an AddressToLocationEventsArg (the link you are giving is for AddressToLocation, so it's OK).
can you also share your XAML code?
<UserControl x:Class="AdressLocator.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:esri="http://schemas.esri.com/arcgis/client/2009" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="600" xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" xmlns:userControls="clr-namespace:ESRI.ArcGIS.SilverlightMapApp" xmlns:actions="clr-namespace:ESRI.ArcGIS.SilverlightMapApp.Actions" xmlns:esriSymbols="clr-namespace:ESRI.ArcGIS.Client.Symbols;assembly=ESRI.ArcGIS.Client" xmlns:esriConverters="clr-namespace:ESRI.ArcGIS.Client.ValueConverters;assembly=ESRI.ArcGIS.Client" xmlns:slData="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data"> <UserControl.Resources> <esriSymbols:FillSymbol x:Name="DefaultMarkerSymbol" Fill="Red" BorderBrush="White" BorderThickness="2" /> <esriConverters:DictionaryConverter x:Name="MyDictionaryConverter" /> </UserControl.Resources> <Grid x:Name="LayoutRoot" Background="{StaticResource BaseColor}"> <Grid.RowDefinitions> <RowDefinition Height="30" /> <RowDefinition Height="*" /> </Grid.RowDefinitions> <!--Menu bar--> <Grid Grid.Row="0" x:Name="topMenuGrid" Background="{StaticResource BaseColor}"> <Rectangle x:Name="BackgroundGradient" Opacity=".5" Fill="{StaticResource ReflectionGradient}" /> <StackPanel Margin="0" Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center"> <esri:MapProgressBar Width="200" Map="{Binding ElementName=Map}" Background="White" Foreground="Black"/> </StackPanel> </Grid> <!-- Body of the Application --> <Grid Grid.Row="1"> <!-- Map View --> <esri:Map x:Name="mapa" Background="{StaticResource BaseColor}" > <esri:ArcGISTiledMapServiceLayer ID="BaseLayer" Url="http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap_World_2D/MapServer" /> <esri:GraphicsLayer ID="Graficos"> <esri:GraphicsLayer.MapTip> <Canvas> <Grid> <Rectangle Stroke="Gray" RadiusX="10" RadiusY="10" Fill="#77FF0000" Margin="0,0,0,5" /> <Rectangle Fill="#DDFFFFFF" Stroke="DarkGray" RadiusX="5" RadiusY="5" Margin="10,10,10,15" /> <StackPanel Orientation="Vertical" HorizontalAlignment="Center" Margin="30,20,30,30"> <TextBlock Text="{Binding Converter={StaticResource MyDictionaryConverter}, ConverterParameter=Address, Mode=OneWay}" HorizontalAlignment="Left" /> <TextBlock Text="{Binding Converter={StaticResource MyDictionaryConverter}, ConverterParameter=LatLon, Mode=OneWay}" HorizontalAlignment="Left" /> </StackPanel> </Grid> </Canvas> </esri:GraphicsLayer.MapTip> </esri:GraphicsLayer> </esri:Map> <!-- Scale Bar --> <userControls:ScaleBar x:Name="scaleBar" Opacity=".5" Map="{Binding ElementName=Map}" MapUnit="Kilometers" Width="200" Fill="White" Margin="10,0,0,10" IsHitTestVisible="False" HorizontalAlignment="Left" VerticalAlignment="Bottom" /> <!-- Navigator --> <esri:Navigation x:Name="nav" Margin="10,0,0,20" Map="{Binding ElementName=Map}" HorizontalAlignment="Left" VerticalAlignment="Bottom" Background="{StaticResource BaseColor}" PanFactor="0.1"> <esri:Navigation.Effect> <DropShadowEffect Color="Black" Direction="-45" BlurRadius="20" Opacity=".75" /> </esri:Navigation.Effect> </esri:Navigation> </Grid> <Grid Grid.Row="1" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0,15,15,0"> <Rectangle Stroke="Gray" RadiusX="10" RadiusY="10" Fill="#775C90B2" Margin="0,0,0,5" > <Rectangle.Effect> <DropShadowEffect/> </Rectangle.Effect> </Rectangle> <Rectangle Fill="#DDFFFFFF" Stroke="DarkGray" RadiusX="5" RadiusY="5" Margin="10,10,10,15" /> <StackPanel Orientation="Vertical" HorizontalAlignment="Center" Margin="30,20,30,30"> <TextBlock Text="Enter Address Information" FontWeight="Bold" HorizontalAlignment="Center" /> <StackPanel Orientation="Horizontal" HorizontalAlignment="Left" > <TextBlock Text="Address: " Width="80" TextAlignment="Right" /> <TextBox x:Name="Address" Text="400 Market Street" Width="125"/> </StackPanel> <StackPanel Orientation="Horizontal" HorizontalAlignment="Left" > <TextBlock Text="City: " Width="80" TextAlignment="Right" /> <TextBox x:Name="City" Text="San Francisco" Width="125"/> </StackPanel> <StackPanel Orientation="Horizontal" HorizontalAlignment="Left" > <TextBlock Text="State: " Width="80" TextAlignment="Right"/> <TextBox x:Name="State" Text="CA" Width="125"/> </StackPanel> <StackPanel Orientation="Horizontal" HorizontalAlignment="Left" > <TextBlock Text="Zip: " Width="80" TextAlignment="Right"/> <TextBox x:Name="Zip" Text="94111" Width="125"/> </StackPanel> <Button x:Name="btnAcheEncereço" Content="Find" Width="100" HorizontalAlignment="Center" Margin="0,5,0,0" /> </StackPanel> </Grid> <Grid Grid.Row="1" x:Name="candidatePanelGrid" HorizontalAlignment="Right" VerticalAlignment="Bottom" Margin="0,15,15,0" Visibility="Collapsed"> <Rectangle Stroke="Gray" RadiusX="10" RadiusY="10" Fill="#775C90B2" Margin="0,0,0,5" > <Rectangle.Effect> <DropShadowEffect/> </Rectangle.Effect> </Rectangle> <Rectangle Fill="#FFFFFFFF" Stroke="DarkGray" RadiusX="5" RadiusY="5" Margin="10,17,10,15" /> <StackPanel Orientation="Vertical" HorizontalAlignment="Center" Margin="10,2,15,15"> <TextBlock HorizontalAlignment="Left" Text="Address Candidates" Margin="2,0,0,5" /> <ScrollViewer x:Name="candidateScrollViewer" Width="300" MaxHeight="150" BorderThickness="0" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto" > </ScrollViewer> </StackPanel> </Grid> </Grid> </UserControl>