I'm a programmer, and I'm working on a project that takes a bunch of photos and separates them into groups by their gps coordinates. I have no experience in things like geometric group theory so I'm not even sure if that's the field that would help me with this project, but regardless, I just want to figure out how mathematically (and then programmatically) I can decide when a photo should be in the same group as others.
Obviously the easy way to do it would be to say that if a photo was taken within a certain distance of another photo it should be in the same group. However, realistically, some groups will span a greater geographical area (e.g., photos taken on a boating trip around a lake would all be in one group, but photos in the small area of my house would be in a different group than those taken in the house down the street--even though the geographical span of the lake would surround those of my house and that down the street.
Along with the geographical grouping, I plan to group my pictures through time as well as a way to narrow the groups further (e.g., photos taken at the corner restaurant today in a different group from those taken next week in the same restaurant.
I guess the trick for me that I'm having a hard time coming up with is how to decide how big of a span those groups should be. If i'm looking at a map with a bunch of points, or a timeline with a bunch of points, it's easy to draw lines to group things off. But how to mathematically/programmatically do so? I'm sure it has something to do with how many items there are in a geographical span (e.g., 100 items spread out along a km length of street should be together, but 2 items at either end of the same street with nothing in between should be in two different groups) but I'm still at a loss of where to go from here.
Thanks for your help!