Abstract: Receivers of Global Navigation Satellite Systems (GNSS) such as GPS, GLONASS and GALILEO require line of sight (LOS) to at least four navigation satellites in order to calculate position with accuracy of few meters. Therefore, in rural regions GNSS receivers performs well - in general. Yet such systems tend to output inaccurate results in urban regions, mostly due to the density of buildings, which block the receiver's LOS to the navigation satellites. In this talk we will address the problem of calculating accurate position of GNSS receivers in urban canyons. We designed a post-processing stage which refines the results of the GNSS trilateration calculation. The new algorithm is using all traceable navigation satellites. Together with a 3D map of the city buildings it computes the LOS-map of each such satellite (the actual position of each satellite is known). These LOS-maps are then used to eliminate most of the possible locations, which leads to significantly more accurate positioning results in complex urban regions. We also address the dual problem of computing a 3D map of the city buildings by capturing the signal strength of all navigation satellite. We present a mapping algorithm which stores the LOS / NLOS status to each traceable navigation satellites. Combined with the user position, we use the LOS / NLOS rays to map 3D buildings. We have implemented the new methods and conducted a set of field experiments in urban regions. The experiment shows that the new position algorithm improves the GNSS-receivers accuracy. Moreover, the mapping algorithm allows few users to map a complex urban region simply by walking through it Joint work with Harel Levi.