First i would try make a Bitmap as BMP with a black cycle and only Text "N, S,W,E" (North, South, West, East) to test.

Than create a Panel with your Position and add this Bitmap to your Panel. Your Bitmap Needs same size in x and y or you Need to set Panel Center_x/Center_y.

Code:
PANEL* PanCompass = 
{
   bmap = bmap_create("Compass.bmp");
   pos_x = 0;
   pos_y = 0;
   flags |= SHOW;   
}





Put your Player in WED to any place.
In a while, you only Need to set "pan" from Player to your Panel.

Code:
while(1)
{
   PanCompass.angle = player.pan - 90; // test it...i only guess
   wait(1);
}



Think about, Panel.angle isn t same as players pan. That means, if Players pan is North, the Degree is 90, not 0.

The second part is calculate the position from Player.
If i have time, i will build an example.