I'm designing an algorithm to work with sets of coordinates. Each user has a list of coordinates (latitude and longitude) and adds a new pair to the list every time he/she performs an action. Most of the times, points will be very concentrated, but it can happen that the data has some disperse points or that they are concentrated around two different points. My clusters should be small actually, it's extremely unlikely that two of these clusters' centers are within, let's say, 500m.
My objective is to find the strongest cluster for each user, with strongest meaning the one with the most points in it.
My question is, what do you think it's the best approach when data is spaced like this? I'm thinking about k-means or k-medoids, but there might be other algorithms that suit better this data.
One of my main concerns is the facts that most of the disperse points shouldn't belong to any cluster nor consitute a cluster themselves, so I'm not sure how efficiently these two algorithms handle these outliers.