Titanium Community Questions & Answer Archive

We felt that 6+ years of knowledge should not die so this is the Titanium Community Questions & Answer Archive

"Near me" functionality?

I have an application with a bunch of "geolocated" messages, I would like to display only messages "near me" and not all of them. Does anyone have an example to share?

Thanks :)

— asked April 25th 2010 by Raul Riera
  • geolocation
0 Comments

3 Answers

  • Accepted Answer

    Hi,

    You need to determine how close things are to you, which requires you to GeoLoc everything… My current solution uses a server side SQL query which is based upon http://code.google.com/apis/maps/articles/phpsqlsearch_v3.html

    Here's the SQL statement that will find the closest 20 locations that are within a radius of 25 miles to the 37, -122 coordinate. It calculates the distance based on the latitude/longitude of that row and the target latitude/longitude, and then asks for only rows where the distance value is less than 25, orders the whole query by distance, and limits it to 20 results. To search by kilometers instead of miles, replace 3959 with 6371.

    SELECT id, ( 3959 * acos( cos( radians(37) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(-122) ) + sin( radians(37) ) * sin( radians( lat ) ) ) ) AS distance FROM markers HAVING distance < 25 ORDER BY distance LIMIT 0 , 20;
    

    The alternative is to extend the Titanium Framework with your own module. I have one which I have not finished testing yet, but it appears to work ok. I lost interest when I discovered that I wasnt able to then take those and create a routemap without some significant extra coding.

    Hope this helps.

    — answered April 25th 2010 by Gregor Munro
    permalink
    0 Comments
  • That was like a perfect answer, thank you!

    — answered April 25th 2010 by Raul Riera
    permalink
    0 Comments
The ownership of individual contributions to this community generated content is retained by the authors of their contributions.
All trademarks remain the property of the respective owner.