/// <summary> /// Gets the last valid location information. /// </summary> /// <param name="newLocation"></param> /// <param name="useFineLocation"></param> /// <returns></returns> public static MLResult GetLocation(out MLLocation.Location newLocation, bool useFineLocation = false) { MLResult result = useFineLocation ? MLLocation.GetLastFineLocation(out MLLocation.Location lastLocation) : MLLocation.GetLastCoarseLocation(out lastLocation); newLocation = lastLocation; return(result); }
/** * Returns the GPS location from the paired CompanionApp phone/device. */ public async Task <LocationReply> GetLocation() { Logger.D(TAG, "GetLocation()"); if (!MLLocation.IsStarted) { Logger.D(TAG, "Please start MagicLeap's MLLocation object from a GameObject/MonoBehavior before using this call."); // Hm, Debug: return something. Logger.D(TAG, "FIXME: Returning a hard coded value..."); return(new LocationReply { longitude = -121.955238, latitude = 37.354107 }); } MLLocation.Location locData = new MLLocation.Location(); MLResult result = MLLocation.GetLastFineLocation(out locData); Logger.D(TAG, "MLLocation result: " + result); // Ensure location is allowed. if (!result.Equals(MLResult.Create(MLResult.Code.Ok))) { // Try coarse instead: result = MLLocation.GetLastCoarseLocation(out locData); if (!result.Equals(MLResult.Create(MLResult.Code.Ok))) { Logger.D(TAG, "Empty location returning"); return(new LocationReply { longitude = 0f, latitude = 0f }); } } Logger.D(TAG, "New location returning: {" + locData.Longitude + ", " + locData.Latitude + "}"); return(new LocationReply { longitude = locData.Longitude, latitude = locData.Latitude }); }