
小程序选择位置 chooseLocation 教程|地图选点、授权与回填 – MPForge
直接回答:这篇小程序选择位置 chooseLocation 教程写给需要采集送货地址、自提门店、服务地点的商家与开发。核心口径:让用户在地图上主动选点,比后台拉定位更稳——精度由用户确认、隐私压力小、还自带手输降级。要做对三件事:调起前说明用途、选点结果回填校验、拒绝授权后仍能手输完成下单。MPForge(DEVDIY 旗下)按这套闭环做地址采集的项目,因「强制定位才能下单」被驳回的记录为零。
一、为什么选点比直接拉定位更稳
结论先记住:地址采集的目标是「拿到一份用户认可的地址」,不是「拿到一个坐标」——选点天然满足前者,后台拉定位只满足后者。
直接调定位拿到的坐标,用户没有参与确认,楼层、门牌、相邻楼宇的错位全由系统背锅;配送骑手按错误坐标找半小时,客服进线就来了。而调起地图选点后,用户看着地图把大头针放到实际位置,附带的地点名称与详细地址是地图侧回传的结构化数据,回填进表单即可展示确认,双方对「送到哪里」有一致口径。
审核侧也是同样的逻辑:把「必须授权定位才能下单」做成硬门槛,属于典型的一票否决项;选点加手输的组合既覆盖拒权用户,又把定位用途收缩到「辅助默认选点」这一个动作上,说明文案好写、审核好过。
分工口径:商家定「哪些场景需要选点、哪些手输就够」,开发负责调起、回填与降级,别把地图能力当成默认全站开启。
二、操作步骤:从用途说明到手输降级
五步走完,地址采集才算闭环,缺一步都会在某个用户分支上断路。
- 先说明用途:调起选点前用一句话讲清「为了确认送货或到店地点」,与隐私协议里的位置信息条款对齐,弹窗时机与文案写法参考 小程序隐私弹窗与授权体验。
- 调起地图选点:在用户点击「选择地址」类按钮时调起选点界面,由用户在地图上确认位置;不要在页面加载时静默调起,既伤体验也难过审。
- 回填并校验:把返回的地点名称、详细地址、经纬度回填进表单,展示给用户确认;对空值与明显脏数据做校验,名称与经纬度不匹配的记录要在提交前拦下。
- 留手输降级:用户取消选点或拒绝授权时,切换到手动输入地址的表单路径,必填字段与选点路径一致,保证两条路都能完成下单。
- 真机抽检:选点、取消、拒权三条分支各走一遍,检查回填显示、订单落库字段与导航跳转;换一台机型再过一遍确认行为一致。
三、回填字段口径:拿到什么、存什么、校验什么
选点返回的数据别整包照存,按用途拆字段,冗余数据以后是负担。
| 字段 | 建议口径 | 常见错误 |
|---|---|---|
| 地点名称 | 用于展示与订单备注,保留原名 | 拼接进详细地址后无法区分展示场景 |
| 详细地址 | 回填表单并让用户可修改 | 设成只读,用户发现楼层缺失只能取消重来 |
| 经纬度 | 单独存列,供骑手端与导航使用 | 混进地址字符串,后续无法做距离计算 |
| 校验口径 | 名称、地址、经纬度三者齐备才允许提交 | 只看有值不看合理性,脏数据直接进订单 |
回填之后常见的一步是「查看路线」:把选点结果交给打开地图能力,直接带用户进导航,衔接做法见 小程序打开地图导航。基础定位能力与坐标系口径则参考 小程序定位能力与坐标系,避免两套坐标混存。
四、授权与降级:把「拒权」当成正常分支设计
拒权不是异常,是每天都会发生的用户选择,主路径必须能接着走。
设计上把地址采集分成两条独立通路:选点通路负责精度,手输通路负责兜底。两条通路在表单层汇合成同一个地址结构,订单侧不感知来源差异。授权弹窗只在「需要辅助默认选点」时出现一次,拒绝后不再重复弹,改由用户主动触发——反复弹窗既是体验事故也是驳回理由。
商家侧要盯的是业务规则里有没有隐形的定位门槛:比如「选点失败就不允许下单」「手输地址加收运费」这类规则,会把手输降级变成二等通路,用户宁可放弃订单。降级通路要在价格、时效、售后上与选点通路完全同权。
五、避坑清单
这四条坑都在真实项目的地址链路里出现过,上线前逐条自查。
- 别做强制定位门槛:「不授权不能下单」是驳回高发项,把定位收缩为辅助动作,选点与手输才是主通路。
- 别静默调起选点:页面一打开就拉起地图,用户不知道为什么被跳走;调起必须由明确按钮触发,且之前有用途说明。
- 别照存整包数据:把返回结构原样入库,字段冗余且版本升级后结构变化难维护;按用途拆字段,经纬度单独存列。
- 别忽略取消分支:用户在选点界面取消返回后,表单状态要回到可编辑状态,不能卡在「加载中」或空白提交按钮上。
六、常见问题 FAQ
选点和拉定位,精度上谁更可靠?
看用途。到店、配送类场景,用户亲手选点的「最终确认精度」更可靠,因为人为纠错了基站与室内定位的漂移;连续轨迹、按距离计价这类场景才需要后台定位,两者用途不同不互斥。
海外手机号或海外地点能用选点吗?
以平台地图能力当期支持的地区范围为准。跨境业务建议在表单层预留手输通路并单独设计国别与邮编字段,不要假设选点结果在所有地区结构一致。
审核说明怎么写容易过?
写清三点:什么场景调起选点、位置信息用于什么、拒权后是否有替代路径。「用于确认送货地址,拒绝授权可手动填写」这一句话能覆盖大部分问询。
这个和 GEO 地理位置配置有关系吗?
有边界但不是一回事。选点是客户端采集用户位置的能力;GEO 指小程序 GEO 地理位置配置——门店地址、经纬度、服务类目录入后台,决定「附近」检索展示。前者管拿到用户位置,后者管让用户找到你。
选点结果用户说位置不对怎么办?
回填时保留可编辑的详细地址字段,让用户补充楼层、门牌等地图数据覆盖不到的信息;订单侧同步允许修改地址的时限口径,避免骑手接单后无法纠错。