@Chhay Lyhour ... Yes to your question.
here is a thought you might try: mount the Kinect on a tripod but instead of looking vertically down at the pavement place it to the side and rotate the Kinect so it is at a shallow grazing angle to the horizontal -- 10 or maybe 20 degrees. Measure the inclination from the horizontal and collect your image[s]. this gets you away from the problem of being far enough from the aggregate and also the problem with range resolution from the Kinect. that is, the height of the aggregate now obscures some portion of the surface 'behind' the aggregate; you can work the geometry to solve for the actual height of the aggregate.
for @Quentin Miller ... another example where it would be very helpful to get the range measurement from the Kinect and not the processed depth.