How to Get the Desired Accuracy Level of Location using Geolocator in Windows Phone 8?

There are 3 different technologies that help the phone get the current location of the phone. These include Wifi, Cellular and A-GPS. Each one of these technologies has their own advantages and disadvantages in terms of the power consumption and the accuracy level.

The Geolocator class allows the developers to specify at what level of accuracy or technology to be used to find the location in windows phone 8.

The Desired Accuracy can be set via the property Desired Accuracy which takes enum “PostionAccuracy” takes high or Default.

Below is a sample soucrecode demonstrating the usage of Geolocator class to get the current location with different accuracy.

using AbundantCodeWP8.Resources;

using Microsoft.Phone.Controls;

using Microsoft.Phone.Shell;

using System;

using System.Collections.Generic;

using System.Linq;

using System.Net;

using System.Windows;

using System.Windows.Controls;

using System.Windows.Navigation;

using Windows.Devices.Geolocation;

namespace AbundantCodeWP8

{

public partial class MainPage : PhoneApplicationPage

{

public MainPage()

{

InitializeComponent();

}

private void Button_Click_1(object sender, RoutedEventArgs e)

{

GetLocation();

}

async private void GetLocation()

{

var geolocator = new Geolocator();

// This will favour GPS

geolocator.DesiredAccuracy = PositionAccuracy.High;

Geoposition position = await geolocator.GetGeopositionAsync();

Geocoordinate coordinate = position.Coordinate;

string HighAccuracy = "High Accuracy : Latitude = " + coordinate.Latitude + " Longitude = " + coordinate.Longitude;

MessageBox.Show(HighAccuracy + "\n" + HighAccuracy);

}

}

}