1. A method for semi-automatically extracting a polyline from a linear feature in a point cloud, comprising: receiving, from a user, a selected point in the point cloud about the linear feature in the point cloud; receiving, from the user, a starting search direction; returning a plurality of line segments based on the linear feature by a process executing on an electronic device, by: successively following one or more linear segments of the linear feature, beginning with a current search direction set to the starting search direction and a current search location set about the selected point, and modeling the linear segments with line segments, wherein when an end of a linear segment is reached, determining whether there is an intersection based on detection of greater than a threshold number of points of the linear feature in multiple directions, in response to there being an intersection, prompting the user to provide an updated search direction that is used as the current search direction, in response to there not being an intersection, continuing to successively follow one or more linear segments of the linear feature after the intersection, and modeling the one or more linear segments after the intersection with line segments, when an end of a linear segment is reached, determining whether there is a jumpable gap, in response to determining there is a jumpable gap, continuing to successively follow one or more linear segments of the linear feature after the jumpable gap, and modeling the one or more linear segments after the jumpable gap with line segments, and in response to there not being a jumpable gap, returning the line segments; and creating a polyline from the returned line segments.