Skip to content

全局约定(一定要看)

成功判定

  • status == 10000 表示业务成功;否则触发 onBizError(status, msg, traceId)

TraceId

  • 服务端返回 trace_id → SDK 字段 traceId。无论成功/失败,日志与排障务必带上该值。

坐标与单位(最易混淆)

  • 请求坐标:始终为字符串 "lng,lat"(经度在前)。
  • 返回坐标:两种形态 1)路径点(路线规划 results[].routes[].geo_list):latitude / longitude; 2)文本坐标(公交/步行段、站点、origin/destination 等):字符串 "lng,lat"
  • 距离distance/dist时长duration费用cost(展示用 cost/100.0 + "元")。

字段命名映射

  • 服务端下划线 ➜ SDK 驼峰: trace_idtraceIdaddress_alladdressAllgeo_listgeoListwalking_distancewalkingDistance

可缺省字段

  • resultsresults[].routesdistance(关键词/输入提示没有)、geo_list、公交 segments/walking/metrobus/steps/via_stops可能为空,渲染前请判空。

1 回调类型总览(所有服务统一使用)

所有异步接口均采用:RpcRequestUtils.Callback<T>,包含三类方法:

java
void onSuccess(T data);
void onBizError(int status, String msg, String traceId);
void onFailure(Exception e);

本指南涉及的 T 有:

  • Callback<PlaceTextSearchResponse>(POI:关键词 / 周边 / 输入提示)
  • Callback<ReverseGeoResponse>(地理编码:逆)
  • Callback<ForwardGeoResponse>(地理编码:正)
  • Callback<RouteResponse>(路线规划:步行 / 骑行 / 驾车)
  • Callback<BusRouteResponse>(路线规划:公交)

2 回调入参 data 是什么?

  • data = Callback<T>.onSuccess(T data) 的入参,类型就是泛型 T(见上表)。
  • 来源:SDK 将服务端 JSON 反序列化为对应的 POJO
  • 语义:仅当业务成功(status == 10000)才进入 onSuccess 并给出 data;否则走 onBizError(status, msg, traceId)onFailure(e) 多为网络/超时/解析错误(通常拿不到 traceId)。
  • 可空性:data 内部字段(如 resultsdistancegeo_list 等)可能为 null,请按示例判空。
  • 线程:回调不保证主线程;更新 UI 请 runOnUiThread(...)

快速对照:data 里常用字段

回调data.traceId结果主体常用字段提示
Callback<PlaceTextSearchResponse>results: List<PlaceItem>location.lng/lat;周边搜索才常见 distance
Callback<ReverseGeoResponse>results: List<Result>addressAll(优先)/addresslocation.lng/lat
Callback<ForwardGeoResponse>results.geocodes: List<GeoItem>location.lng/latprovince/city/district/adcode
Callback<RouteResponse>results[].routes: List<Route>routes[].dist(米)、routes[].duration(秒)、routes[].geoList[].latitude/longitude
Callback<BusRouteResponse>results: List<BusRouteResult>cost(分)、walkingDistancesegments[].metrobus[]

3 响应结构表格约定(本指南统一使用)

  • 路径表示obj.a.b 表示嵌套;数组用 [],如 results[0].location.lng
  • 类型string / int / double / object / array<object>
  • 可空:该字段在成功响应中也可能缺省或为 null
  • 单位:仅对数值字段标注
  • 服务端字段:若与 SDK 字段不同,这里列出服务端原名