An Algorithmic Framework for Solving Geometric Covering Problems - with Applications