Say you have n GPS coordinates how could you work out the central gps point between them?
Depends on what you mean by the central GPS point. You could simply take the average of all the points, as suggested by Stephen - but keep in mind that GPS coordinates are not continuous - this will fail spectacularly around discontinuities such as the poles.
In most cases you'll need to convert to a coordinate system that doesn't have this issue.
You could also look at all the points bounded by it, calculated all the distances to each GPS point, and minimize the sum of the distances to all the GPS points. You'll need to look into great circle calculations for this.
Further, each GPS might have a higher or lower degree of uncertainty, you should take that into account and weight them accordingly.
What exactly are you trying to find out?
This is a 3 dimensional problem. If the points are close enough together, you might be able to pretend it isn't and the error introduced might not be too bad. If you want to do it right, this is one of the magic formulas. Here is some good background material. As to off she shelf software packages for this problem space, I've only heard of Hipparchus, but I'm sure there are many others.
In case it helps anyone now or in the future, here's an algorithm that's valid even for points near the poles (if it's valid at all, i.e. if I haven't made a silly math mistake ;-):
Convert the latitude/longitude coordinates to 3D Cartesian coordinates:
x = cos(lat) * cos(lon) y = cos(lat) * sin(lon) z = sin(lat)
Compute the average of x, the average of y, and the average of z:
x_avg = sum(x) / count(x) y_avg = sum(y) / count(y) z_avg = sum(z) / count(z)
Convert that direction back to latitude and longitude:
lat_avg = arctan(z_avg / sqrt(x_avg ** 2 + y_avg ** 2)) lon_avg = arctan(y_avg / x_avg)