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