I have a setup using Tasker as kind of described in this thread. I have Tasker automated to update my location based on changes to my cell tower or WiFi connect/disconnect events which is generally enough for HA to know if I am in any of my set locations i.e. Home or work etc.
If you don’t need real time tracking all the time then this is a good option with no third party services needed if your already on a Google free phone, just the phone’s GPS. It also has a minimal impact on phone battery compared to some other app solutions as Tasker seems very efficient when setup to only trigger on certain events.