请求参数说明
本文说明 SearchClient 请求与初始化 所使用的 Entity SDK 类型(com.telenav.sdk.entity.*)及 com.telenav.searchservice.api 中的 SearchSettings、NetworkMode 等,在 Google 搜索 与 TN(Entity)搜索 下的 支持程度与行为差异。
类型与路径总览
| 类型 | 主要 Builder | TN | |
|---|---|---|---|
GeoPoint |
searchRequest / suggestionPredictionRequest / getDetailRequest 等 |
✅ | ✅ |
SearchServiceInitOptions / SearchSettings |
SearchService.initialize |
✅ | ✅ |
NetworkMode |
SearchClient.setNetworkMode |
✅ | ✅ |
MultiboxQuery |
searchRequest().setQuery(MultiboxQuery) |
✅ | ✅ |
SearchFilters 及子类型 |
searchRequest().setFilters(...) |
部分 | ✅ |
EvFilter |
SearchFilters.setEvFilter(...) |
✅(部分字段) | ✅ |
FacetParameters |
setFacetParameters(...) |
❌ | ✅ |
SortType |
searchRequest().setSort(...) |
✅ | ✅ |
SearchOptions |
searchRequest().setSearchOptions(...) |
部分 | ✅ |
GetDetailOptions |
getDetailRequest().setDetailOptions(...) |
✅ | ✅ |
ExitPoint |
searchByExitRequest().setExits(...) |
❌ | ✅ |
初始化与网络
SearchServiceInitOptions
仅 SearchService.initialize() 使用(com.telenav.searchservice.api.SearchServiceInitOptions)。
| 字段 | 是否必填 | 默认值 | 含义 |
|---|---|---|---|
sdkOptions |
是 | — | Entity SDKOptions(鉴权、endpoint、目录、区域等);setRegion(...) 同时用于 Entity Service 与Google service |
searchSettings |
是 | — | 见下表 SearchSettings |
enableNavPoint |
否 | false |
Google 导航点:true 时算路坐标更精准;须与服务端 enable_nav_point 同时为 true |
setRegion(...) 支持值及与 endpoint、初始化位置的一致性要求见 快速接入 §3.1。
Nav Point 详解见 快速接入 §3.1 enableNavPoint。
SearchSettings
仅 SearchService.initialize() / SearchServiceInitOptions,不随每次搜索传递(com.telenav.searchservice.api.SearchSettings)。
| 字段 | 是否必填 | 默认值 | 含义 |
|---|---|---|---|
allowOffer |
否 | null |
是否允许 Offer facet |
timeout |
是 | — | Google WebView 等待上限(毫秒)→ 超时 fallback TN;须 > 0,常用 5000 |
googleSearchEnabled |
是 | — | 是否启用 Google 搜索路径 |
userIsExpired |
是 | — | 影响 TN 云搜开关 |
rgcIsOnboard |
是 | — | onboard RGC 策略;云集成通常 false |
onlyOnBoardSearch |
否 | false |
true 时仅 onboard Entity,不初始化云 EntityClient |
详见 快速接入 §3.1 构造函数说明。
NetworkMode
| 枚举 | 行为 |
|---|---|
CONNECTED |
TN SDKRuntime.setNetworkAvailable(true);Google 触发 config / bind retry |
DISCONNECTED |
TN 标记离线;Google WebView 暂停相关能力 |
API:SearchClient.setNetworkMode。集成方应在系统网络变化时调用。
位置与坐标
GeoPoint
Entity SDK WGS84 坐标(com.telenav.sdk.entity.model.base.GeoPoint)。
| 字段 | 含义 |
|---|---|
latitude |
纬度 |
longitude |
经度 |
用途:
searchRequest().setLocation(GeoPoint)— 搜索中心searchRequest().setAnchor(lat, lon)— 锚点(优先使用 anchor 作为 搜索中心)SearchFilters内BBoxGeoFilter的bottomLeft/topRightsuggestionPredictionRequest().setLocation(...)getDetailRequest().setLocation(lat, lon)— 车机位置GoogleSearchAvailabilityPolicy内部 RGC 判国家
Builder 也支持 setLocation(lat, lon) 重载。
searchRequest() 入参
查询:String / MultiboxQuery
| 方式 | 说明 |
|---|---|
setQuery(String) |
普通文本搜索 |
setQuery(MultiboxQuery) |
多条件 / 语音结构化查询(what / where 等 tag) |
MultiboxQuery 示例:
1 2 3 4 | |
| 路径 | 行为 |
|---|---|
使用 request.query 字符串作为 搜索关键词;Multibox 需 TN 侧组装后体现在 query 中 |
|
| TN | 原样交给 Entity SDK |
SearchFilters
通过 SearchFilters.builder() 组合地理、分类、EV、品牌等过滤。SearchRequestAnalyzer 根据 geoFilter.type 与是否含 categoryFilter 决定 operation 及是否可走 Google。
CategoryFilter
| 字段 | 含义 |
|---|---|
categories |
分类 ID 列表(如 "241"、"771") |
有分类 + RadiusGeoFilter → categorySearch;有分类 + BBoxGeoFilter → categoryBoundingBoxSearch。
地理过滤(GeoFilter 子类型)
| 类型 | Builder | 说明 | |
|---|---|---|---|
RadiusGeoFilter |
RadiusGeoFilter.builder(radiusMeters) |
✅ | 分类搜索半径;未设时 Google 默认约 5000m |
BBoxGeoFilter |
BBoxGeoFilter.builder(bbox) |
✅ | 矩形框选;BBox 由 bottomLeft / topRight GeoPoint 构成 |
CorridorGeoFilter |
Entity SDK builder | ❌ | 沿途搜索(Along Route);路线 corridor 搜索,Google 不支持 |
PolygonGeoFilter |
Entity SDK builder | ❌ | 多边形范围搜索 |
BrandFilter
仅品牌、无分类时 → brandSearch,TN only。
EvFilter
置于 SearchFilters.setEvFilter(...)(com.telenav.sdk.entity.model.base.EvFilter),用法与 Entity SDK 一致:在 searchRequest() 中设置后由 SearchClient 在搜索 API 调用中转发过滤条件。
| 字段 | TN | |
|---|---|---|
connectorTypes |
✅ | ✅ |
minPower |
✅ | ✅ |
maxPower |
❌ | ✅ |
其他(如 available、营业状态、charger brand 等) |
❌ | ✅ |
SortType
searchRequest().setSort(SortType)(com.telenav.sdk.entity.model.base.SortType)。
| 枚举 | TN | |
|---|---|---|
SortType.BEST_MATCH |
✅ | ✅ |
SortType.DISTANCE |
✅ | ✅ |
SearchOptions
searchRequest().setSearchOptions(SearchOptions)。
| 典型用法 | TN | |
|---|---|---|
setShowAddressLines(true) |
❌ | ✅ |
setIntent(SearchOptions.Intent.REVERSE_GEOCODING) |
❌ | ✅ operation=rgc |
FacetParameters
searchRequest() / getDetailRequest() 的 setFacetParameters(FacetParameters)。
| 典型用法 | TN | |
|---|---|---|
setFacetParameters(...) |
❌ | ✅ |
停车 facet、充电聚合字段、详情 等子结构以 Entity SDK 文档为准;Google 路径当前不转发该参数。
其他 searchRequest() 字段
| Builder 方法 | 说明 |
|---|---|
setLimit(Int) |
返回条数;Google 单页上限 20 |
setLocale(Locale) |
语言地区 |
setPageContext(String) |
分页上下文(TN) |
setFacetParameters(FacetParameters) |
见上节 |
其他 Builder 入参
suggestionPredictionRequest()
| 字段 | 类型 | 说明 |
|---|---|---|
query |
String |
输入关键词 |
location |
GeoPoint |
搜索中心 |
Google / TN 均可;Hybrid 模式下 Google 优先。
getDetailRequest()
| 字段 | 类型 | 说明 |
|---|---|---|
entityIds |
List<String> |
Entity ID;P-G 前缀走 Google |
detailOptions |
GetDetailOptions |
如 EntityDetailLevel.FULL、setShowAddressLines |
location |
lat, lon |
车机位置 |
facetParameters |
FacetParameters? |
TN 全量;Google 忽略 |
searchByExitRequest()(TN only)
| 字段 | 类型 | 说明 |
|---|---|---|
location |
lat, lon |
搜索中心 |
categories |
List<String> |
分类 ID |
radiusInMeter |
Double |
半径,默认约 1609.3m |
exits |
List<ExitPoint> |
高速出口 / 服务区(Entity SDK) |
集成方 HMI 若持有自有 VO(如含 UI 字段的出口模型),需在宿主层映射为 ExitPoint 再传入 builder。
discoverCategoryRequest() / discoverBrandRequest() / discoverPlaceRequest() / wordPredictionRequest() / getCategoriesRequest()
参数与 Entity SDK EntityClient 同名 builder 一致,均 TN only,直接转发 TN EntityClient。
discoverCategoryRequest()/discoverBrandRequest():可选setFilters(DiscoverFilters)(半径过滤,单位米)。discoverPlaceRequest():可选setDiscoverOptions(DiscoverPlaceOptions)(如setLiteResult)、setFilters(DiscoverPlaceFilters)(半径 / 矩形 / 多边形 / EV 过滤)。
集成方速查
- 必会:
GeoPoint、SearchSettings(初始化);业务数据读SearchResponse.entitySearchOrNull()/autocompleteOrNull()。 - 文本 / 分类 / 框选:统一
searchRequest()+SearchFilters;分类 ID 见 快速接入 §3.14。 - 充电站过滤:
SearchFilters+EvFilter,调用方式与 Entity SDK 一致。 - 停车 / 充电 facet、详情 PHOTO:
FacetParameters→ 仅 TN。 - 沿途搜索(Along Route):
searchRequest()+CorridorGeoFilter→ 仅 TN;Google 不支持。 - 高速出口 / 服务区:
searchByExitRequest()+ExitPoint→ 仅 TN。 - 排序:
SortType.BEST_MATCH/SortType.DISTANCE;Google / TN 均支持。 - 网络:前台监听系统网络后
SearchClient.setNetworkMode;Google 可用性用SearchService.refreshGoogleAvailability+setGoogleSearchAvailabilityListener(回调含state.reason诊断,见 快速接入 §3.6)。
维护说明
- 新增请求字段时:同步更新本文档、快速接入、
EntityRequestBuilders/SearchRequestAnalyzer/GoogleSearchExecutor中的实际转发逻辑。 - 若 Google 开始支持某 TN 专属 facet 或 geo 类型,更新本文档 「类型与路径总览」 表中 Google 列,并在
GoogleSearchExecutor中实现转发。