I’m confused. On iPhone you control which apps get location data. You also get warnings on the top of the screen when an app is using your location. How are these apps getting around that?
I don't know if it's possible anymore, but one way used to be that the app would send a list of every wifi network it could see. This can be used to calculate your position surprisingly accurately, in most places in the world.
Never was possible on iOS.