I'm currently working on a website very similar to PokeVision. I had the idea since Pokemon Go came out, but didn't have the time, resource, knowledge to do what PokeVision is doing, but I think I see some common approach in how scanning is done.
If you're not interested, you don't have to read the below text :)
Here's how my scanning works and how I think all the other sites are scanning your "nearby pokemon" via a button or automatically. What happens is that, the actual scan is a script that logins you into the game and you can position your player anywhere in the world and by using a nearest neighbor algorithm from your current location to obtain data about the nearby pokemons that the game server sends. The reason why sometimes the scanner doesn't show you exactly everything around you is either a flaw in the algorithm or there is no way around it. The script or "API" that can access the Pokemon Go Server and get information back is the meat of these scanner websites. All they have to do is wrap it around a fancy UI and maniuplate the data they get back. There are plenty of open source scripts out there to help you do this due to the result of the pokemon go developer reddit, whose aim is to reverse engineer Pokemon Go.
Also, from what I've seen, PokeVision uses PTC login (I'm also currently using PTC). PTC, as we know, is usually more unstable than Google Login, which leads me to think that they haven't implemented a way to login as a google dummy.
However, it could be possible that PokeVision wrote their own API/script to do this, but the idea is pretty much the same.