In dense urban areas, conventional Global Navigation Satellite Systems (GNSS) positioning can exhibit errors of tens of metres due to the obstruction and reflection of the signals by the surrounding buildings. By using Three-Dimensional (3D) mapping of the buildings, the accuracy can be significantly improved. This paper demonstrates the first integration of GNSS shadow matching with 3D-mapping-aided GNSS ranging. The integration is performed in the position domain, whereby separate ranging and shadow matching position solutions are computed, then combined using direction-dependent weighting. Two weighting strategies are compared, one based on the computation of ranging-based and shadow matching position error covariance matrices, and a deterministic approach based on the street azimuth. Using experimental data collected from a u-blox GNSS receiver, it is shown that both integrated position solutions are significantly more accurate than either shadow matching or 3D-mapping-aided ranging on their own. The overall Root Mean Square (RMS) horizontal accuracy obtained using covariance-based weighting was 6·1 m, a factor of four improvement on the 25·9 m obtained using conventional GNSS positioning. Results are also presented using smartphone data, where shadow matching is integrated with conventional GNSS positioning.