The performance of conventional global navigation satellite system (GNSS) positioning in dense urban area is still a challenge due to the signal reflecting by building and result in multipath and non-light-of-sight (NLOS) receptions. These effects are much affecting the low-cost GNSS receiver (e.g. smartphone). A novel range-based 3D mapping aided (3DMA) GNSS with NLOS correction based on skyplot with building boundaries is proposed in this paper. Instead of using ray-tracing simulation, we propose to detect the reflection points from the skyplot with building boundaries. With the assumption that reflected signals follow the rule of reflection, the reflected points are only possible located at certain points on the skyplot. After the possible reflection being found, we can obtain the reflecting delay distance of NLOS reception for each candidate based on its distance between the reflecting point. Then, the pseudorange for each signal can be simulated based on the geodetic distance between candidate and other error term (e.g. satellite clock offset, ionosphere and tropospheric delays, etc.). Afterward, a set of simulated pseudorange will compare to the measurements and giving a score to the corresponding candidate. Finally, the user position is determined by averaging the position of candidates with score weighting, indicates the position with a simulated pseudorange most matching to the measurements. The proposed algorithm is verified through real experiments in the dense urban areas in Hong Kong. A commercial grade GNSS receiver is employed to collect the raw data. The performance of the proposed algorithm is compared with the conventional weighted least square (WLS) and the ray-tracing based 3MDA GNSS. According to the results, the proposed algorithm is able to correctly simulate the pseudorange error with lower computation load and further achieves positioning accuracy with less than 10 meters error.