SuperAPI AI 工具集

geolocation

通用与其它

查看项目

更新于 10-15 20:31

技能介绍

用途:获取用户当前位置或一次性快照,需显式授权。持续位置流请用 react-native-realtime-location,后台定位请用 react-native-background-location,反向地址解析请用 reverse-geocoding。

按环境选择 API:Expo RN 用 expo-location 的 getCurrentPositionAsync;RN bare 用 @react-native-community/geolocation 或等效库;Web 用 navigator.geolocation。

基本流程:检查定位服务是否开启 → 请求权限 → 调用 getCurrentPosition({ accuracy, timeout, maximumAge }) → 得到 { lat, lng, accuracy, altitude?, heading?, speed?, timestamp }。iOS 上 When-In-Use 足够用于快照;Android 按需选择 fine 或 coarse,取货点打点用 fine。

不可协商的规则:先请求权限再定位,处理 denied/restricted;设置合理的 timeout 与 maximumAge,避免界面永久卡住;传递 accuracy,关键场景丢弃差于阈值的读数;GPS 关闭或无信号时提供回退交互(手动输入、上次已知位置、可拖动地图);不要阻塞首屏,用异步加骨架屏。

需处理的错误类型:permission_denied、services_disabled、timeout、unavailable,并映射为可操作的文案(如“开启定位”“打开设置”)。

隐私:尽量少留存位置,无功能上下文不上传;若持久化到后端,需在政策中说明用途。

反模式:未检查权限就假设成功;无必要地始终 enableHighAccuracy: true(耗电);吞掉错误并返回 0,0;仅为一次取点就请求 Always 权限。

完成标准:授权后获得可靠快照;所有主要错误均有对应 UX;向消费方(地图/匹配)提供 accuracy;在 iOS 与 Android(若在范围内还包括 Web)上可用。具体安装命令、代码示例与收费信息暂未提供。