I am working on a Java OpenGL application described below.
The application shows a large 2D texture of a world map. Some information must be represented as captions on the map (for example, a caption near Spain that shows its population). The captions are GL objects consisting of polygons and text. The user must be able to navigate around the map (left, right, up and down) as well as zoom in (+) and zoom out (-). When the user performs these operations, the map should move or resize and the captions should move along with the map but keep itselves at the same size.
I am doing the view 2D with glOrtho, the movement with glTranslate and the zoom with glScale. At first, when zooming, the captions resized along with the map, so the captions became too big or too small. To fix this, I billboarded the captions. With billboarding, the captions are not resizing but doesn't keep its relative position to the map when zooming in&out (I need the Spain's caption staying always near Spain).
All in a nutshell, I need the captions moving along with the map, keeping at a fixed size and with a relative position to the map.
Is there any way to do what I need to do?