针对基于位置的活动应用的搜索结果排名的想法[iOS&的Android]

时间:2016-08-31 12:43:55

标签: database-design gps google-places-api backend

我正在开发一个简单的ios应用程序,用户可以在其中执行Google Places API提供的位置的活动(审核,签到)。我在第一次对其执行活动后,在app的后端(在服务器上)存储位置的ID,名称和坐标。目前我的数据库中有两个表Activity&地点。

现在,我想在地图上向用户显示这些活动的位置。用户可以查看当前位置周围的位置,也可以搜索城市中的位置。我还想允许用户搜索某个视口中的位置,如AirBnB或Fourthsquare。目前我的搜索查询采用中心坐标& radius并返回我服务器上的所有可用位置。

我的问题是如何根据当前地图缩放在搜索结果中对我的位置进行排名。在AirBnb应用程序中,如果您选择一个城市,那么它会显示X个可用房间但在地图上它不会同时显示所有位置,但是当您放大时,您会看到更多位置。我怎样才能实现这一点,因为当您放大时,搜索半径会减少,但地图上的位置数实际上会增加?

我知道在地图上你可以在组引脚形式中显示大量的引脚(位置),当你放大时,这个组引脚被改成单独的引脚,但我不想从服务器获取大量的引脚。我只想根据当前缩放级别显示最适合的位置。

关于其他应用如何做这件事的任何想法?

1 个答案:

答案 0 :(得分:1)

如果您有一些统计信息(用户评分,访问次数等),您可以按该指标显示前200个点。

通过这种方式,您可以限制地图未分割时的行数,但仍会显示该区域中最有价值的点(仅限于半径或方形X-X * Y-Y坐标)。

另一方面,当您放大时,会显示越来越多的点,直到所有点都在地图上。