滴图出行技术开放平台(DiMap)Android SDK 的 AI Agent 技能包与开发参考文档。
滴滴地图 Android SDK 覆盖 地图(Map)、定位(Location)、WebService、导航(Navigation) 四大模块。本目录不是 SDK 本身,而是围绕它整理的开发辅助资源,帮助 AI 编程助手和开发者少踩坑、快接入。
本 Skill 遵循 Agent Skills 规范,可让兼容的 AI 编程助手在编写、审查或调试滴滴地图 Android SDK 代码时,按需加载权威的 API 用法与示例,从而:
- 生成符合官方规范的代码,覆盖鉴权、隐私合规和生命周期管理等易错点。
- 减少对不存在 API 的猜测。
- 按任务渐进式加载模块文档,避免一次性占用过多上下文。
技能包本身也是一份可直接阅读的开发手册。references/ 下的文档包含包名与 import 路径、功能说明、代码示例、API 参数表和注意事项。
| 模块 | 目录 | 核心能力 | 主要入口类 | 文档数 |
|---|---|---|---|---|
| 🗺️ 地图 Map | references/map/ |
地图视图与生命周期、覆盖物、相机控制、事件、UI 设置 | MapView · DiMap |
25 |
| 📍 定位 Location | references/location/ |
单次 / 连续 / 导航模式定位、结果与错误处理 | DMapLocationClient |
7 |
| 🌐 WebService | references/webservice/ |
POI 搜索、地理编码、驾车/步行/骑行/公交路线规划 | MapServiceClient |
11 |
| 🧭 导航 Navigation | references/navigation/ |
组件导航与自定义导航、诱导信息、TTS、主辅路切换 | DMapNaviPage · DMapNavi |
6 |
完整索引见 SKILL.md。
mkdir -p .claude/skills
cp -r dmap-android-skills .claude/skills/cp -r dmap-android-skills ~/.claude/skills/安装后可以直接提出相关开发需求,例如“用 DiMap 在地图上添加标记”或“集成滴滴导航”。技能核心为 SKILL.md 与 references/,同样适用于其他兼容 Agent Skills 的工具。
安全提示:仅使用来自可信来源的技能。采用前请审阅 Skill 内容和引用的脚本。
以下代码用于建立整体印象;完整配置、生命周期和错误处理请查阅对应参考文档。
在 Application.onCreate() 中、调用任何 SDK 接口前完成隐私合规授权与鉴权:
public class DemoApp extends Application {
@Override public void onCreate() {
super.onCreate();
DMapMapViewClientPrivacy.updatePrivacyShow(this, true, true);
DMapMapViewClientPrivacy.updatePrivacyAgree(this, true);
DiDiAuth.init(this, "申请的Key");
}
}<com.dmap.api.maps.MapView
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent" />MapView mapView = findViewById(R.id.map);
mapView.getMap(diMap -> { /* 地图就绪 */ });需在 Activity 或 Fragment 中转发 onStart、onResume、onPause、onStop 和 onDestroy 等生命周期。
DMapLocationClient client = new DMapLocationClient(context);
client.setLocationListener(location -> {
if (location.getErrorCode() == DMapLocation.ErrorCode.SUCCESS) {
double lat = location.getLatitude();
double lng = location.getLongitude();
}
});
DMapLocationClientOption option = new DMapLocationClientOption();
option.setOnceLocation(true);
client.setLocationOption(option);
client.startLocation();Poi start = new Poi("起点名称", new LatLng(40.04809, 116.28115), "起点POI_ID");
Poi end = new Poi("终点名称", new LatLng(39.89591, 116.32130), "终点POI_ID");
DMapNaviParams params = new DMapNaviParams(start, null, end);
params.setRouteStrategy(PathPlanningStrategy.DRIVING_DEFAULT);
params.setUseInnerVoice(true);
DMapNaviPage.getInstance().showRouteActivity(context, params, callback);Android 6.0+ 需动态申请位置权限;Android 10+ 如需后台定位还需 ACCESS_BACKGROUND_LOCATION。各模块的权限、依赖与混淆规则详见对应的 *-setup.md。
- 登录官网控制台,使用应用包名与签名 SHA1 申请 Key。
- 使用
./gradlew :app:signingReport或keytool获取 SHA1。 - 确保
build.gradle的applicationId与AndroidManifest.xml中的包名一致。 - 下载export-sdk AAR,放入工程
libs/并在build.gradle中引入。
后续计划新增覆盖地图、定位、WebService 和导航四大模块的可运行 Demo App,与 Skill 中的参考文档相互印证。
