The objective of this research is to develop a method to improve the positioning performance of multi-constellation GNSS portable devices without any extra sensor aiding in constrained environments. With multi-constellation GNSS, the number of visible satellites is significantly increased as compared to that of a single GNSS constellation. Although the number of received satellites is sufficient for positioning in urban areas, the geometry of the satellite distribution might not be good. In addition to poor satellite geometry, the GNSS measurements are contaminated due to non-line-of-sight (NLOS) receptions and multipath effects in constrained environments. This research first applies a self-checking approach to detect possible contaminated measurements based on a multiple fault assumption. Aiming to lock the user positions along the road, we then apply road model equations into the EKF (extended Kalman Filter) predictions to constrain the estimated results on the specific desired paths, and trajectories that are closer to actual trajectories could therefore be generated for users. Finally, the proposed satellite selection method and the EKF with the road model are integrated to provide accurate and reliable positioning and navigation services in constrained environments. The differential GNSS (DGNSS) technique is used in this paper to check if the received signal is contaminated with multipath. A low cost multi-constellation GNSS portable device is used to conduct actual GPS, GLONASS and BeiDou experiments under several constrained environments to validate the approach proposed in this paper.