iOS - 允许所有用户查找附近的地图引脚

时间:2016-01-13 01:30:52

标签: ios location

我正在创建一个iOS应用,用户可以在地图上放置一个图钉(CLLocation),而该点x英里范围内的所有其他用户都可以在地图上看到它。我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:1)

1)用户在地图上放置一个图钉 - >引脚放置功能向具有纬度,经度和注释名称的服务器发送消息。

2)服务器检查用户在半径范围内的内容 - >向用户发送静默通知。

3)本地应用程序丢弃了一个引脚。

OR

2)服务器向所有用户发送静默通知(包含纬度,经度)。

3)应用程序的本地实例决定是否在该位置放置一个引脚。

基本上你在这里有一些选择 - 用户是否需要不断更新服务器的位置,只有相关用户才会收到通知?或者您希望所有用户都收到通知和应用程序来决定是否应该删除通知。

答案 1 :(得分:1)

对一种可能的解决方案的简单看法可能有三个主要组成部分:

  1. 允许用户查看和放置图钉的客户端应用。
  2. 一个服务器端应用程序,它从许多客户端接收位置并向其发送引脚。
  3. 存储所有已知引脚的数据库。
  4. 然后问题提出两个感兴趣的序列:

    创建一个引脚:

    1. 用户在客户端应用上创建一个图钉。客户端应用程序将该引脚的描述发送到服务器(这通常是HTTP POST请求,但有很多选项)。
    2. 服务器接收此请求,验证它是否理解该引脚的描述以及客户端是否有权创建它,将其转换为便于存储在数据库中的格式并将其发送到数据库。
    3. 数据库将新的引脚信息添加到其已知引脚列表中。
    4. 服务器通过“成功”消息响应客户端的请求,确认该引脚已保存。
    5. 查看图钉:

      1. 客户端应用程序需要显示附近的引脚(因为用户启动了应用程序,或切换到地图视图,或应用程序收到通知,或其他)。客户端向服务器发送请求,询问哪些请求所有可见引脚以及哪些包括客户端的位置。 (您可以决定客户端是否也可以定义什么距离计算为“附近”。)(如果创建一个引脚使用HTTP POST,那么这可能是一个HTTP GET,但又有很多选项。)
      2. 服务器收到此请求,确定是否应与该用户共享引脚信息,如果是,则构造一个查询,从数据库中获取所有“附近”引脚。
      3. 数据库使用0到多个引脚的信息响应此查询。
      4. 服务器将这些引脚的数据库表示转换为客户端应用程序可以理解的格式,并发送包含这些引脚的响应。 (随着引脚组变得非常大,这可能会变得更加复杂;服务器可能只返回一些附近的引脚以及有关未包含多少引脚的信息,然后客户端可以在第二个请求中获得另一个“页面”结果。)
      5. 有许多决定要做,并有许多工具可供选择来构建所有这些部分。您可以使用许多编程语言来编写服务器端组件(许多用这些语言编写的框架试图使构建某些类型的Web应用程序更容易)。您可以使用许多数据格式来交换信息,并且可能使用许多数据库来存储这些数据(其中一些数据库内置了对地理定位数学的支持,您需要确定哪些引脚“接近”给定的纬度和经度)。