
微信小程序选择POI教程|门店地址回填校验与手输降级 – MPForge
直接回答:这份微信小程序选择 POI 教程写给做到店自提、门店核销、连锁分店展示的商家与开发:用 wx.choosePoi 调起地图选点,把用户选中的门店名称、坐标回填到表单,同时对脏数据做校验,选不到就降级为手动输入。MPForge(DEVDIY 旗下)在连锁到店类项目里反复验证过这套流程,回填失败率能压到个位数,提审也不会因为地址问题被拒。
一、选 POI 到底解决什么问题
结论先讲清楚:选 POI 是把「让用户描述门店在哪」变成「让用户在地图上点一下」,少打字、少出错、地址格式还统一。
到店类小程序(自提、预约、核销)最常见的翻车,不是功能缺失,而是地址数据乱:用户手填「我们店在菜市场旁边」,订单里既没坐标也没标准名称,后续做门店检索、导航、附近推荐全都断链。用选 POI 之后,名称与经纬度来自地图数据,天然结构化,做附近门店排序、按距离计算运费、导航到店才有数据底座。需要注意的是,这里的地理位置能力属于小程序 GEO 地理位置配置的范畴——解决的是「数据准不准、能不能被地图检索到」,不是按城市堆关键词的地域 SEO,两件事别混。
分工上,商家负责确认门店主数据(每家分店的官方名称、坐标、营业时间),开发负责选择、校验、降级三条路径都跑通。
二、动手前先对齐门店主数据
结论先讲清楚:表单里回填的数据质量,取决于你后台的门店主数据质量,先整理再开发能省一半联调时间。
- 整理分店清单:每家分店列出官方全称、详细地址、门牌号,和营业执照或门店招牌保持一致,避免同一门店出现两个叫法。
- 校准经纬度:在地图工具里逐店选点,误差控制在 100 米内;连锁店多的,用后台批量导入再抽查。
- 确定必填策略:POI 名称、坐标、详细地址三项设为最低校验集,缺任何一项都不允许提交表单。
- 准备降级文案:写好「找不到你的门店?手动填写地址」的入口文案,别让用户卡在搜索结果页。
- 确认用途说明:隐私指引里写清收集位置信息的用途(如「用于选择自提门店」),口径参考隐私指引填写规范,用途不清是常见驳回点。
三、调起选择与回填校验的完整流程
结论先讲清楚:正确顺序是「调起选点、校验字段、回填表单、失败手输」,每一步都要有验收口径。
- 在合适时机调起:由用户主动点击「选择门店」触发选点,不在页面加载时自动弹起,既省授权摩擦也符合审核预期。
- 校验回填字段:拿到 POI 结果后检查名称非空、坐标在合理范围、详细地址能拼出完整地址串,任一缺失走降级。
- 坐标二次比对:如果后台有门店库,把选中坐标与库内坐标比对,偏差超过阈值提示用户确认是否选错分店。
- 回填并允许修改:回填后保持字段可编辑,用户发现名称不对可以微调,不要锁死成只读。
- 失败转手动输入:搜索无结果、用户拒权、接口异常都统一切到手输表单,手输地址只做格式校验,不强求坐标。
验收时建议真机把三条路径各走一遍:选点成功、选点后取消、搜索无结果。前两条看回填是否正确,第三条看降级是否顺畅。
四、自检对照表:逐项打勾再提审
结论先讲清楚:地址类功能被拒多数是「脏数据」和「用途说明」两类问题,按表逐项核对能提前拦截。
| 检查项 | 达标口径 | 常见错误 |
|---|---|---|
| POI 数据校验 | 名称、坐标、详细地址三项齐才允许提交 | 不校验直接落库,出现脏 POI |
| 降级路径 | 选点失败或拒权后可手输地址完成下单 | 强制选点、失败后流程卡死 |
| 用途说明 | 隐私指引与弹窗写清「用于选择门店」 | 用途留空或与实际功能不符 |
| 坐标精度 | 回填坐标与门店实际位置偏差 100 米内 | 直接采信首次选点不校准 |
这批检查项和小程序审核被拒常见原因里的地址类目一一对应,提审前过一遍,比被拒后改再重提快得多。
五、和地图、选点能力的边界关系
结论先讲清楚:选 POI、选位置、打开位置是三个不同能力,选错了接口返工的是整个表单模块。
简单记:wx.chooseLocation 适合「让用户在地图上自由选一个点」(比如标注送货地址),接口说明见小程序选择位置教程;wx.openLocation 是纯查看,用内置地图展示某个坐标,参考小程序打开位置地图教程;而选 POI 拿到的是结构化的地点数据(名称+坐标+地址),适合回填门店表单。如果只展示门店位置给用户看,用打开位置就够了;要用户「认领」一家门店,才用选 POI。拿不准时先问自己:数据要不要进订单?要进,就选 POI 并校验;只是看,就打开位置。
六、避坑清单
这三条坑都是到店项目里真实发生过的,每条都有对应检查动作。
- 别让脏 POI 进订单:不校验名称与坐标就落库,后续门店检索会出现「查无此店」;最低校验集三项必须齐全。
- 别强制选点:地图数据里搜不到的新开门店、郊区门店很多,没有手输降级用户就直接流失。
- 别忽略拒权场景:用户拒绝授权后界面要给出明确解释和手输入口,而不是按钮无反应。
- 别把 GEO 当地域 SEO:门店能不能被「附近」检索到,靠的是地址与经纬度配置,靠文案堆城市词没用。
七、常见问题 FAQ
选 POI 和选位置(chooseLocation)用哪个?
回填门店这类结构化地点数据用选 POI;自由标注一个送货点用选位置。区分标准是「数据要不要进订单」:进订单选 POI 并做三项校验,仅展示用打开位置。
用户选的 POI 和后台门店库对不上怎么办?
用坐标比对兜底:选中坐标与库内门店偏差超过阈值时提示确认,允许用户选择「仍按所选提交」,但记录差异便于运营修正主数据。
用户拒绝授权还能用吗?
能。拒权后自动切入手动输入表单,只做地址格式校验;同时页面给出简短说明为什么需要位置,用户改主意后可重新触发选点。
这和 GEO 地理位置配置有关系吗?
有关但不是一回事。本文讲的是小程序内选点回填的交互与校验;小程序 GEO 地理位置配置指的是门店地址、经纬度、服务类目在平台侧的配置,决定「附近」检索展示,不是按城市堆关键词的地域 SEO。
提审时地址类被拒怎么改?
先核对隐私用途说明与实际功能是否一致,再检查强制选点与降级路径,最后看脏数据;改完对照审核被拒常见原因复查再重提,不要原样硬提。