When travelling, people are accustomed to taking and uploading photos on social media websites, which has led to the accumulation of huge numbers of geotagged photos. Combined with multisource information (e.g. weather, transportation, or textual information), these geotagged photos could help us in constructing user preference profiles at a high level of detail. Therefore, using these geotagged photos, we built a personalised recommendation system to provide attraction recommendations that match a user’s preferences. Specifically, we retrieved a geotagged photo collection from the public API for Flickr (Flickr.com) and fetched a large amount of other contextual information to rebuild a user’s travel history. We then created a model-based recommendation method with a two-stage architecture that consists of candidate generation (the matching process) and candidate ranking. In the matching process, we used a support vector machine model that was modified for multiclass classification to generate the candidate list. In addition, we used a gradient boosting regression tree to score each candidate and rerank the list. Finally, we evaluated our recommendation results with respect to accuracy and ranking ability. Compared with widely used memory-based methods, our proposed method performs significantly better in the cold-start situation and when mining `long-tail' data.