none
GeoLocalizacion mas precisa? Windows phone 8.1 RRS feed

  • Pregunta

  • Hola a todos, estoy trabajando con la geolocalizacion de windows 8.1 pero mi código solo me muestra los primeros 2 decimales de las coordenadas actuales y después solo ceros. Ejemplo: Si la coordenada es "51.12" la aplicación solo me muestra "51.00" ¿Hay alguna forma de que muestre la coordenada completa? Necesito que sea lo mas preciso posible . Por cierto, estoy utilizando el emulador para testear todo esto, nose si eso influye en algo

    Mi codigo:

    namespace LocationTracker
    {
        /// <summary>
        /// An empty page that can be used on its own or navigated to within a Frame.
        /// </summary>
        public sealed partial class MainPage : Page
        {
            bool shouldSend = false;
            DispatcherTimer timer = new DispatcherTimer();
    
            public MainPage()
            {
                this.InitializeComponent();
                this.NavigationCacheMode = NavigationCacheMode.Required;
                
            }
    
            private async Task GetLocation()
            {
                Geolocator geolocator = new Geolocator();
                geolocator.DesiredAccuracy = Windows.Devices.Geolocation.PositionAccuracy.High;
    
                try
                {
                    Geoposition geoposition = await geolocator.GetGeopositionAsync(
                        maximumAge: TimeSpan.FromSeconds(1),
                        timeout: TimeSpan.FromSeconds(10)
                        );
    
                    LatitudeTxt.Text  = geoposition.Coordinate.Latitude.ToString("0.00");
                    LongitudeTxt.Text = geoposition.Coordinate.Longitude.ToString("0.00");
                    LatLonTxt.Text = LatitudeTxt.Text + ", " + LongitudeTxt.Text;                
                    var speed = geoposition.Coordinate.Speed.ToString();
                    ProcessingTxt.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
    
    
                    string result = "";
    
                    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(
                        "http://proyecto-busways.rhcloud.com/colectivos?p=lta123&l=80&d=moyano&lat=" + LatitudeTxt.Text + "&lon=" + LongitudeTxt.Text + "&v=" + speed + "&Accion=Agregar");
                    request.ContinueTimeout = 4000;
    
                    request.Credentials = CredentialCache.DefaultNetworkCredentials;
    
                    using (HttpWebResponse response = (HttpWebResponse)await request.GetResponseAsync())
                    {
                        if (response.StatusCode == HttpStatusCode.OK)
                        {
                            //To obtain response body
                            using (Stream streamResponse = response.GetResponseStream())
                            {
                                using (StreamReader streamRead = new StreamReader(streamResponse, Encoding.UTF8))
                                {
                                    result = streamRead.ReadToEnd();
                                }
                            }
                        }
                    }
    
                    
                }
                catch (Exception ex)
                {
                    ProcessingTxt.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
                    if ((uint)ex.HResult == 0x80004004)
                    {
                        // the application does not have the right capability or the location master switch is off
                     }
                    //else
                    {
                        // something else happened acquring the location
                    }
                }
            
            }
    
            /// <summary>
            /// Invoked when this page is about to be displayed in a Frame.
            /// </summary>
            /// <param name="e">Event data that describes how this page was reached.
            /// This parameter is typically used to configure the page.</param>
            protected override void OnNavigatedTo(NavigationEventArgs e)
            {
                // TODO: Prepare page for display here.
    
                // TODO: If your application contains multiple pages, ensure that you are
                // handling the hardware Back button by registering for the
                // Windows.Phone.UI.Input.HardwareButtons.BackPressed event.
                // If you are using the NavigationHelper provided by some templates,
                // this event is handled for you.
            }
    
            private async void StartSending_Click(object sender, RoutedEventArgs e)
            {
                await GetLocation();
    
                timer.Tick += timer_Tick;
                timer.Interval = new TimeSpan(0, 0, 5);
                timer.Start();
                StartSending.IsEnabled = false;
            }
    
            async void timer_Tick(object sender, object e)
            {
                ProcessingTxt.Visibility = Windows.UI.Xaml.Visibility.Visible;
                await GetLocation();
    
            }
    
            private void EndSending_Click(object sender, RoutedEventArgs e)
            {
                timer.Tick -= timer_Tick;
                timer.Stop();
                StartSending.IsEnabled = true;
                EndSending.IsEnabled = false;
            }
    
            private void GPS_Tapped(object sender, TappedRoutedEventArgs e)
            {
                Frame.Navigate(typeof(ContactPage));
            }
        }

    Desde ya, muchas gracias

    martes, 17 de febrero de 2015 19:44

Respuestas

  • Hola Gianni11,

    Gracias por consultar en los foros. Te comparto algunas conversaciones de MSDN en donde se habla de este tema, empleando la formula del Haversine, espero te sean de ayuda.

    Ayuda con geolocalizacion.

    Calculating distances from latitude and longitude

    Saludos,

    Karen.

    _________________


    Por favor, recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema.

    Es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft. Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.

    miércoles, 18 de febrero de 2015 22:07
    Moderador

Todas las respuestas

  • Alguien sabe sobre el tema?
    miércoles, 18 de febrero de 2015 19:31
  • Hola Gianni11,

    Gracias por consultar en los foros. Te comparto algunas conversaciones de MSDN en donde se habla de este tema, empleando la formula del Haversine, espero te sean de ayuda.

    Ayuda con geolocalizacion.

    Calculating distances from latitude and longitude

    Saludos,

    Karen.

    _________________


    Por favor, recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema.

    Es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft. Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.

    miércoles, 18 de febrero de 2015 22:07
    Moderador