Because it's all just API's?

The app just calls the GeoLocation API on the device, pings that off to a server and the server responds with services available in <distance>