I'm also a beginner in robots and I have thought about a similar application. These are my thoughts:
A GPS can be used although it may not be a requirement. I believe that in order to obtain reasonable accuracy (so your markings don't "zig-zag") encoders on wheels will be required so that you know exactly how far your 'bot has traveled. On the left and right wheels so you know that each wheel has rotated the expected amount.
If they are onto drive wheel, you run into problem if the wheels slip or spin on a slippery surface. So maybe an extra set of non-drive wheels with encoder which simply roll on the ground will give accurate travel information if the drive wheels slip.
With encoders, you could simply program the motors to travel exact amount w/o needing needing a GPS or compass because you can infer the 'bots position by the encoders alone.
With a GPS and compass, you simply "punch in" the necessary GPS coordinates and program your code Use the GPS and compass data to orientate your 'bot in the correct direction, and calculate the "point a to point b" vector with the coordinates you programmed in, and with that, know the number of rotations the wheels required to travel the distance.
Have fun and good luck