我创建了一个应用程序,它是一种社交网络。现在,如果我在我的应用程序中点击“搜索朋友”按钮,我应该能够找到在半径5英里范围内使用此应用程序(朋友)的其他人。我该怎么做呢?
顺便说一下,我正在使用Windows Phone 7.1.1 sdk。
答案 0 :(得分:1)
正如迈克尔所说,你需要管理服务器端。定期收集坐标(http://msdn.microsoft.com/en-us/library/system.device.location.geocoordinatewatcher%28VS.92%29.aspx)并将它们推送到您在您控制的服务器上公开的服务(WCF,REST或其他)。在服务器上,将坐标存储在某种数据库中。支持空间查询的方法最简单,但不是必需的。 MSSQL允许定义可以存储纬度/经度元组的地理类型列。
然后,当您的某个成员查询位于附近的用户时,收集该用户的当前位置,将其推送到服务器,然后运行查询以查找当前距离内的点的其他用户。有关SQL Server的示例,请参阅http://msdn.microsoft.com/en-us/library/ff929109.aspx。
同一组信息可以存储在MySQL或任何其他RDBMS中,但根据其功能集,您可能需要自己进行计算。如果你想做一个很大的圆距离,这是一个很有趣的问题,可以用于短距离或者一些触发的毕达哥拉斯定理。有关详情,请参阅http://www.movable-type.co.uk/scripts/latlong.html。