首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >需要帮助查找附近位置

需要帮助查找附近位置
EN

Stack Overflow用户
提问于 2011-08-17 22:39:38
回答 3查看 133关注 0票数 0

我是工作应用程序,需要找到附近的分销商的特定产品。到目前为止,我有当前的位置,纬度和经度。除此之外,我还列出了所有产品分销商与他们各自的坐标。我正在运行查询,它给我最近的10个位置,但为此,它遍历数据库中的每个记录,计算当前和那个特定位置之间的距离。它花了太多的时间。还有没有别的选择呢?

EN

回答 3

Stack Overflow用户

发布于 2011-08-17 22:49:31

您可以不首先通过创建最大和最小长度和最小长度(例如,在当前位置的10英里内)来缩小数据集的范围。然后,您可以通过lat > minLat和lat < maxLax等查询数据集。然后,如果需要,还可以通过计算缩减子集上的实际距离来对它们进行排序。

票数 1
EN

Stack Overflow用户

发布于 2011-08-17 22:51:11

为了避免计算每个位置的距离,您可以使用左上角的最大纬度长度(向上10英里,向左10英里)和右下角的最大纬度长度(向下10英里,向右10英里)创建一个经度长框(假设10英里)。然后,您的查询将使用>=和<=在该框中找到稍后的长线,然后计算每个长线的距离,以过滤掉角落中超过10英里的位置。

另一种选择是研究spatial indexing for SQLite

票数 1
EN

Stack Overflow用户

发布于 2011-08-17 22:50:11

你可以通过在你的位置周围创建矩形缓冲区来过滤附近的位置,从而缩小位置列表的范围。

从表t中选择* WHERE t.lat<(lat+buff)和t.long<(long+buff)和t.lat>(lat-buff)和t.long>(long-buff)

lat、long -您位置、缓冲区-您可以调整一些值以匹配您的应用程序需求(例如,100英尺、1英里等)

然后,您可以对返回的记录运行距离计算。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7094699

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档