예제 #1
0
        void MapClicked(object sender, Xamarin.Forms.GoogleMaps.MapClickedEventArgs e)
        {
            var lat = e.Point.Latitude;
            var lng = e.Point.Longitude;

            drawShape(lat, lng);

            //Save new record to PositionList temporary
            PositionsList.Add(new Position(lat, lng));
        }
예제 #2
0
        private void MyMap_MapClicked(object sender, Xamarin.Forms.GoogleMaps.MapClickedEventArgs e)
        {
            Helpers.Settings.LaititudeKeySettings = e.Point.Latitude;
            Helpers.Settings.LongitudeKeySettings = e.Point.Latitude;
            var pin = new Pin
            {
                Type     = PinType.Place,
                Position = e.Point,
                Label    = "مكان رقم 1",
                Address  = "عنوان رقم 1",
            };

            MyMap.Pins.Add(pin);
        }
        async void Handle_MapClicked(object sender, Xamarin.Forms.GoogleMaps.MapClickedEventArgs e)
        {
            PointOfInterest poi = new PointOfInterest();

            poi.Location    = new Microsoft.Azure.Documents.Spatial.Point(e.Point.Longitude, e.Point.Latitude);
            poi.Name        = e.Point.Latitude.ToString() + "-" + e.Point.Longitude.ToString();
            poi.Description = DateTime.Now.ToString("R");

            await mapService.InsertItemAsync(poi);

            Position p = new Position(e.Point.Latitude, e.Point.Longitude);

            Map.Pins.Add(new Pin()
            {
                Position = p, Label = poi.Description
            });
        }
예제 #4
0
        // When the user click on the map
        void MapClicked(object sender, Xamarin.Forms.GoogleMaps.MapClickedEventArgs e)
        {
            // Function for insertDatapage to draw a Shape
            if (DrawShapeAble)
            {
                // Get the location by user touch on the map
                var lat = e.Point.Latitude;
                var lng = e.Point.Longitude;

                //Save new record to PositionList temporary
                InsertDataPage.PositionsList.Add(new Position(lat, lng));

                // Draw the shape on the map
                DrawShape();
            }

            // Nothing happen if DrawShapeAble didnot turn to true, it can make sure user can not draw shape when they enter from Information Page
        }
예제 #5
0
        void MapClicked(object sender, Xamarin.Forms.GoogleMaps.MapClickedEventArgs e)
        {
            if (key)
            {
                var lat = e.Point.Latitude;
                var lng = e.Point.Longitude;

                drawShape(lat, lng);

                // Save new record to PositionList temporary
                PositionsList.Add(new Position(lat, lng));

                //InsertDataPageInstance.drawShape(lat, lng);
                InsertDataPageInstance.PositionsList = PositionsList;
                InsertDataPageInstance.drawAllShape();
                //InsertDataPageInstance.SetPostionslist(PositionsList);
            }
        }
예제 #6
0
        private void Map_MapClicked(object sender, Xamarin.Forms.GoogleMaps.MapClickedEventArgs e)
        {
            AICargando.IsVisible = true;
            AICargando.IsRunning = true;
            var lat       = e.Point.Latitude.ToString("0.000");
            var lng       = e.Point.Longitude.ToString("0.000");
            Pin AquiEstoy = new Pin()
            {
                Type     = PinType.Place,
                Label    = "Mi ubicacion =_=",
                Position = new Position(double.Parse(lat), double.Parse(lng))
            };

            map.Pins.Clear();
            map.Pins.Add(AquiEstoy);

            var pos = new Position(double.Parse(lat), double.Parse(lng));

            MyPosicion           = pos;
            AICargando.IsVisible = false;
            AICargando.IsRunning = false;

            btnContinuar.IsEnabled = true;
        }
예제 #7
0
 // When user clicked the map
 void Handle_MapClicked(object sender, Xamarin.Forms.GoogleMaps.MapClickedEventArgs e)
 {
     // Pass the Geodata to MapShapePage , and then it will shows the target on a bigger map page
     Navigation.PushAsync(new MapShapePage(geodata));
 }
예제 #8
0
        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;
        }
예제 #9
0
 // when the user clicked on the map, it will direct them to a larger map page to draw the shape
 void MapClicked(object sender, Xamarin.Forms.GoogleMaps.MapClickedEventArgs e)
 {
     // Go to the MapShapePage which allows user to click in the map to draw the geometry shape
     Navigation.PushAsync(new MapShapePage(true));
 }
예제 #10
0
        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");
            }
        }
예제 #11
0
 private void OnMapClicked(object sender, Xamarin.Forms.GoogleMaps.MapClickedEventArgs e)
 {
     CreatePin(e.Point);
 }