I want to display a map in a MFC application (Visual Studo 2008 with MFC Feature Pack). Off the top of my head I have the following requirements:
- I have to be able to add my own markers (plain lat/lon positions), preferrably with different colors/icons so one can distinguish between different types of markers.
- If the map data is fetched from an online source, it has to be cache-able, i.e. I can pre-load maps for an area at a certain (or several) zoom-level(s) and then switch to "offline mode". Alternatively all map data is installed together with the application.
- The standard operations like zoom in/out and pan should be possible for the user.
- The user has to be able to select my markers, preferably by dragging a rectangle around them.
- Since the whole app is written in C++/MFC I don't want to have to use the .NET runtime for this plugin.
- It shouldn't cost a fortune.
I am currently using an ActiveX plugin called "ESRI MapObjects LT2" which can do all that in some way but it's very tedious to implement, the development seems to have stopped around the time when Visual Studio 6 was available and map material is either very basic or very expensive.
I thought about using Google Maps or Google Earth but I think they don't really support being used by non-web based applications. I found ArcView to be some sort of successor of the plugin I use currently but I don't think I belong to the target audience since the functionality it offers is way more than what I need. Also I didn't find any information on pricing.