If you plan on creating bases through script, setPosATL and getPosATL will be your friends. Other commands like getPos or getPosASLwill return the position relative to any objects that are underneath / to the terrain.
I wrote a base building helper script and through multiple tests, I have found that getPosATL is the absolute best way to get position for objects that are over land.
Hypoxic125
As of Verson 2.10, if you use setPosX commands on a remote unit within a vehicle, the unit will remain in the vehicle. In order to avoid this, remoteExec the command to the remote client.