GPS is based on estimates of the distance from the emission of satellites to your receiver. Your GPS receiver needs (in general) a signal from at least 4 satellites in order to be able to calculate its location. Signal levels for the L1 band under open sky conditions approach -130 dBm. Commercial receivers, such as those integrated into mobile phones, are capable of tracking satellites up to -160 dBm. Under this threshold, the receiver cannot use the signal. This edge of 30 dB allows some attenuation from obstacles such as foliage, glass windows, even light walls, but several floors of the building completely mask signals from almost all sides, which makes GPS completely inaccessible. And even if the attenuation allows the receiver to use the signals to calculate its positions, the accuracy achieved is likely to be insufficient for your target application (the accuracy is degraded by attenuation of the signal).
Wi-Fi location systems, such as Skyhook (implemented on many mobile platforms), on the other hand, can often calculate location inside buildings, but this method has two main drawbacks:
- Database coverage does not include internal sites (AFAIK), so the returned location is very approximate and does not apply to any application.
- Wi-Fi location algorithms based on range estimation to hot spots using signal levels are heavily affected by internal obstacles (people, furniture, etc.). This reduces positioning accuracy.
There is a third option: integrate acceleration with chpsset MEMS in your mobile phone, starting from the last known GPS position. This may work under certain conditions ...
In conclusion, there is no ready-made solution for internal placement on mobile phones, but some of them are working on this issue (for example, http://www.polestar.eu/en/node/111/y )
Edit: I forgot to mention cell-based positioning, which is available if the phone has active data correction on the cellular network. This method is accurate enough to give the city where the mobile phone is located.
source share