SpyMeSat is a clever US$1.99 iOS app from Orbit Logic Incorporated that lets you know when you are in range of an imaging satellite that might be snapping a picture of your location. You can see details on what imaging satellite is overhead, plus a map that updates a satellite's location in real time and a picture of what it looks like.
You can configure alerts to let you know when the satellite is nearby. The details of what a particular satellite can see are quite interesting, with some of the satellites having resolution of about one meter. That makes for a pretty detailed view, though I suspect classified satellites can do even better.
Using the app is easy enough, but when I launched it, my position defaulted to the East Coast, when in fact I am in Arizona. I had to go to the settings and let the GPS on my iPhone tell the app where I was. It would be better if the app automatically picked my location on first startup, and it looks like that feature will be in an upcoming version of the app. I'd also like to see the ability to save a few different locations, and also see the field of view of the satellite on the map.
Still, SpyMeSat is an intriguing application. I think it would also be useful for trying to sight some of these satellites at night, since the orbital pass position is so precise.
SpyMeSat requires iOS 6, and it's optimized for the iPhone 5 series. It is not universal, so it's best suited for the iPhone.