I would create a polyPlane (subdivisions width and height at 2 - we'll call it targetPlane for the exemple) which gives you a plane with a vertex on its center.
select the ground and shift+select the targetPlane open transfertAttribute options.
leave everything disabled except for the vertex position. Sample space is World and search method is closest along Normal.
transfer.
Parent the targetPlane to the first object.
et voilà !
now you get a projected plane depending on its vertex normal and the transformation of your first object. You just have to take the position of the vertex on the center of the plane.
alternative : you could have a targetPlane with one polygon and make a rivet. probably a more efficient technique bye the way.
