I'm looking for a library/framework/toolkit that will allow me to render a 2D map from real GeoSpatial data and draw objects on the 2D map. 

Requirements:

* Map Tiling (when I zoom into the map, i want a more detailed image)
* Pan (ability to use the mouse to move around the map)
* Read various Geospatial images (satellite, street, etc)
* Ability to draw objects onto the map (based on lat/longs) and have them move. For example, I want to be able to put an image of a bird on the map and have it move and rotate correctly.
* Primitive shapes. It would be nice if it had built in ability to draw lines, circles, etc.
* Complex drawing. For example, I want to draw a compass and have it show the heading of the current heading of the bird.
* Mouse input. I want to be able to right click on the map and have a context menu appear. I want to click and hold an shape I draw on the map and drag it easily.

What I have looked at:

* OpenSceneGraph with osgEarth. It's great, and fulfills my reqs, but is really slow and I had to do a lot of weird things to get things to work (especially with dragging objects on the map).
* Cesium: looks promising, but somewhat slow, and I need it to work as a desktop application. I've seen online that some have managed to use Cesium inside Qt's Webkit, but I'm not sure I would want to take that risk.

EDIT:

* I really want to stay away from a web-based framework if possible.

<http://imgur.com/52DaJtQ>
Here is a primitive picture of what I'm want to achieve. The aircraft icon should move and the degree circle along with it. I want to be able to drag the green waypoints and have the lines redraw as I move a waypoint. The red sensor footprint should adjust to what the aircraft can see.
<http://imgur.com/52DaJtQ>