In this article we are going to see how to get the current location of the Windows Phone device in your Windows phone application development. To use the location services we need to use the GeoCoordinateWatcher class which has list of properties that can be used to get the information about the device basically the latitude, longitude, altitude etc. Let us see the steps on how to achieve this task in our Windows Phone application development. Open Visual Studio 2012 IDE and create a new Windows Phone project with a valid project name as shown in the screen below. [more]
Clicking on OK will create the project and the solution with the list of default files and folders that are required to run the application. It will take some time to create these files based on your system configuration, so once everything is ready we can see the Visual Studio IDE with the project as shown in the screen below.
Add some controls to trigger the event to create an instance of the GeoCoordinateWatcher class and show the latitude and longitude information of the device. Basically we will add a button control and few textblocks to show the details as shown in the screen below.
XAML Code:
[code:c#]<StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
<TextBlock x:Name="ApplicationTitle" Text="F5debug How to Series" Style="{StaticResource PhoneTextNormalStyle}"/>
<TextBlock x:Name="PageTitle" Text="Photo Chooser" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
</StackPanel>
<!–ContentPanel – place additional content here–>
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<Button Content="Get Current Location" Height="72" HorizontalAlignment="Left" Margin="9,6,0,0" Name="button1" VerticalAlignment="Top" Width="441" Click="button1_Click" />
<TextBlock Height="62" HorizontalAlignment="Left" TextWrapping="Wrap" Margin="29,108,0,0" Name="txtLat" VerticalAlignment="Top" Width="407" />
<TextBlock Height="62" HorizontalAlignment="Left" TextWrapping="Wrap" Margin="29,175,0,0" x:Name="txtLong" VerticalAlignment="Top" Width="407" />
</Grid>
In the button click event create an instance of the GeoCoordinateWatcher class and we can trigger the event on status changed or Position changed events to get the information of the Latitude and Longitude of the device location as shown in the code below.
C# Code:
[code:c#]using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Navigation;
using Microsoft.Phone.Controls;
using Microsoft.Phone.Shell;
using F5debugHowto68.Resources;
using System.Device.Location;
namespace F5debugHowto68
{
public partial class MainPage : PhoneApplicationPage
{
GeoCoordinateWatcher gcw;
// Constructor
public MainPage()
{
InitializeComponent();
}
private void button1_Click(object sender, RoutedEventArgs e)
{
gcw = new GeoCoordinateWatcher(GeoPositionAccuracy.Default);
gcw.PositionChanged += new EventHandler<GeoPositionChangedEventArgs<GeoCoordinate>>(gcw_PositionChanged);
gcw.Start();
}
void gcw_PositionChanged(object sender, GeoPositionChangedEventArgs<GeoCoordinate> e)
{
txtLat.Text = "Latitude = " + e.Position.Location.Latitude.ToString();
txtLong.Text = "Longitude = " + e.Position.Location.Longitude.ToString();
}
}
}
Now we are done with the code, just run the application by pressing F5 directly from the keyboard or we can use the Build and execute the project option from the tool bar to run the application. Once the Build is successful we can see the Windows Phone emulator with the application and the expected outputs as shown in the screen below.
No Comments
you're having problems, advanced users can also download iPhone IPSW directly from Apple. This is not recommended for novice computer