代码之家  ›  专栏  ›  技术社区  ›  Michael Pryor

如何在iPhone上的Objective C中显示按GPS位置排序的下拉列表信息

  •  2
  • Michael Pryor  · 技术社区  · 17 年前

    有没有一种简单的方法可以在iPhone上按“最接近当前位置”显示排序的下拉列表?

    这会很快吗?或者,我必须在后台进行预排序(在您选择下拉列表之前)吗?

    3 回复  |  直到 17 年前
        1
  •  2
  •   Rog    17 年前

    您可以使用sortedArrayUsing之一对数组进行排序。..向您的位置数组发送消息。

        2
  •  1
  •   Mark Bessey    17 年前

    如果你确实需要在显示时对它们进行排序,你可能很快就能对几千个点进行排序。对于许多应用,处理lattitude和;经度作为直角坐标可能已经足够好了。计算实际距离并不难,但计算量将是排序的数倍。

    哦,如果你在NSArray中有你的数据点,看看sortedArrayUsingSelect:和sortedArrayUsingFunction:context:

        3
  •  1
  •   Ramin    17 年前

    取决于数据库中的城市数量。如果搜索量很大,那么你可能想使用预修剪技术来限制搜索范围,比如使用预先计算的“区域”或将搜索限制在“X或更大的城市”等。由于城市不会移动,人口和规模也不会突然变化,想想如何尽可能多地进行预先计算。

    那

    另一个值得效仿的技巧是UITableView,它按需提取信息,因此在任何给定时间,只需要计算可见单元格的数量。因此,与其获取附近每个城市的数据,不如尝试将视图限制在第一个屏幕上可见的5-6个范围内,如果你允许滚动,则在用户上下导航时获取其余的数据。

    http://www.movable-type.co.uk/scripts/latlong.html