ArcGISWindowsPhoneSDK.ShowGPSLocation.watcher_PositionChanged C# (CSharp) Method

watcher_PositionChanged() private method

private watcher_PositionChanged ( object sender, GeoPositionChangedEventArgs e ) : void
sender object
e GeoPositionChangedEventArgs
return void
        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);
            }
        }