Thanks for the reply, grandshot. I forgot the PDA map is 3D; however, 3D Ripper DX won't work because JC2 is a DX10 game. Fortunately, I have found the solution a different way.
I used a memory scanner to find the player position in RAM. The player position uses the exact same coordinates as the world_pos vector. I was then able to determine the following info.
Code:
world_pos vector = (x,z,y)
(0,0,0) is center of map, this is (16384,16384) in map coordinates
North is -Y
South is +Y
East is +X
West is -X
Now converting world_pos to map coordinates is simple.
Code:
Kem Komander Sutherland world_pos = (-9019.082,486.125,2830.436)
X = 16384 + -9019.082 = 7364.918
Y = 16384 + 2830.436 = 19214.436
Kem Komander Sutherland map coordinates = (7364.918,19214.436)
These map coordinates are an exact match to the ones found in JC2MapViewer.