马蜂窝技术原创内容,更多干货请关注公众号:mfwtech
随着智能手机存储容量的增大,以及相册备份技术的普及,我们可以随时随地用手机影像记录生活,在手机中存储几千张甚至上万张照片已经是很常见的事情。但另一方面,当我们想从这么多张照片中去找到一张,也是一件麻烦事。
马蜂窝作为旅行玩乐平台,希望实现「会玩的人」与「好玩的事」之间的连接。众多旅行爱好者在这里记录和分享他们的旅行记忆,使马蜂窝在旅游 UGC 领域累积了大量内容。因此,不断优化用户在发布内容时的体验是我们一直努力的主向。
用照片、视频记录旅行是最直接的方式。本文将介绍马蜂窝如何通过 App 地理相册空间索引的应用,为用户提供直观、好用的图片分享服务。
Part.1 应用场景和需求
要想让用户快速地找到想要分享的照片/视频,我们需要一个有效且合理的筛选手段,对用户的相册进行聚合、排序,提升用户依托相册去分享和记录生活时易用性和便捷性。
首先要确定聚合排序的筛选维度。照片的地理位置就是最直观的分类维度;同时,记录最近发生的事情符合用户的发布行为习惯。因此我们方案要满足的需求是:
- 根据目的地和时间,对用户相册进行聚合、排序;
- 基于某个地理位置信息和给定范围,在用户相册中搜索给定范围的照片/视频。
本文提及的地理相册服务在马蜂窝 App 内主要有两个落地场景。
1.1 笔记
「笔记」是以图片、视频为主要呈现形式的旅行短内容分享。用户发布笔记的第一个环节就是从相册中选择需要发布的照片/视频,在新版 App 中,基于地理相册服务结合马蜂窝自有目的地数据,对用户相册进行按照地点维度的聚合分类,并且按照片/视频的创建时间由近及远的排序,提升用户选择发布效率。

1.2 足迹
「足迹」这一产品的功能,旨在帮助马蜂窝用户以自动同步或手动点选去过的国家和地区这种更简易的方式记录旅行。在「我的足迹」中有一个场景,会鼓励用户对去过的但还没有发布笔记的地点发布笔记。此时地理相册服务可以帮助用户发布相册中以指定地点为圆心,给定半径范围内的所有照片。

Part.2 方案设计与算法选型
2.1 初期方案
初期我们想到的方案比较直观,也比较粗暴,就是对相册进行遍历后由服务端计算结果。具体来说,首先取出用户所有携带地理信息的照片/视频,然后将地理信息(经纬度)上传服务端,由服务端进行聚合和筛选,返回给客户端结果,但是这个方案有很多缺点。
文章开始我们已经描述了目前用户手机设备中的照片数量

本文介绍了马蜂窝如何通过App地理相册服务,利用Google-S2算法对用户相册进行按地点聚合排序,提升用户发布笔记和足迹的效率。通过相册索引数据操作、用户相册扫描、相册索引服务和相册地点分类计算四大模块,实现快速查询和性能优化。
最低0.47元/天 解锁文章
827

被折叠的 条评论
为什么被折叠?



