With the growth of Web Services number and with the diversification of their types and qualities, the choice of the service that complies with user preference became a fundamental issue. The task of finding the best Web service is no longer an easy task and may end to unsatisfactory result. To resolve this problem, we adopt in this paper a Web services discovery and selection approach based on user preferences. These preferences are based on a multi-criteria approach that allows clients to assign weights values to the QoS parameters according to their needs. Consequently, the selected services will correspond to the real clients needs. In our application, we have also integrated a mechanism for semantics recommendation. This recommendation serves to guide the client preferences and to refine more the results given by the selection mechanism based on QoS parameters. Unlike other approaches, in our work, we separate between recommendation and discovery mechanism. This will give the client the freedom to choice his own scenario and to gain in terms of processing time. Our approach integrates also geospatial criteria which are of paramount importance in mobile applications.