Google Sketchup 8 (a free 3D modelling software) enables users (being a Google product) to "legally" add Google maps imagery and terrain to 3D models. You can then use the protractor tool to measure and draw your line of sight and an angle of view. In fact you can easily draw a 3D cone as well that will enable you to analyze the angle of view in 3D. In addition, SketchUp can also add shadows for any specific geographical location and enables you to toggle the shadows by date of year and time of day. You can easily model buildings into the terrain by tracing building footprints in the satellite imagery and very easily extruding them to any height - this is particularly useful if you want to be able to analyze how shadows are cast from any buildings that might exist in a particular location.
Many people can be discouraged just by this being a 3D modelling environment but I can assure you that although you can create very complex models it is very easy to use. Take a look at this video which explains how to create contours in SketchUp from google earth terrain. Contours aside, in the begging the video shows how to create a 3D terrain with google earth imagery draped over it in less than 30 seconds.
The best part is that your locations are geographically referenced so modelling with shadows is geographically accurate. You can also publish you model for viewing in Google maps/earth and it will display in the correct location.
There are a lot of how to videos on YouTube so finding out how to work with the various tools is easy. It is also a very fun software to use.
If you want to take this a step further, you could use a 3D GIS and high resolution terrain models/aerial imagery but this will not longer be free nor easy.
EDIT: Here is a quick 30 degree angle of view model at one of my locations. (shadows are set at october 8, 4:20 PM - you can see them on the hill across the bay)
EDIT 2: I just looked at the tools in more detail and there is a LOOK AROUND TOOL which allows you to click anywhere on the surface and look around as well as a FIELD OF VIEW tool that does just what it says...
using cone:
With LOOK AROUND observer using a FIELD OF VIEW TOOL @ 30 degrees: