A method for detecting a pedestrian stride length crossed by the pedestrian while walking on a path, comprising: detecting, with a processor, peak values of longitudinal acceleration data from an accelerometer, a time period between two adjacent peaks of the longitudinal acceleration data being a stride interval, the stride interval being a time taken by the pedestrian to cross one stride, and the longitudinal acceleration data represents change of acceleration of the pedestrian in direction of gravity in a walking process over time; integrating, with the processor, the longitudinal acceleration data within the stride interval between the two adjacent peaks of the longitudinal acceleration data, to obtain a velocity data; integrating, with the processor, the velocity data within the stride interval between the two adjacent peaks of the longitudinal acceleration data to obtain a longitudinal displacement amplitude data (h); taking a maximum value and a minimum value of the longitudinal displacement amplitude data (h); subtracting the minimum value from the maximum value of the longitudinal displacement amplitude data (h) to obtain a longitudinal displacement amplitude value (h 1), the longitudinal displacement amplitude value (h 1) is a displacement of the pedestrian's center of mass in the direction of gravity during a one-stride process in the walking path; calculating, with the processor, a distance (S 1) between two feet of the pedestrian in a stride, in the walking path, based on a geometric relationship between the longitudinal displacement amplitude value (h 1) and a human walking model including the one stride process; and calculating, with the processor, a stride length data by adding a foot length of the pedestrian (S 2) and the calculated distance between the two feet in a stride (S 1), the stride length data being a distance that the pedestrian crosses in one stride. detecting, with a processor, peak values of longitudinal acceleration data from an accelerometer, a time period between two adjacent peaks of the longitudinal acceleration data being a stride interval, the stride interval being a time taken by the pedestrian to cross one stride, and the longitudinal acceleration data represents change of acceleration of the pedestrian in direction of gravity in a walking process over time; integrating, with the processor, the longitudinal acceleration data within the stride interval between the two adjacent peaks of the longitudinal acceleration data, to obtain a velocity data; integrating, with the processor, the velocity data within the stride interval between the two adjacent peaks of the longitudinal acceleration data to obtain a longitudinal displacement amplitude data (h); taking a maximum value and a minimum value of the longitudinal displacement amplitude data (h); subtracting the minimum value from the maximum value of the longitudinal displacement amplitude data (h) to obtain a longitudinal displacement amplitude value (h 1), the longitudinal displacement amplitude value (h 1) is a displacement of the pedestrian's center of mass in the direction of gravity during a one-stride process in the walking path; calculating, with the processor, a distance (S 1) between two feet of the pedestrian in a stride, in the walking path, based on a geometric relationship between the longitudinal displacement amplitude value (h 1) and a human walking model including the one stride process; and calculating, with the processor, a stride length data by adding a foot length of the pedestrian (S 2) and the calculated distance between the two feet in a stride (S 1), the stride length data being a distance that the pedestrian crosses in one stride.