Welcome @dsemal
Unofficially. As I recall the iBus system uses dedicated GPS hardware supplied by a third party and uses a public messaging system for bus-to-server and server-to-bus messages.
The GPS is actually quite good compared to a phone because it is using an external aerial, unlike in a mobile phone or tablet where the GPS aerial is part of the device.
For GPS to get a highly accurate location, it needs to compare as many signals from the different GPS satellites as possible. The location is worked out by comparing the timing of the reception of the data packet and knowing the path back, via the satellites to the reference point. The more signals, the better the accuracy.
So, out in a field the aerial can get as many satellite signals as is possible. However on city streets GPS becomes poor because the view of the sky from the receiver location reduces the accuracy just when you need it most.
This isn’t always a problem. One thing you can do is just “snap” the location calculation to the nearest street (or railway if you’re on a train). This is great for monitoring service buses because they tend to go in a single direction, run up to 30km/h, have terrible turning circles and can only reverse with a lot of effort.
So… to run a system like “iBus” you can take these assumptions and use them to predict where a bus is with a reasonable level of accuracy from the GPS data, but not 100% precisely.
Also, bus software doesn’t have access to the “location services” which use GSM tower location data and wifi-network location data to enhance the GPS derived location.
So, I don’t think TfL want to put “accurate” lat, long data out there because someone (like me, no doubt) will come back and point out how wrong it is.
So, that’s why you get told that a bus is “at” so-and-so stop or “3 mins between” some other pair of stops. That’s because it’s actually the precision of data they have.
Perhaps in future “bus ticket machines” will be able to use iOS/Android to get better live locations.