Single-sensor zero-velocity-update (ZUPT)-aided pedestrian inertial navigation system (PINS) is a conventional method. However, the single-sensor systematic error still causes imprecise estimation of step length and high drift of orientation. In this study, three magnetometers and inertial measurement units are mounted on single-leg toe, shank, and thigh, respectively. Gaits are divided into two phases: stance and swing. Based on the biomechanical characteristics of a human lower limb, a velocity-position estimation algorithm is proposed. The positions of the three sensors are fused by dynamic geometric relationships, which are formulated through the natural lower-limb model and attitude estimation. A velocity-difference constraint is proposed to suppress the divergence of velocity, and Coriolis-based velocity correction is designed to observe velocities of the toe, shank, and thigh at the stance phase. A MAHONY-linear-Kalman framework separately estimates attitudes, velocities, and positions to reduce calculations. The proposed method is compared with foot-mounted, shank-mounted, and thigh-mounted ZUPT-aided PINS as well as a dual-sensor foot-to-foot algorithm through experiments. In the flat terrain experiment, compared with the errors of the Shank-mounted INS, the Thigh-mounted INS, the Foot-mounted INS, the Foot-to-Foot Constraint Method, the root mean squared error (RMSE) of the proposed method can be reduced by 40.34%, 71.85%, 29.53%, and 7.08%, respectively. In the slope experiment, compared with the other four methods, the RMSE of the proposed method can be reduced by 80%, 86.74%, 67.54%, and 61.86%, respectively. In the natural terrain experiment, compared with the other four methods, the RMSE of the proposed method can be reduced by 81.63%, 96.27%, 70%, and 60.87% respectively. The results show that the proposed method greatly suppresses the positioning and orientation errors in different scenes.