【问题标题】:how to get nearest positions如何获得最近的位置
【发布时间】:2012-09-06 17:05:38
【问题描述】:

我正在开发具有地理定位功能的应用程序。我想在我的地图(例如)上显示离我当前位置最近的商店。我为我的数据库中的每个商店保存了纬度和经度,并且我有用户的当前位置。现在我想在我的缩放中从离我最近的 db 位置获取。

我不想全部选择它们,因为如果我有 10000 个位置将它们添加到 db(就像从 db 中获取它们一样)将很长并且消耗 CPU。这就是为什么我只想选择那些可以在地图上显示的。

地图以我当前位置为中心。如何得到它们?这个怎么算?

【问题讨论】:

  • 如果你有地图视图的范围,除了“使用<过滤坐标”之外,你还需要什么?
  • imo 很多。因为如果我当前的本地化是 51.133731/22.111321 如果我想从 1 公里区域选择位置,我如何知道 1 公里的差异?
  • 您可以计算实际距离,也可以高估并使用 112 公里/度(这大致是一个纬度或经度的最大公里数)。如果您只需要快速过滤大型数据集,使用估计可能就足够了。计算实际值的数学并不是特别棘手,但这个问题更适合the GIS StackExchange site
  • 如果使用 sql server,它已经内置了地理空间函数来处理这个确切的场景。
  • @JeffBrand-MSFT 你是地理数据类型吗?

标签: windows-8 windows-runtime bing-maps


【解决方案1】:

您可以使用Haversine formula 计算任意两点经纬度之间的距离。您可以构建一个存储过程(甚至是CLR stored procedure),它获取当前位置和距离并计算该区域内的所有点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多