A method comprising, with at least one computing platform: estimating a trajectory of a mobile device within an indoor environment based, at least in part, on one or more sensor measurements obtained at said mobile device; obtaining at least one of one or more locations of waypoints, wherein the locations of waypoints are, in part, obtained from at least one input received from a user interface of said mobile device, said locations of said one or more waypoints being defined based, in part, on one or more objects identified in an electronic map of said indoor environment, said one or more waypoints being further determined based, in part, on routing directions of a planned route followed by a user of the mobile device; and affecting said estimated trajectory based, at least in part, on said one or more locations of said one or more waypoints for correcting a drift of the estimated trajectory, wherein said affecting said estimated trajectory further comprises: correcting a drift in said estimated trajectory, at least in part, using a discrete turn assignment algorithm that is based, at least in part, on a cost function, wherein the discrete turn assignment algorithm assigns waypoints in said estimated trajectory to detected stepping actions of the user to minimize the cost function and wherein said cost function preferably takes into account at least one of: a cost corresponding to a difference in an orientation of said mobile device compared to said estimated trajectory during a period of time; or a cost corresponding to a distance between consecutive waypoints on said estimated trajectory to an estimated distance travelled by said mobile device during said period of time. estimating a trajectory of a mobile device within an indoor environment based, at least in part, on one or more sensor measurements obtained at said mobile device; obtaining at least one of one or more locations of waypoints, wherein the locations of waypoints are, in part, obtained from at least one input received from a user interface of said mobile device, said locations of said one or more waypoints being defined based, in part, on one or more objects identified in an electronic map of said indoor environment, said one or more waypoints being further determined based, in part, on routing directions of a planned route followed by a user of the mobile device; and affecting said estimated trajectory based, at least in part, on said one or more locations of said one or more waypoints for correcting a drift of the estimated trajectory, wherein said affecting said estimated trajectory further comprises: correcting a drift in said estimated trajectory, at least in part, using a discrete turn assignment algorithm that is based, at least in part, on a cost function, wherein the discrete turn assignment algorithm assigns waypoints in said estimated trajectory to detected stepping actions of the user to minimize the cost function and wherein said cost function preferably takes into account at least one of: a cost corresponding to a difference in an orientation of said mobile device compared to said estimated trajectory during a period of time; or a cost corresponding to a distance between consecutive waypoints on said estimated trajectory to an estimated distance travelled by said mobile device during said period of time.