A computer-implemented method for detecting an overhead obstruction comprising: receiving, by a processor, three-dimensional data collected by a depth sensing device traveling along a path segment, wherein the three-dimensional data comprises point cloud data positioned above a ground plane of the path segment; identifying, by the processor, data points of the point cloud data positioned within a corridor positioned above the ground plane; projecting, by the processor, the identified data points onto a plane; dividing the plane into a plurality of cells between linear segments, wherein a linear segment extends in the latitudinal direction perpendicular to the longitudinal direction of the path segment; detecting, by the processor, the overhead obstruction, based on a concentration of point cloud data positioned within the plurality of cells of the plane, by performing the following: defining each cell of the plurality of cells as either an occupied status or a not-occupied status based on the concentration of the point cloud data, each cell being at least at a first threshold level or below the first threshold level, respectively; creating a one-dimensional line segment for the path segment using the defined occupied and not-occupied statuses for each cell; and identifying the overhead obstruction when a number of consecutive cells of the plurality of cells is defined with the occupied status and the number equals or exceed a second threshold; and storing the detected overhead obstruction above the path segment within a map database. receiving, by a processor, three-dimensional data collected by a depth sensing device traveling along a path segment, wherein the three-dimensional data comprises point cloud data positioned above a ground plane of the path segment; identifying, by the processor, data points of the point cloud data positioned within a corridor positioned above the ground plane; projecting, by the processor, the identified data points onto a plane; dividing the plane into a plurality of cells between linear segments, wherein a linear segment extends in the latitudinal direction perpendicular to the longitudinal direction of the path segment; detecting, by the processor, the overhead obstruction, based on a concentration of point cloud data positioned within the plurality of cells of the plane, by performing the following: defining each cell of the plurality of cells as either an occupied status or a not-occupied status based on the concentration of the point cloud data, each cell being at least at a first threshold level or below the first threshold level, respectively; creating a one-dimensional line segment for the path segment using the defined occupied and not-occupied statuses for each cell; and identifying the overhead obstruction when a number of consecutive cells of the plurality of cells is defined with the occupied status and the number equals or exceed a second threshold; and defining each cell of the plurality of cells as either an occupied status or a not-occupied status based on the concentration of the point cloud data, each cell being at least at a first threshold level or below the first threshold level, respectively; creating a one-dimensional line segment for the path segment using the defined occupied and not-occupied statuses for each cell; and identifying the overhead obstruction when a number of consecutive cells of the plurality of cells is defined with the occupied status and the number equals or exceed a second threshold; and storing the detected overhead obstruction above the path segment within a map database.