protected override void OnNavigatedTo(NavigationEventArgs e) { base.OnNavigatedTo(e); _locationTracker = Mvx.Resolve <ILocationTrackerService>(); _locationTracker.Subscribe(); }
protected override void OnNavigatedTo(NavigationEventArgs e) { base.OnNavigatedTo(e); _locationTracker = Mvx.Resolve <ILocationTrackerService>(); _locationTracker.Subscribe(); var messenger = Mvx.Resolve <IMvxMessenger>(); _locationToken = messenger.Subscribe <LocationMessage>(message => { if (!message.IsError) { var coords = new GeoCoordinate(message.Lat, message.Lng) { HorizontalAccuracy = message.Accuracy ?? 0 }; InitializeUserPositionIfNeeded(coords); ShowLocation(coords); AddressPushPin.Content = message.Address; AddressPushPin.GeoCoordinate = coords; if (message.Accuracy.HasValue) { var coordinates = GeoHelper.CalculatePolygon(coords.Latitude, coords.Longitude, coords.HorizontalAccuracy).Select(c => c.ToNative()); var geoCoordsCollection = new GeoCoordinateCollection(); foreach (var coord in coordinates) { geoCoordsCollection.Add(coord); } _mapPolygon.Path = geoCoordsCollection; } } }); }