void watcher_PositionChanged(object sender, GeoPositionChangedEventArgs<GeoCoordinate> e)
{
_graphicLocation.Geometry = mercator.FromGeographic(new MapPoint(e.Position.Location.Longitude, e.Position.Location.Latitude));
// Use horizontal accuracy (returned in meters) to zoom to the location
if (initialLoad)
{
Envelope rect = new Envelope(
(_graphicLocation.Geometry as MapPoint).X - (e.Position.Location.HorizontalAccuracy / 2),
(_graphicLocation.Geometry as MapPoint).Y - (e.Position.Location.HorizontalAccuracy / 2),
(_graphicLocation.Geometry as MapPoint).X + (e.Position.Location.HorizontalAccuracy / 2),
(_graphicLocation.Geometry as MapPoint).Y + (e.Position.Location.HorizontalAccuracy / 2));
MyMap.ZoomTo(rect.Expand(20));
initialLoad = false;
}
else
{
MyMap.PanTo(_graphicLocation.Geometry);
}
}