Recently, various novel scenarios have been studied for indoor localization. The trilateration is known as a classic theoretical model of geometric-based indoor localization, with uniform RSSI data that can be transferred directly into distance ranges. Then, a trilateration solution can be algebraically acquired from theses ranges, in order to fix user’s actual location. However, the collected RSSI or other measurement data should be further processed and classified to lower the localization error rate, instead of using the raw data influenced by multi-path effect, multiple nonlinear interference and noises. In this survey, a large number of existing techniques are presented for different indoor network structures and channel conditions, divided as LOS (light-of-sight) and NLOS (non light-of-sight). Besides, the input measurement data such as RSSI (received signal strength indication), TDOA (time difference of arrival), DOA (distance of arrival), and RTT (round trip time) are studied towards different application scenarios. The key localization techniques like RSSI-based fingerprinting technique are presented using supervised machine learning methods, namely SVM (support vector machine), KNN (K nearest neighbors) and NN (neural network) methods, especially in an offline training phase. Other unsupervised methods as isolation forest, k-means, and expectation maximization methods are utilized to further improve the localization accuracy in online testing phase. For Bayesian filtering methods, apart from the basic linear Kalman filter (LKF) methods, nonlinear stochastic filters such as extended KF, cubature KF, unscented KF and particle filters are introduced. These nonlinear methods are more suitable for dynamic localization models. In addition to the localization accuracy, the other important performance features and evaluation aspects are presented in our paper: scalability, stability, reliability, and the complexity of proposed algorithms is compared in this survey. Our paper provides a comprehensive perspective to compare the existing techniques and related practical localization models, with the aim of improving localization accuracy and reducing the complexity of the system.