"Viewsheds" of any location can be calculated and matched with photographs using "GeoImageViewer", an application I wrote a couple of years ago. Any feature in the image can be interactively identified in a mapview and vice versa, including the boundary of the viewshed. As has been mentioned in the comments, it is essential to include atmospheric refraction in the calculation, at least for distances above ~100km.