expo-gaode-map-search
原生搜索开发 (Search)
描述
协助开发者使用 expo-gaode-map-search 包进行原生搜索功能的开发。该包直接调用高德原生 SDK 接口,相比 Web API 具有更优的性能且不消耗 Web 服务配额。
使用场景
- 需要搜索 POI(兴趣点),如“附近的加油站”。
- 需要实现搜索框的自动补全(输入提示)。
- 需要将坐标转换为地址(逆地理编码)。
- 需要高性能搜索,无额外网络请求开销。
开发指令
- 依赖:确保已安装任一基础包 (
core或navigation) 并完成 Key 配置。- 如果通过基础包调用
initSDK()传 key,则也要先完成隐私确认。 - 如果基础包已经通过 Config Plugin 注入了原生 key,可以直接
initSearch()做配置检查。
- 如果通过基础包调用
- POI 搜索:
- 关键字搜索:
searchPOI - 周边搜索:
searchNearby - 沿途搜索:
searchAlong
- 关键字搜索:
- 辅助功能:
- 输入提示:
getInputTips - 逆地理:
reGeocode
- 输入提示:
快速模式
✅ 正确:在搜索前初始化
import { initSearch } from 'expo-gaode-map-search';
// 可选:提前调用以检测 API Key 配置问题
initSearch();
✅ 正确:使用城市编码提高准确性
// 相比使用 "北京",使用 "010" 能更准确地锁定区域
const result = await searchPOI({
keyword: '银行',
city: '010'
});
❌ 错误:不处理搜索空结果
搜索可能返回 0 个结果或抛出异常(如网络问题、API Key 无效),务必使用 try-catch 并检查 result.pois.length。
升级提示
如果你的项目在基础包中仍使用 initSDK() 传入 key,那么升级后请先补上隐私确认流程;否则初始化阶段可能先失败,而不是进入搜索逻辑。
🛡️ 类型安全最佳实践
本库提供了完整的 TypeScript 定义,请参考 类型定义文档 了解详情。
核心原则:请勿使用 any,始终导入并使用正确的类型(如 PoiSearchOptions, Poi, InputTip 等)。
参考文档
More from tomwq/expo-gaode-map
expo-gaode-map-navigation
高德导航全功能一体化方案:集成完整地图能力(MapView/全部覆盖物/离线地图/定位/几何计算,无需核心包),提供官方 NaviView 导航 UI(语音/事件/路况/指南针);支持多模式路径规划(驾车/步行/骑行/货车/摩托车/电动车)及策略/限行/途经点;具备高级独立算路能力(预估/路线预览/选择/启动);包含 Config Plugin 自动配置;与 expo-gaode-map 存在 SDK 冲突,项目仅需安装此包。若使用本包导出的地图或定位能力,同样必须先完成 `setPrivacyShow`、`setPrivacyAgree`。
20expo-gaode-map-web-api
高德 Web 服务纯 JS 完整封装:提供 V5 路径规划(驾车/新能源/步行/骑行/跨城公交)、地理编码(正/逆)、POI 搜索(关键字/周边/多边形)及输入提示;内置 LRU 缓存、自动重试与请求取消机制;全 TypeScript 类型定义;适用于跨平台逻辑层,可配合核心包/导航包下发 `webKey`,也可直接构造传 key。
18expo-gaode-map
Expo 高德地图核心能力:原生 MapView 渲染(标准/卫星/夜间/导航),手势与相机控制;定位服务(单次/连续/后台定位,蓝点样式与跟随);覆盖物绘制(Marker/Polyline/Polygon/Circle/HeatMap/MultiPoint/Cluster,C++ 引擎驱动的高性能聚合);离线地图下载与管理;类型安全的 TS API 与原生几何计算(距离、最近点吸附、轨迹抽稀、点在多边形内、路径长度);支持 Config Plugin 自动配置与 initSDK(webKey/iosKey/androidKey) 初始化;适配 iOS/Android。注意:所有地图/定位接口前必须先完成 `setPrivacyShow`、`setPrivacyAgree`。
16