Geolocation: Windows Store Apps JS/HTML and C#/XAML side by side
I’ve gotten quite a few requests in regards to blog posts showcasing JS/HTML and C#/XAML side by side. Seems appropriate as I’m just about to start the step by step guide for JS and HTML Windows Store Apps. I have to admit, JS is not my strongest language, so feel free to correct me if I make any mistakes :) This series will be simple, straight to the point, no fuss. Be aware that this example has no error handling, and shows only a very basic implementation as a step one.
First of all don’t forget to declare that the app will use location, otherwise you will be met by this fine notification:
 
In the app manifest tick this box in capabilities

Comparing of the views
 
Comparing JS and C#
 
C# and XAML
[sourcecode language=“XML”]
[/sourcecode]
[sourcecode language=“csharp”]
using System;
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;
using Windows.Devices.Geolocation;
using Windows.UI.Xaml.Controls;
namespace GeolocationWinRT
{
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
}
    private async void Button\_Click\_1(object sender, Windows.UI.Xaml.RoutedEventArgs e)  
    {  
        var position = await new Geolocator().GetGeopositionAsync();  
        var coordinates = position.Coordinate;  
        notify.Text =  string.Format("Lat: {0} | Long {1} | Accuracy {2}",   
                        coordinates.Latitude,  
                        coordinates.Longitude,  
                        coordinates.Accuracy,  
                        coordinates.Altitude);  
    }  
}  
}
[/sourcecode]
Javascript and HTML
[sourcecode language=“HTML”]
[sourcecode language=“javascript”]
(function () {
“use strict”;
WinJS.Binding.optimizeBindingReferences = true;  
var app = WinJS.Application;  
app.onactivated = function () {  
        document.getElementById("getLocation").addEventListener("click", buttonClickHandler, false);  
};  
app.start();  
function buttonClickHandler() {  
        var loc = new Windows.Devices.Geolocation.Geolocator();  
        loc.getGeopositionAsync().then(function (pos) {  
            document.getElementById('notify').innerHTML =  
                "Lat: " + pos.coordinate.latitude +  
                " | Long " + pos.coordinate.longitude +  
                " | Accuracy " + pos.coordinate.accuracy;  
        });  
    }  
})();
[/sourcecode]
MSDN how to implement Geolocation in JS
MSDN how to implement Geolocation in C#
Comments
Last modified on 2013-01-14
