Answers:
Preparata&Shamos在经典著作中很好地说明了2维和3维算法。GIS中使用的算法是Hanan Samet的专长,他出版了几本有关该主题的书。
通常通过初步的数据挖掘,聚类或降维技术来辅助或加快高维搜索。这更多地是数据分析和统计问题,而不是GIS问题,而GIS本质上着重于在一个至四个欧几里德维度中进行搜索。有关更多信息,请在我们的姐妹论坛stats.stackexchange.com上搜索可能的术语,例如聚类,降维和多维缩放,以及不太明显的术语,例如pca(主要成分分析)和svm(支持向量机)。这也是询问现有软件的好地方。
经典的(古地理学家)答案是使用KD树存储数据(请参见http://en.wikipedia.org/wiki/Kd-tree)。通过在树上向下移动时,依次将数据大致分成每个维度的两个分区来进行工作。它们的优点是,在您找到最近的餐馆时,您也可以在不增加成本的情况下创建最近的餐馆清单,因此回答三个最近的餐馆是什么,就像找到最近的餐馆一样容易。
我在某处读到eHarmony使用KD树在14个维度中查找“兼容匹配”。