As all of us knows, location-aware services/applications are becoming more popular and widespread everyday. Especially, mobile devices play a very important role in that area. So we all, in some ways, need to access the location of a specific user of our app. Most of the mobile devices provides some hardware and APIs for letting application developers to access location services of the device. iPhone has a built-in GPS module and a framework is provided in Cocoa Touch called CoreLocation that is used for accessing location services of the device.
CoreLocation can be used to obtain the latitude and longitude parameters of the location of the device. But sometimes we need some more detailed information about that specific location. Country, city, state, street, may be postal code etc.. It depends on the application. That is something iPhone or iOS platform does not provide directly. However, we can use a web service such as Yahoo! PlaceFinder to access detailed information about a location of which we know the latitude and longitude parameters.
What SSLocationManager does is as follows:
- Ask CoreLocation services to determine current location of the device.
- Get current position in latitude and longitude from CoreLocation.
- Call Yahoo! PlaceFinder web service to get detailed information about the location specified with its latitude and longitude.
- Notify the application via SSLocationManagerDelegate and supply the detailed location data.
Here is a basic diagram that shows the overall structure: