基于KNN(K Nearest Neighbor)的算法广泛应用在Wi-Fi室内定位中,但传统的KNN模式匹配阶段匹配时间消耗过长,而且采用固定的K值来搜索最邻近点存在较大的定位误差.针对这两个方面,文中提出一种基于Kmeans聚类和动态WKNN(Weighted K Nearest Neighbor)的新型两层定位算法.实验表明在时间复杂度和平均定位误差方面,文中提出的改进算法较传统的KNN,WKNN和EWKNN(Enhanced Weighted K Nearest Neighbor)均有改善.同时针对在指纹库构建阶段现实存在的暂时性“消失”现象,提出针对缺省值的最邻近插值方法,实验证明可以有效减少定位误差.