GPS is global and sattelite-based and needs no cellphone service or internet connection because the phone just "listens" to the sattelite signals. The only places where it does not work is underground or in buildings that contain too much metal or that are radiation-shielded.
Also your GPS is clearly working if you are placed on the map correctly.
The map data comes from google, and if you downloaded offline maps for your area, the game uses these.
So i think its a bad internet connection or the pokemon go servers are laggy. When the pokemon go servers are down, the first things you notice are that no pokemon spawn, pokestops and arenas stop working, and when you move, you do not get the new pokestops and gyms that move into your map.
When you start up the game, the pokestops and gyms and pokemon spawns are also the last thing that loads.
So the weak points are your internet connection and the pokemon go servers, but you say it works for a friend. That makes your mobile internet connection the prime suspect. Do you get pokestops and gyms when connected to wireless lan?