小i约球诞生记07:约球小程序别低估 Location 接口
本文是「小i约球诞生记」系列文章之一。
小i约球是一个微信小程序,主要帮乒乓球、羽毛球、台球、网球爱好者找到附近合适的球友。本文从一个具体技术或产品问题切入,记录约球小程序从 0 到 1 过程中的设计取舍。
小程序:微信搜索「小i约球」
前言
做附近球友功能时,定位接口很容易被想简单。
很多人第一反应是:小程序拿一下用户经纬度,然后查附近的人,不就完了吗?
真正做约球小程序,会发现这事没那么轻。定位精度、接口权限、用户授权、坐标系、地图展示、审核说明,每一项都会影响最后的体验。
尤其是约球、找搭子这种线下场景,位置不是一个装饰字段。用户想找乒乓球搭子、羽毛球搭子,看的就是“离我近不近”。如果定位偏了两三公里,地图上看起来只是一个点,现实里可能已经是完全不同的通勤成本。
对资讯类小程序来说,城市级位置可能够用。对附近球友匹配来说,不够。
低精度定位的问题
低精度定位的好处是门槛低,用户心理压力也小。它适合判断大致城市、区域,或者做一些不依赖精确距离的推荐。
但约球不是只看城市。
比如你想找公司附近的羽毛球搭子,或者家附近 3 公里内的乒乓球球友,几公里的偏差就很明显。地图上显示“附近”,实际走过去要半小时,这种体验很伤。
更麻烦的是,用户不会知道这是定位精度的问题。
他只会觉得:这个约球小程序推荐的人不准,附近球友看着挺近,实际根本不方便。
所以低精度定位可以做兜底,但不适合作为附近约球匹配的主能力。至少不能把它包装成“精确附近”。
getLocation 和 getFuzzyLocation 不是一回事
微信小程序里和位置相关的能力不止一种。常见的思路大概有两类:
- 获取当前位置,用来知道用户现在大概在哪
- 让用户主动选择地点,用来表达他想在哪里约球
前者通常会想到 `wx.getLocation` 或 `wx.getFuzzyLocation`,后者会想到 `wx.chooseLocation`。
这两类能力解决的问题不同。
`wx.getLocation` 更偏向获取较精确的当前位置,适合做首页默认位置、附近球友列表的初始参考。它回答的是:“你现在在哪里?”
`wx.getFuzzyLocation` 是模糊定位,适合拿到大致位置,比如城市或区域级别的位置判断。它的申请和用户心理压力通常会小一些,但不适合直接承担精确的附近球友匹配。
`wx.chooseLocation` 是用户手动选点,更适合发布约球名片。它回答的是:“你想在哪里被别人发现?”
这两个问题不能混用。
一个人现在可能在公司,但晚上想在家附近找羽毛球搭子;也可能人正在家里,但想发布常去球馆附近的乒乓球约球信息。如果发布约球名片时只用当前定位,就会把产品场景做窄。
所以我的判断是:定位用来辅助,选点用来确认。
高精度不只是参数问题
很多文章会说,开启高精度定位、设置坐标类型、配置相关权限,就能拿到更准的位置。
技术上这当然重要,但真正上线时,问题不止是代码参数。
首先,地理位置接口属于敏感能力,通常需要在小程序后台做用途说明和权限配置。不同接口、不同主体、不同类目,审核要求可能不同。具体能不能申请、怎么描述用途,要以微信公众平台后台的最新提示为准。
其次,高精度定位会带来更明显的授权压力。用户看到定位弹窗时,会本能地问一句:你为什么要我的位置?
如果你只是做天气、资讯、内容浏览,用户可能会拒绝。约球场景相对好解释,因为找附近球友、查看附近约球信息,本来就依赖位置。但解释要写清楚,不能含糊。
还有一个很实际的问题:高精度定位可能更慢,也更容易受环境影响。室内、地下、商场、写字楼,定位效果都不一定稳定。不能把它当成永远准确的能力。
坐标系也会坑你
地图相关功能还会遇到坐标系问题。
小程序地图、腾讯地图、高德地图、GPS 原始坐标,不同场景下使用的坐标类型可能不同。常见的 `wgs84`、`gcj02` 如果混用,地图点位就可能出现偏移。
这类偏移有时候不大,但对约球产品来说很烦。
用户看附近球友、球馆或约球名片时,点位偏到路对面、隔壁园区,都会降低信任感。尤其是地图 marker 和列表距离同时出现时,如果两边算出来不一致,用户很容易觉得产品不靠谱。
所以坐标系要尽早统一。用于地图展示、附近查询、用户选点的数据,最好在设计阶段就约定清楚,不要等到页面都做完了再到处补转换。
用户拒绝授权怎么办
定位能力一定会遇到拒绝授权。
这不是异常情况,而是正常路径。
约球小程序不能把所有体验都压在“用户必须授权定位”上。用户拒绝定位后,至少要有替代方案。
比如:
- 让用户手动选择常用约球地点
- 使用用户上次选择的位置
- 展示默认城市或热门区域
- 告诉用户开启定位后能看到附近球友
这里的重点是,不要让页面直接死掉。
用户可能一开始不愿意授权,但看懂产品价值后,后面愿意手动选点,甚至重新开启定位。第一次拒绝不代表永远拒绝。
约球产品更适合“定位 + 选点”组合
如果只靠定位,产品会过度依赖用户当前所在位置。
如果只靠手动选点,首次体验又会变重。
更稳的方式是组合使用。
首页可以尝试用定位给用户一个默认的附近视图。定位失败,就让用户选一个常用区域。发布约球名片时,不要默认把当前位置当成约球地点,而是让用户确认或选择:家附近、公司附近、常去球馆附近,都可以。
对找搭子的人来说,这个设计更符合真实生活。
很多人不是“此刻想在脚下这个位置打球”,而是“我常在某个区域打球,希望附近合适的人能看到我”。
这个差异很小,但决定了产品是不是顺手。
小结
Location 接口看起来只是拿经纬度,实际牵涉定位精度、权限审核、用户授权、坐标系和兜底体验。
在约球、找搭子、附近球友这类线下场景里,位置精度会直接影响用户信任。低精度定位可以做兜底,但不要把它当成精确附近匹配。高精度定位也不是只改一个参数,还要考虑审核、授权解释和失败路径。
我的建议是:定位负责降低首次使用成本,选点负责表达真实约球地点。两者配合,体验会比单押某一个接口稳得多。
如果你正在找附近球友、乒乓球搭子、羽毛球搭子,或者想发布本地约球信息,可以试试小i约球。
---
本文属于「小i约球诞生记」系列。
项目官网:https://iyueqiu.cn 微信小程序:搜索「小i约球」