In my work, I need to do the same thing you describe above, and I have no ideia how can I do it.
Do you solve your problem? Can you help me somehow?
I´am using the s:grapicImage to show de image from database using a byte array and works fine.
But I don´t know how can I display the server side maps for this image, and how can I dynamically mapping the coordinates.
I had the same request to do for my customer but this was for a chart created with jfreechart. I used the seam library for this and what i did was using the imagemap tag to achieve this goal.
For this i extended the p:chart tag to take another attribute mapname and if this one is set the component will render the imagemap for the chart in the encodeend method. This was pretty straight forward. The big difference to your case would be that you have to code that imagemap creation yourself while jfreechart provided me this feature directly for my graph.
Hope this helps.
I don't know much about image maps, but you can send the coordinates with JS to your managed bean by making use of Seam remoting.
Refer to the reference guide for more info about seam remoting.