服务

SDK 服务

Vue 组合式函数封装的官方 service 类

@tianditu/vue 将官方文档 service/ 目录下的服务类封装为组合式函数。它们要在 <TdtMap> 内部的 setup 里调用(SDK 就绪后才会创建实例),回调统一改为 Promise。

地名搜索 useLocalSearch

<script setup>
import { useLocalSearch } from "@tianditu/vue";

const { search } = useLocalSearch({ pageCapacity: 10 });

const doSearch = async (keyword) => {
  const result = await search(keyword);
  console.log(result);
};
</script>
返回说明
searcherLocalSearch 实例的响应式引用
results / status搜索结果与状态(idle/loading/done
search(keyword, type?)关键词检索,type 为官方检索类型,不传时为普通搜索
searchInBounds(keyword, bounds)范围搜索
searchNearby(keyword, center, radius)周边搜索
gotoPage(page)结果分页
clearResults()清空结果

反地址解析 useGeocoder

const { getLocation } = useGeocoder();

const result = await getLocation([116.404, 39.915]);

解析成功返回 GeocoderResult,失败返回 null

浏览器定位 useGeolocation

const { getCurrentPosition } = useGeolocation();

const result = await getCurrentPosition({ timeout: 5000 });

定位失败返回 null;配置项为官方 GeolocationOptionsenableHighAccuracy/maximumAge/timeout)。

驾车规划 useDrivingRoute / 公交规划 useTransitRoute

const { search } = useDrivingRoute(T.DrivingRoutePolicy.LEAST_TIME);
await search(startLngLat, endLngLat);

构造时传入策略,返回 { router, results, search }search(start, end),公交规划 useTransitRoute(policy) 同构)。

公交线路查询 useBusLineSearch

返回 { searcher, busList, busLine, getBusList, getBusLine }——先按线路名取线路列表,再取具体线路详情。

数据来源 useDataSources

const { search } = useDataSources();
const result = await search({ level: 12, bound: "" });

查询当前地图数据的来源,结果为 { ds: "数据来源" };配置项为官方 DataSourcesOptionslevel/bound/layers/projection)。

行政区查询 useAdministrativeDivision

const { search } = useAdministrativeDivision();
const result = await search({ searchWord: "北京", searchType: 1 });

searchType:0 根据 code 查询、1 根据名称查询;其余配置项见官方 AdministrativeDivisionOptionsneedSubInfo/needAll/needPolygon/needPre)。结果经 getStatus() 判断:100 正常、101 没有查到结果。

城市信息 useLocalCity

const { location } = useLocalCity();
const info = await location();
// info.lnglat 城市中心点、info.level 最佳级别、info.cityName 城市名称

通用说明

  • 全部 composable 同时 expose 了官方实例(如 geocodersearcher),可命令式调用实例上的其余官方方法
  • 这些封装的是 window.T 上的 SDK 服务类;纯 HTTP REST 场景请用 @tianditu/services
Copyright © 2026