Answers:
他们可能在回答提及空间索引的问题之后,很可能是通过选择开箱即用的数据库来提供空间索引的,但是您可能还会提到几点,如果需要的话,它可以在应用程序本身中实现,例如,通过实现R -树(如果由于其他原因固定了数据库选择,可能会很方便?还会显示您知道空间数据库的工作原理)。空间索引可让您快速获取适合搜索框的位置子集,您可以通过计算每个对象的实际距离(如果必要,仅矩形当然就足够了)进一步细化,以进行真正的搜索圆/椭圆
考虑到距离可能在20M或更小,您可能会假设平坦的地球来计算距离,尽管您会开始看到20M端出现明显的误差,但如果准确地需要更大的距离,您还需要开始寻找更好的距离模型面向全球,例如Haversine距离
当然,还有许多其他细节可以讨论,例如UI设计,DB模式,它们本身就是整个主题
每当您遇到这样的问题,而您根本没有问题领域的专业知识时,做几件事情是一件好事。
首先确认您在此问题领域没有专门知识。
其次,说明您将如何解决问题。
尽管我在使用地理搜索时没有特定的经验,但我相信有完善的算法和现有技术可以解决该问题。我将探索这些内容,以获得对我可用的常见解决方案的知识,并根据项目的需求选择实施方案。
第三,始终将此类问题减少到其基本组成部分。您知道地图上的位置是二维分布的。您知道,如果给定了任意的x,y坐标,则通过形成一个三角形并求解未知长度来计算到另一个坐标的每个坐标的距离。希望您也知道,如果要求您查找边界框内的所有坐标,则可以简单地通过计算要查找的框的范围并沿两个轴使用简单的大于,小于逻辑来实现。
最后,我从未聘请过似乎放弃问题的开发人员。如果我问一个问题,并且该人说“我不知道”,甚至没有尝试通过口头思考,它给我的印象是他们不会为头脑风暴会议做贡献-这对于编写软件的组织至关重要。