Hi,
At this moment I have a section of my app on a timer to get current location. How can I pull this when the app loads to prevent having to wait several seconds to make sure it doesn’t return an error?
Hi,
At this moment I have a section of my app on a timer to get current location. How can I pull this when the app loads to prevent having to wait several seconds to make sure it doesn’t return an error?
o.O I do not understand your question, but I know A LOT ABOUT GPS so I hope I can help you as soon as I understand.
Whenever a user goes to a section that pulls a database from parse based on location if I don’t use a timer to hold off on running getlocation(), then it returns an error and fails. I was wondering if I could call getlocation() early to have it ready for when it goes to this lua file. Or, if I can have it connect and run a loading screen until it grabs the user location. Instead of setting a timer I tried having a runtime listener and removing it once the function starts, but I don’t think it was removing properly because the map kept centering on the users location and kept pulling data. Would like to have a little loading icon to let the user know the app is actually doing something instead of them staring at a blank section until the data is pulled. Pulling from the database requires I have the lat/long first as well.
Code layout looks like this:
startfunction (getlocation -> grab database -> place markers)
timer (startfunction)
Also, how can I calculate the distance between two points. Don’t need to sort since the database is retrieved already sorted and placed in a tableview, but need the distance in miles. I found documents for calculating meters and sorting, which you posted, but need miles.
Nevermind about the miles section.
Here is what I have for getting the distance. I am pulling the marker geopoints from parse and printing information into a tableview. Parse returns them in order so I just had to add the formula to calc the distance to add that to the row in the table.
[lua]centerPoint = {latitude = currentLatitude, longitude = currentLongitude}
function distance(from, to)
local radius = 3440.065
local dLat = math.rad(from.latitude - to.latitude)
local dLon = math.rad(from.longitude - to.longitude)
local lat1 = math.rad(to.latitude)
local lat2 = math.rad(from.latitude)
local a = math.sin(dLat/2) * math.sin(dLat/2) + math.sin(dLon/2) * math.sin(dLon/2) * math.cos(lat1) * math.cos(lat2)
local circle = 2*math.atan2(math.sqrt(a), math.sqrt(1-a))
local distance = radius * circle
return distance
end
–In the for loop for parse geopoints
local marker = {latitude = lat, longitude = long}
local calculateddistance = distance(centerPoint, marker)[/lua]
Are you running the latest version of Corona? (Old versions don’t have a default GPS coordinates support)
What error are you getting? (from event.error)
Also, be sure to first get the GPS coordinates before you pull any data from a database.
Will this help you?
If I don’t have a timer and instantly pull I get ‘location unknown’ so I have a 5 second timer running to give the page time to pull location before running.
I’ll give this a shot: http://code.coronalabs.com/code/update-gps-every-x-seconds
o.O I do not understand your question, but I know A LOT ABOUT GPS so I hope I can help you as soon as I understand.
Whenever a user goes to a section that pulls a database from parse based on location if I don’t use a timer to hold off on running getlocation(), then it returns an error and fails. I was wondering if I could call getlocation() early to have it ready for when it goes to this lua file. Or, if I can have it connect and run a loading screen until it grabs the user location. Instead of setting a timer I tried having a runtime listener and removing it once the function starts, but I don’t think it was removing properly because the map kept centering on the users location and kept pulling data. Would like to have a little loading icon to let the user know the app is actually doing something instead of them staring at a blank section until the data is pulled. Pulling from the database requires I have the lat/long first as well.
Code layout looks like this:
startfunction (getlocation -> grab database -> place markers)
timer (startfunction)
Also, how can I calculate the distance between two points. Don’t need to sort since the database is retrieved already sorted and placed in a tableview, but need the distance in miles. I found documents for calculating meters and sorting, which you posted, but need miles.
Nevermind about the miles section.
Here is what I have for getting the distance. I am pulling the marker geopoints from parse and printing information into a tableview. Parse returns them in order so I just had to add the formula to calc the distance to add that to the row in the table.
[lua]centerPoint = {latitude = currentLatitude, longitude = currentLongitude}
function distance(from, to)
local radius = 3440.065
local dLat = math.rad(from.latitude - to.latitude)
local dLon = math.rad(from.longitude - to.longitude)
local lat1 = math.rad(to.latitude)
local lat2 = math.rad(from.latitude)
local a = math.sin(dLat/2) * math.sin(dLat/2) + math.sin(dLon/2) * math.sin(dLon/2) * math.cos(lat1) * math.cos(lat2)
local circle = 2*math.atan2(math.sqrt(a), math.sqrt(1-a))
local distance = radius * circle
return distance
end
–In the for loop for parse geopoints
local marker = {latitude = lat, longitude = long}
local calculateddistance = distance(centerPoint, marker)[/lua]
Are you running the latest version of Corona? (Old versions don’t have a default GPS coordinates support)
What error are you getting? (from event.error)
Also, be sure to first get the GPS coordinates before you pull any data from a database.
Will this help you?
If I don’t have a timer and instantly pull I get ‘location unknown’ so I have a 5 second timer running to give the page time to pull location before running.
I’ll give this a shot: http://code.coronalabs.com/code/update-gps-every-x-seconds