I needed to make an html image map once for a small project. Because I was using arcview 3.1 at that time, I found a nice repository 1 with all kind of scripts, and also one (Avenue) script to do exactly what I wanted: take the current map view, generate an image of it, and write an html-file with an image and map-area tags in it 2.
Nowadays I'm using Qgis 3 ;-) . With QGis you can view your spatial data from Esri shapefile, miff files, Postgis/Postgresql databases and even WMS (WebMappingSources) from around the internet. One very nice feature is that from version 9.0 of Qgis on there will be an Python interface available. Not only to manupulate the map via a console, but also to make small custom map applications using Python and Qgis. {see link}. One nice feature of the 9.0 version is the ability to build your own plugins IN PYTHON.
So to make a long story short: I wrote my first QGis plugin, thereby not only polishing up my (rather thin) Python knowledge, but als learned how this Qt4 widget stuff is working, and what resource files are. I will try to write my ramblings down so everybody with a little spatial and python knowledge can start hacking plugins!
I do not pretend to know the best way to write a plugin, but hope this plugin is usefull to somebody, or makes somebody enthousiast enough to start off him/herself
You will need Qgis > version 9, and the python bindings installed. Download the plugin, the source and this documentation in one zip HERE
This is how the dialog looks like:
And this example shows what it generates: for a given polygon or multipolygon it will:
<area shape="polygon" href="CROATIA" onClick="mapOnClick('CROATIA')" onMouseOver="mapOnMouseOver('ZAGREB')"
coords="306,135,307,135,308,135,309,135,310,136,309,136,308,136,308,135,306,135">
The starting point for your own plugin will be the Qgis wiki: http://wiki.qgis.org/qgiswiki/DevelopingPluginsWithPython4. Then you will need to know something about how to build a Qt4 gui, the public Python interface for QGis-plugins http://svn.qgis.org/api_doc/html/classQgisInterface.html, and the interface of PyQt http://www.riverbankcomputing.com/Docs/PyQt4/html/qtgui.html.
If you never build or used qt dialogs, here is the way to go:
There are some really good starting points in the blog and wiki: Tim Sutton's introduction in writing python apps using the Python Qgis interface 8 and a wiki page to show how to start with a simple Qgis python plugin 9
You will really need the pyqt-api documentation 5 and off course the qgis documentation 6