Yes, it is possible to use iPhone's location services, via the Display Actions/Get Geolocation template. This should work in both native and web application mode, prompting the user to allow the application to access the location.
Taking a picture is also possible, via the iPhone/Take Picture template, which will only work in native mode - in web-application mode you will be prompted to use a pre-defined sample image instead.
Following are screenshots demonstrating the client and server side aspects of the functionality you need, and since the client side is native, they are implemented in 2 separate applications (both attached).
Other than the Take Picture and Get Geolocation templates, I'd like to call your attention to the special method by which the callable service is called, using a Service having the same triggers as the actual callable service (Pic and Loc in this case), with no modeling inside (the modeling is in the server-side application), and with a special <URL>, which should point to the callable service (you'll need to change the localhost and possibly the port number as well to point at the correct host and port running your server side application.
Note that following your inquiries in the matter, we've discovered a bug in the way data structures (such as the location) are passed to the server in certain instances, so this demo requires the next (latest) version we should be releasing in the next couple of days, 1.3.45 - see Getting Updates to learn more on platform updates.
Server side: PicLocServer.tersus
The callable service side is quiet straightforward, receiving the picture (as output by the Take Picture in the format of a textual data url, using Base64 encoding), and location and saving to the database.
For best results, use the Firefox browser..