another posibility is to use x/y/z accelerometers to keep track of exact movement and subsequent offsett from some base/starting position
requires no external refernce point other than a know starting position
self contained rate of change and virtual location software might be tricky in a cost effective package though.