Trajectory mining is a challenging and crucial problem especially in the context of smart cities where many applications depend on human behaviors. In this paper, we characterize such behaviors by patterns, where each pattern type represents a particular behavior, e.g. emerging, latent, lost, etc. From GPS raw data, we introduce algorithms that allow computing a formal concept lattice which encodes optimal correspondences between hidden patterns and trajectories. In order to detect behaviors, we propose an algorithm that analyses the evolution of the discovered formal concepts over time. The method generates tagged city maps to easily visualize the resulting behaviors at different spatio-temporal granularity values. Refined or coarse analysis can thus be performed for a given situation. Experimental results using real-world GPS trajectory data show the relevance of the proposed method and the usefulness of the resulting tagged city maps.