GPS needs at least three satellites for triangulation. Most GPS units use many more for higher accuracy.
It happens with my Edge Touring when I go through forests with a thickish canopy. It shows a lower mph (well, km/h). The reason is that the GPS units uses the time differences between the reception of the GPS signal to calculate the speed. When the signal is bounced on trees, buildings, rocks/cliffs etc., it will have a hard time doing it properly. My phone isn't as effected by the canopy.
However, with more satellites (including those from GLONASS and what have you), it will be more precise as it can calculate averages between the different sat systems and even prioritise them.
What I'm saying is that if you can find a GPS which can receive signals from more satellites at the same time, it will be more precise even along cliffs and buildings.