It all depends on the amount of data you are prepared to loose. If you cannot afford to loose anything, it will require that you find a way to connect your PI directly to the battery (with a fuse of course), so that it is not turned off when the ignition is turned off.
Then again, a typical car battery would have around 80 Ah and the PI will consume between 500-1200 mA (depending on if it is a model A or B), so that will probably drain your car battery in between 2 and 6 days, so I don't think you will find this acceptable.
If you still cannot afford to loose data you might be able to design some kind of custom hardware where you can control the power supply from the PI and also monitor the state of the ignition. If the ignition is turned off, you flush your data to the SD-card, shutdown the OS and then as last step turn off the power supply. The power supply also needs to be turned on when the ignition is turned on, to let the PI start again. This is all doable, but quite a large project.
However, if you find it acceptable to loose some data at shutdown, I would design the daemon that saves the GPS data periodically to a file in such a way that it executes an fsync call after each write (to flush the data to the SD-card). If you do this every few seconds (and are also using the default journaling ext4 file system) this would probably mean that you will only loose the last few seconds at each power loss.
Please keep in mind that Raspbian (at least my installation) did not come with an fsck of the root file system at boot time. You have to do the following to enable it at every mount:
tune2fs -c 1 /dev/mmcblk0p2
You also have to change the last line for the root file system in /etc/fstab to contain a 1, like this:
/dev/mmcblk0p2 / ext4 defaults,noatime,commit=120 0 1
Change this ^^^^^
If you don't do this then your root file system might not be bootable from time to time, so if you are running a headless system where you turn off the power without doing a controlled shutdown, this is absolutely necessary.