public ResponseHelper GetObtenerColonias(Guid Ciudad, string ubicacion = "", string Nombre = "") { MVDireccion = new VMDireccion(); Respuesta = new ResponseHelper(); MVDireccion.Colonias(Ciudad, ubicacion, Nombre); Respuesta.Data = MVDireccion; Respuesta.Status = true; Respuesta.Message = "Informacion recibida satisfactoriamente"; return(Respuesta); }
protected void MuestraColonia(string id, string tipo) { Guid Ciudad = new Guid(id); switch (tipo) { case "Gestion": DDLDColonia.DataSource = MVDireccion.Colonias(Ciudad); DDLDColonia.DataTextField = "Nombre"; DDLDColonia.DataValueField = "IdColonia"; DDLDColonia.DataBind(); break; default: break; } }
private async void Map_MapClicked(object sender, Xamarin.Forms.GoogleMaps.MapClickedEventArgs e) { try { SLColonias.IsVisible = false; SLMensaje.IsVisible = false; var Latitud = e.Point.Latitude; var Longitud = e.Point.Longitude; Pin AquiEstoy = new Pin() { Type = PinType.Place, Label = "Ubicación", Position = new Position(Latitud, Longitud) }; map.Pins.Clear(); map.Pins.Add(AquiEstoy); var pos = new Position(Latitud, Longitud); var geo = new Geocoder(); var location = new Location(); string content = string.Empty; IEnumerable <Placemark> placemarks = await Geocoding.GetPlacemarksAsync(Latitud, Longitud); IEnumerable <string> addresses = await geo.GetAddressesForPositionAsync(new Position(Latitud, Longitud)); if (location != null) { var oDireccion = new VMDireccion(); foreach (var item in placemarks) { string ciudad = string.Empty; if (!string.IsNullOrEmpty(item.Locality)) { ApiService ApiService = new ApiService("/api/Direccion"); Dictionary <string, string> parameters = new Dictionary <string, string>(); parameters.Add("StrNombreCiudad", item.Locality); parameters.Add("CodigoEstado", item.AdminArea); parameters.Add("CodigoPais", item.CountryCode); parameters.Add("Latitud", item.Location.Latitude.ToString()); parameters.Add("Longitud", item.Location.Longitude.ToString()); var result = await ApiService.GET <VMDireccion>(action : "GetObtenerDireccionConDatosDeGoogle", responseType : ApiService.ResponseType.Object, arguments : parameters); var oReponse = result as ResponseHelper; if (result != null && oReponse.Status != false) { oDireccion = oReponse.Data as VMDireccion; if (oDireccion.ListaDIRECCIONES.Count == 1) { VMDireccion Colonias = new VMDireccion(); DataTable dt = Colonias.Colonias(new Guid(oDireccion.ListaDIRECCIONES[0].CIUDAD)); DireccionesListaColonia.Clear(); MypickerColonia.Items.Clear(); foreach (DataRow items in dt.Rows) { DireccionesListaColonia.Add( new VMDireccion() { ID = new Guid(items["IdColonia"].ToString()), COLONIA = items["Nombre"].ToString() }); MypickerColonia.Items.Add(items["Nombre"].ToString()); } map.MoveToRegion(MapSpan.FromCenterAndRadius(pos, Distance.FromMiles(0.05))); SLColonias.IsVisible = true; odireccion = oDireccion; break; } } else { lblMensaje.Text = "Sin servicio en esta ubicación, elige otra "; SLMensaje.IsVisible = true; // await DisplayAlert("Error extraño", "Ocurrio algo mal al recuperar la ubicación intenta de nuevo por favor", "aceptar"); } } else { lblMensaje.Text = "Sin servicio en esta ubicación, elige otra"; SLMensaje.IsVisible = true; //await DisplayAlert("Zona no disponible", "No existe servicio en el punto marcado", "Aceptar"); } } } } catch (FeatureNotSupportedException) { // Handle not supported on device exception lblMensaje.Text = "Servicios de ubicación no soportados, selecciona una ubicación en el mapa y descubre las colonias disponibles"; SLMensaje.IsVisible = true; //await DisplayAlert("Aviso del sistema", "Los servicios de ubicacion no soportados por el dispositivo", "Aceptar"); } catch (FeatureNotEnabledException) { lblMensaje.Text = "Activa tu ubicación para mostrarte las colonias cercanas a ti, de lo contrario selecciona una ubicación en el mapa y descubre las colonias disponibles"; SLMensaje.IsVisible = true; //await DisplayAlert("Ubicacion no activa", "Activa el GPS para obtener tu ubicacion", "Aceptar"); } catch (PermissionException) { // Handle permission exception lblMensaje.Text = "Activa los permisos de ubicación para poder mostrarte las colonias cercanas a ti, de lo contrario selecciona una ubicación en el mapa y descubre las colonias disponibles"; SLMensaje.IsVisible = true; //await DisplayAlert("Aviso", "Activa los permisos de ubicacion para continuar", "Aceptar"); } catch (Exception) { // Unable to get location lblMensaje.Text = "Servicio no disponible en esta zona"; SLMensaje.IsVisible = true; //await DisplayAlert("Aviso", "No se puede obtener la ubicacion, intenta otra", "Aceptar"); } SLCargando.IsVisible = false; acLoading.IsRunning = false; acLoading.IsVisible = false; SLDatos.IsVisible = true; }
public async void CargaDesdeMenu() { try { SLCargando.IsVisible = true; SLDatos.IsVisible = false; acLoading.IsRunning = true; acLoading.IsVisible = true; double Latitud; double Longitud; var location = new Location(); location = await Geolocation.GetLocationAsync(); if (location != null) { Latitud = location.Latitude; Longitud = location.Longitude; var geo = new Geocoder(); IEnumerable <Placemark> placemarks = null; placemarks = await Geocoding.GetPlacemarksAsync(Latitud, Longitud); var oDireccion = new VMDireccion(); foreach (var item in placemarks) { ApiService ApiService = new ApiService("/api/Direccion"); Dictionary <string, string> parameters = new Dictionary <string, string>(); parameters.Add("StrNombreCiudad", item.Locality); parameters.Add("CodigoEstado", item.AdminArea); parameters.Add("CodigoPais", item.CountryCode); parameters.Add("Latitud", item.Location.Latitude.ToString()); parameters.Add("Longitud", item.Location.Longitude.ToString()); var result = await ApiService.GET <VMDireccion>(action : "GetObtenerDireccionConDatosDeGoogle", responseType : ApiService.ResponseType.Object, arguments : parameters); var oReponse = result as ResponseHelper; if (result != null && oReponse.Status != false) { oDireccion = oReponse.Data as VMDireccion; if (oDireccion.ListaDIRECCIONES.Count == 1) { App.UidEstadoABuscar = oDireccion.ListaDIRECCIONES[0].ESTADO; break; } } else { //var objeto = new MasterMenuMenuItem { Id = 1, Title = "Busqueda", TargetType = typeof(HomePage), UrlResource = "IconoHomeMenu" }; //var Page = (Page)Activator.CreateInstance(objeto.TargetType); //App app = Application.Current as App; //App.Navegacion = Page.GetType().Name; //MasterDetailPage md = (MasterDetailPage)app.MainPage; //md.Detail = new NavigationPage(Page); } } VMDireccion Colonias = new VMDireccion(); var dt = Colonias.Colonias(new Guid(oDireccion.ListaDIRECCIONES[0].CIUDAD)); DireccionesListaColonia.Clear(); foreach (DataRow item in dt.Rows) { DireccionesListaColonia.Add( new VMDireccion() { ID = new Guid(item["IdColonia"].ToString()), COLONIA = item["Nombre"].ToString() }); MypickerColonia.Items.Add(item["Nombre"].ToString()); } Pin AquiEstoy = new Pin() { Type = PinType.Place, Label = "Ubicación actual", Position = new Position(Latitud, Longitud) }; map.Pins.Clear(); map.Pins.Add(AquiEstoy); var pos = new Position(Latitud, Longitud); // map.MoveToRegion(MapSpan.FromCenterAndRadius(pos, Distance.FromMeters(100))); await map.MoveCamera(CameraUpdateFactory.NewCameraPosition(new CameraPosition(pos, 15))); odireccion = oDireccion; SLColonias.IsVisible = true; } } catch (FeatureNotSupportedException e) { // Handle not supported on device exception lblMensaje.Text = "Servicios de ubicación no soportados, selecciona una ubicación en el mapa y descubre las colonias disponibles"; //await map.MoveCamera(CameraUpdateFactory.NewCameraPosition(new CameraPosition(new Position(20.6357046, -87.0757835), 15))); SLMensaje.IsVisible = true; //await DisplayAlert("Aviso del sistema", "Los servicios de ubicacion no soportados por el dispositivo", "Aceptar"); } catch (FeatureNotEnabledException e) { lblMensaje.Text = "Activa tu ubicación para mostrarte las colonias cercanas a ti, de lo contrario selecciona una ubicación en el mapa y descubre las colonias disponibles"; //await map.MoveCamera(CameraUpdateFactory.NewCameraPosition(new CameraPosition(new Position(20.6357046,-87.0757835), 15))); SLMensaje.IsVisible = true; //await DisplayAlert("Ubicacion no activa", "Activa el GPS para obtener tu ubicacion", "Aceptar"); } catch (PermissionException e) { // Handle permission exception lblMensaje.Text = "Activa los permisos de ubicación para poder mostrarte las colonias cercanas a ti, de lo contrario selecciona una ubicación en el mapa y descubre las colonias disponibles"; //await map.MoveCamera(CameraUpdateFactory.NewCameraPosition(new CameraPosition(new Position(20.6357046, -87.0757835), 15))); SLMensaje.IsVisible = true; //await DisplayAlert("Aviso", "Activa los permisos de ubicacion para continuar", "Aceptar"); } catch (Exception e) { // Unable to get location lblMensaje.Text = "Servicio no disponible en esta zona"; SLMensaje.IsVisible = true; //await DisplayAlert("Aviso", "No se puede obtener la ubicacion, intenta otra", "Aceptar"); } SLCargando.IsVisible = false; acLoading.IsRunning = false; acLoading.IsVisible = false; SLDatos.IsVisible = true; }
private async void map_MapClicked(object sender, Xamarin.Forms.GoogleMaps.MapClickedEventArgs e) { try { var Latitud = e.Point.Latitude; var Longitud = e.Point.Longitude; Pin AquiEstoy = new Pin() { Type = PinType.Place, Label = "Nueva ubicación", Position = new Position(Latitud, Longitud) }; map.Pins.Clear(); map.Pins.Add(AquiEstoy); var pos = new Position(Latitud, Longitud); map.MoveToRegion(MapSpan.FromCenterAndRadius(pos, Distance.FromMeters(500))); var geo = new Geocoder(); var location = new Location(); string content = string.Empty; IEnumerable <Placemark> placemarks = await Geocoding.GetPlacemarksAsync(Latitud, Longitud); IEnumerable <string> addresses = await geo.GetAddressesForPositionAsync(new Position(Latitud, Longitud)); if (location != null) { foreach (var item in placemarks) { using (HttpClient _webApi = new HttpClient()) { string ciudad = string.Empty; if (!string.IsNullOrEmpty(item.Locality)) { ciudad = item.Locality; string _URL = "" + Helpers.Settings.sitio + "/api/Direccion/GetObtenerDireccionConDatosDeGoogle?StrNombreCiudad=" + ciudad + "&Latitud=" + item.Location.Latitude + "&Longitud=" + item.Location.Longitude + ""; await Task.Run(async() => { content = await _webApi.GetStringAsync(_URL); }); string obj = JsonConvert.DeserializeObject <ResponseHelper>(content).Data.ToString(); oDireccionModificada = JsonConvert.DeserializeObject <VMDireccion>(obj); if (oDireccionModificada.ListaDIRECCIONES.Count == 1) { oDireccionModificada.ListaDIRECCIONES[0].Longitud = item.Location.Longitude.ToString(); oDireccionModificada.ListaDIRECCIONES[0].Latitud = item.Location.Latitude.ToString(); MypickerPais.SelectedIndex = 1; int Estado = new int(); for (int i = 0; i < DireccionesListaEstados.Count; i++) { if (DireccionesListaEstados[i].ID == new Guid(oDireccionModificada.ListaDIRECCIONES[0].ESTADO.ToUpper())) { Estado = i; } } MypickerEstado.SelectedIndex = Estado; int Municipio = new int(); for (int i = 0; i < DireccionesListaMunicipios.Count; i++) { if (DireccionesListaMunicipios[i].ID == new Guid(oDireccionModificada.ListaDIRECCIONES[0].MUNICIPIO.ToUpper())) { Municipio = i; } } MypickerMunicipio.SelectedIndex = Municipio; int Ciudad = new int(); for (int i = 0; i < DireccionesListaCiudad.Count; i++) { if (DireccionesListaCiudad[i].ID == new Guid(oDireccionModificada.ListaDIRECCIONES[0].CIUDAD.ToUpper())) { Ciudad = i; } } MypickerCiudad.SelectedIndex = Ciudad; VMDireccion Colonias = new VMDireccion(); DataTable dt = Colonias.Colonias(new Guid(oDireccionModificada.ListaDIRECCIONES[0].CIUDAD)); DireccionesListaColonia.Clear(); MypickerColonia.Items.Clear(); foreach (DataRow items in dt.Rows) { DireccionesListaColonia.Add( new VMDireccion() { ID = new Guid(items["IdColonia"].ToString()), COLONIA = items["Nombre"].ToString() }); MypickerColonia.Items.Add(items["Nombre"].ToString()); } txtCalle.Text = oDireccionModificada.ListaDIRECCIONES[0].CALLE0; txtEntreCalle.Text = oDireccionModificada.ListaDIRECCIONES[0].CALLE1; txtYCalle.Text = oDireccionModificada.ListaDIRECCIONES[0].CALLE2; txtReferencia.Text = oDireccionModificada.ListaDIRECCIONES[0].REFERENCIA; txtIdentificador.Text = oDireccionModificada.ListaDIRECCIONES[0].IDENTIFICADOR; txtManzana.Text = oDireccionModificada.ListaDIRECCIONES[0].MANZANA; txtLote.Text = oDireccionModificada.ListaDIRECCIONES[0].LOTE; txtCodigoPostal.Text = oDireccionModificada.ListaDIRECCIONES[0].CodigoPostal; } } else { await DisplayAlert("Zona no disponible", "No existe servicio en el punto marcado", "Aceptar"); } } } } } catch (FeatureNotSupportedException) { // Handle not supported on device exception await DisplayAlert("Aviso del sistema", "Los servicios de ubicacion no soportados por el dispositivo", "Aceptar"); } catch (FeatureNotEnabledException) { await DisplayAlert("Ubicacion no activa", "Activa el GPS para obtener tu ubicacion", "Aceptar"); } catch (PermissionException) { // Handle permission exception await DisplayAlert("Aviso", "Activa los permisos de ubicacion para continuar", "Aceptar"); } catch (Exception) { // Unable to get location await DisplayAlert("Aviso", "No se puede obtener la ubicacion", "Aceptar"); } }