private void My_OnLocationChange(Windows.Devices.Geolocation.Geoposition obj) { var msg = BuddyRunInfo.FromGeoposition(obj, DateTime.UtcNow); msg.SourceUserId = eBuddyApp.Services.Azure.MobileService.Instance.UserData.FacebookId; msg.DestUserId = "sid:af7d6ae6d4abbcb585bc46ab45d42c05"; //todo change to real usrid RunnersHubProxy.Invoke("SendLocation", msg); }
private async void OnLocationMessage(BuddyRunInfo obj) { OnBuddyLocationUpdate?.Invoke(obj.GetGeoPoint()); _routeFinderEvent.Reset(); _buddyWaypoints.Add(obj.GetGeoPoint()); if (_buddyWaypoints.Count > 1) { var routeFind = await MapRouteFinder.GetWalkingRouteFromWaypointsAsync(_buddyWaypoints); if (routeFind.Status == MapRouteFinderStatus.Success) { BuddyRoute = routeFind.Route; double distanceDiff = BuddyRoute.LengthInMeters - BuddyData.Distance; BuddyData.Distance = BuddyRoute.LengthInMeters; BuddyData.Speed = (distanceDiff / 1000) / ((BuddyData.Time.Subtract(DateTime.Now.TimeOfDay)).TotalSeconds / 60.0 / 60.0); BuddyData.Time = DateTime.Now - BuddyData.Date; } } _routeFinderEvent.Set(); }