A computer-implemented method comprising: determining a first orientation representative of one or more probe points, wherein each probe point provides an indication of a position at which a respective probe data point was collected and a heading with which a respective probe source was moving upon collecting the respective probe data point; determining a seed point, the seed point representative of the one or more probe points, by determining a first constrained weighted center of mass of the one or more probe points, wherein determining the first constrained weighted center of mass comprises limiting movement of the first constrained weighted center of mass to a direction based upon respective headings of the one or more probe points; and creating polylines representative of a bi-directional road geometry, wherein creating the polylines comprises creating polylines representative of one direction of travel along the bi-directional road geometry by: (a) extending a first polyline in the first orientation from the seed point by: extending the first polyline from the seed point to a second point that is spaced from the seed point by a predefined amount and is disposed in the first orientation from the seed point; determining a second orientation representative of one or more probe points proximate the second point; determining a second constrained weighted center of mass of the one or more probe points proximate the second point, wherein determining the second constrained weighted center of mass comprises limiting movement of the second constrained weighted center of mass to a direction based upon respective headings of the one or more probe points proximate the second point; and extending the first polyline from the second constrained weighted center of mass in the second orientation; and (b) extending a second polyline from the seed point in an opposite direction relative to the first orientation. determining a first orientation representative of one or more probe points, wherein each probe point provides an indication of a position at which a respective probe data point was collected and a heading with which a respective probe source was moving upon collecting the respective probe data point; determining a seed point, the seed point representative of the one or more probe points, by determining a first constrained weighted center of mass of the one or more probe points, wherein determining the first constrained weighted center of mass comprises limiting movement of the first constrained weighted center of mass to a direction based upon respective headings of the one or more probe points; and creating polylines representative of a bi-directional road geometry, wherein creating the polylines comprises creating polylines representative of one direction of travel along the bi-directional road geometry by: (a) extending a first polyline in the first orientation from the seed point by: extending the first polyline from the seed point to a second point that is spaced from the seed point by a predefined amount and is disposed in the first orientation from the seed point; determining a second orientation representative of one or more probe points proximate the second point; determining a second constrained weighted center of mass of the one or more probe points proximate the second point, wherein determining the second constrained weighted center of mass comprises limiting movement of the second constrained weighted center of mass to a direction based upon respective headings of the one or more probe points proximate the second point; and extending the first polyline from the second constrained weighted center of mass in the second orientation; and (b) extending a second polyline from the seed point in an opposite direction relative to the first orientation. (a) extending a first polyline in the first orientation from the seed point by: extending the first polyline from the seed point to a second point that is spaced from the seed point by a predefined amount and is disposed in the first orientation from the seed point; determining a second orientation representative of one or more probe points proximate the second point; determining a second constrained weighted center of mass of the one or more probe points proximate the second point, wherein determining the second constrained weighted center of mass comprises limiting movement of the second constrained weighted center of mass to a direction based upon respective headings of the one or more probe points proximate the second point; and extending the first polyline from the second constrained weighted center of mass in the second orientation; and extending the first polyline from the seed point to a second point that is spaced from the seed point by a predefined amount and is disposed in the first orientation from the seed point; determining a second orientation representative of one or more probe points proximate the second point; determining a second constrained weighted center of mass of the one or more probe points proximate the second point, wherein determining the second constrained weighted center of mass comprises limiting movement of the second constrained weighted center of mass to a direction based upon respective headings of the one or more probe points proximate the second point; and extending the first polyline from the second constrained weighted center of mass in the second orientation; and (b) extending a second polyline from the seed point in an opposite direction relative to the first orientation.