private void CurrentPositionSuccess(Position obj)
	    {
	        string message = string.Format("GetCurrentPosition location: {0} {1}-{2} [{3}]",obj.Timestamp, obj.Coords.Latitude,
	                                       obj.Coords.Longitude, obj.Coords.Accuracy);
            Android.Util.Log.Info("MonoMobile.Extensions",message);
	        locationTextView.Text = message;
	    }
        private void FireEvent(Action<Position> callback)
        {
            Thread.Sleep(25);

            Deployment.Current.Dispatcher.BeginInvoke(() =>
            {
                var position = new Position();
                position.Coords.Latitude = LocationToReturn.Latitude;
                position.Coords.Longitude = LocationToReturn.Longitude;
                callback(position);
            });
        }
        private void FireEvent(Action<Position> callback)
        {
            Thread.Sleep(25);

            _dispatcher.Invoke(() =>
                          {
                              var position = new Position();
                              position.Coords.Latitude = _currentLocation.Latitude;
                              position.Coords.Longitude = _currentLocation.Longitude;
                              callback(position);
                          });
        }
        private void SendLocation(Location lastKnownLocation)
        {
            Position pos=new Position();
            pos.Timestamp = DateTime.Now;
            if (lastKnownLocation != null)
            {
                pos.Coords = new Coordinates
                                 {
                                     Accuracy = lastKnownLocation.Accuracy,
                                     Heading = lastKnownLocation.Bearing,
                                     Altitude = lastKnownLocation.Altitude,
                                     AltitudeAccuracy = lastKnownLocation.Accuracy,
                                     Latitude = lastKnownLocation.Latitude,
                                     Longitude = lastKnownLocation.Longitude,
                                     Speed = lastKnownLocation.Speed
                                 };

            }
            _success(pos);
            StopTiming();
        }
        private static Position CreatePosition(GeoCoordinate coordinate)
        {
            var position = new Position();
            var coords = position.Coords;

            coords.Altitude = coordinate.Altitude;
            coords.Latitude = coordinate.Latitude;
            coords.Longitude = coordinate.Longitude;
            coords.Speed = coordinate.Speed;
            coords.Accuracy = coordinate.HorizontalAccuracy;
            coords.AltitudeAccuracy = coordinate.VerticalAccuracy;
            return position;
        }