Ejemplo n.º 1
0
        public void pegarAsync(float latitude, float longitude, GeoEnderecoEventHandler callback)
        {
            var location = new CLLocation(latitude, longitude);
            var geoCoder = new CLGeocoder();

            geoCoder.ReverseGeocodeLocation(location, (placemarkers, error) => {
                if (placemarkers.Length > 0)
                {
                    var geoEndereco = placemarkers[0];
                    var endereco    = new GeoEnderecoInfo
                    {
                        Logradouro  = geoEndereco.Thoroughfare,
                        Complemento = geoEndereco.SubThoroughfare,
                        Bairro      = geoEndereco.SubLocality,
                        Cidade      = geoEndereco.Locality,
                        Uf          = geoEndereco.AdministrativeArea,
                        CEP         = geoEndereco.PostalCode,
                    };
                    if (callback != null)
                    {
                        ThreadUtils.RunOnUiThread(() => {
                            callback(null, new GeoEnderecoEventArgs(endereco));
                        });
                    }
                }
            });
        }
Ejemplo n.º 2
0
        public void pegarAsync(float latitude, float longitude, GeoEnderecoEventHandler callback)
        {
            new Thread(new ThreadStart(() => {
                try
                {
                    Context context = Android.App.Application.Context;
                    var geo         = new Geocoder(context);
                    var addresses   = geo.GetFromLocation(latitude, longitude, 1);

                    var geoEndereco = addresses.Take(1).SingleOrDefault();
                    if (geoEndereco != null)
                    {
                        var endereco = new GeoEnderecoInfo
                        {
                            Logradouro  = geoEndereco.Thoroughfare,
                            Complemento = geoEndereco.SubThoroughfare,
                            Bairro      = geoEndereco.SubLocality,
                            Cidade      = geoEndereco.Locality,
                            Uf          = geoEndereco.AdminArea,
                            CEP         = geoEndereco.PostalCode,
                        };
                        if (callback != null)
                        {
                            CurrentActivityUtils.Current.RunOnUiThread(() =>
                            {
                                callback(null, new GeoEnderecoEventArgs(endereco));
                            });
                        }
                    }
                }
                catch (Exception e) {
                    // não faz nada
                }
            })).Start();
        }
Ejemplo n.º 3
0
 public static void pegarAsync(float latitude, float longitude, GeoEnderecoEventHandler callback)
 {
     if (_geocoder == null)
     {
         _geocoder = DependencyService.Get <IGeocoder>();
     }
     _geocoder.pegarAsync(latitude, longitude, callback);
 }