# dmap **Repository Path**: didiopensource/dmap ## Basic Information - **Project Name**: dmap - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-12 - **Last Updated**: 2026-08-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # dmap · 滴滴地图 Android SDK 开发资源 > 滴图出行技术开放平台(DiMap)Android SDK 的**开发者资源仓库**。汇集帮助你更快、更规范地集成滴滴地图 Android SDK 的各类资源——当前提供 **AI Agent 技能包 & 参考文档**,示例 Demo 正在路上。

platform minSdk language license

滴滴地图 Android SDK 覆盖 **地图(Map)**、**定位(Location)**、**WebService**、**导航(Navigation)** 四大模块。本仓库不是 SDK 本身,而是围绕它的开发辅助资源集合,帮助你少踩坑、快接入。 --- ## 仓库内容 | 内容 | 目录 | 状态 | 说明 | |------|------|:----:|------| | 🤖 AI 技能包 & 参考文档 | [`dmap-android-skills/`](dmap-android-skills/) | ✅ 可用 | 供 AI 编程助手加载的 Agent Skill,内含 49 篇分模块 API 参考文档,亦可直接阅读 | | 📱 示例 Demo | `demo/`(规划中) | 🚧 即将推出 | 可运行的四大模块集成示例工程 | > 📌 Roadmap:后续将新增各模块的**可运行示例代码(Demo App)**,与技能包中的参考文档相互印证。欢迎关注更新。 --- ## 一、AI 技能包(`dmap-android-skills/`) 一个遵循 [Agent Skills](https://code.claude.com/docs/en/skills) 开放标准的技能包,让 AI 编程助手(如 Claude Code、Cursor、Codex 等)在**编写、审查、调试**滴滴地图 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/` | 组件导航(一行接入)与自定义导航(UI 定制、诱导信息、TTS、主辅路切换) | `DMapNaviPage` · `DMapNavi` | 6 | 完整索引见 [`dmap-android-skills/SKILL.md`](dmap-android-skills/SKILL.md)。 ### 安装与使用 **作为 Claude Code 技能**——复制到 skills 目录即可被自动发现: ```bash # 项目级(仅当前项目可用) mkdir -p .claude/skills && cp -r dmap-android-skills .claude/skills/ # 或用户级(所有项目可用) cp -r dmap-android-skills ~/.claude/skills/ ``` 之后在对话中提出滴滴地图相关需求(如「用 DiMap 在地图上加一个标记」「集成滴滴导航」),助手会自动加载对应模块文档并给出规范代码。技能核心为 `SKILL.md` + `references/`,同样适用于其他兼容 Agent Skills 的工具。 > 🔒 安全提示:仅使用来自可信来源的技能。技能会赋予 AI 新能力,请在采用前审阅其内容。 **作为开发参考文档**——无需任何工具,直接阅读 `dmap-android-skills/references/<模块>/` 下的 Markdown 即可。 --- ## 二、示例 Demo(即将推出) 规划中的 `demo/` 将提供覆盖四大模块的**可运行示例工程**,包含地图展示与覆盖物、定位、POI 搜索/路线规划、组件与自定义导航等端到端用法,与技能包中的参考文档配套。敬请期待。 --- ## SDK 快速开始 > 以下为各模块最小可用示例,帮助建立整体印象;完整说明请查阅技能包对应参考文档。 **0. 全局初始化(隐私合规 + 鉴权,必做)** — 在 `Application.onCreate()` 中、调用任何 SDK 接口之前完成: ```java public class DemoApp extends Application { @Override public void onCreate() { super.onCreate(); // 1. 隐私合规授权(地图模块示例;定位/导航需分别调用对应 Privacy 类) DMapMapViewClientPrivacy.updatePrivacyShow(this, true, true); DMapMapViewClientPrivacy.updatePrivacyAgree(this, true); // 2. 鉴权初始化(Key 从官网控制台申请) DiDiAuth.init(this, "申请的Key"); } } ``` **1. 显示地图** ```xml ``` ```java MapView mapView = findViewById(R.id.map); mapView.getMap(diMap -> { /* 地图就绪,可添加覆盖物、控制相机等 */ }); // 需在 Activity/Fragment 生命周期中转发 onStart/onResume/onPause/onStop/onDestroy ``` **2. 定位一次** ```java DMapLocationClient client = new DMapLocationClient(context); client.setLocationListener(location -> { if (location.getErrorCode() == DMapLocation.ErrorCode.SUCCESS) { double lat = location.getLatitude(), lng = location.getLongitude(); } }); DMapLocationClientOption option = new DMapLocationClientOption(); option.setOnceLocation(true); // 单次定位 client.setLocationOption(option); client.startLocation(); ``` **3. 一行代码启动导航** ```java 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); // 使用 SDK 内置 TTS 播报 DMapNaviPage.getInstance().showRouteActivity(context, params, callback); ``` --- ## 环境要求 | 配置项 | 要求 | |--------|------| | Android SDK(minSdk) | API 24(Android 7.0) | | CPU 架构 | `armeabi-v7a`、`arm64-v8a` | | 语言 | Java / Kotlin | | 导航模块额外要求 | targetSdk 26+、compileSdk 30、Kotlin 1.3.72、NDK 21 | > Android 6.0+ 需运行时**动态申请位置权限**;Android 10+ 如需后台定位还需 `ACCESS_BACKGROUND_LOCATION`。各模块所需权限、三方依赖与混淆规则详见对应 `*-setup.md`。 ## 接入前置 1. **申请 Key**:登录 [官网控制台 → 创建 Key](https://lbs.xiaojukeji.com/console/fe/managekey),提交应用**包名**与签名 **SHA1**。 2. **获取 SHA1**:`./gradlew :app:signingReport`,或 `keytool -list -v -keystore debug.keystore`(调试默认密码 `android`)。 3. ⚠️ `build.gradle` 的 `applicationId` 必须与 `AndroidManifest.xml` 的 `package` 一致,否则会导致 `INVALID_USER_SCODE`。 4. **下载 SDK**:[地图 SDK AAR 下载](https://lbs.didistatic.com/dimap-web-opensdk-public/openmap-doc/android-mapsdk-v1.0.477.aar),将 `.aar` 放入 `libs/` 并在 `build.gradle` 中引入。 --- ## 相关资源 - 🏠 官网:[滴图出行技术开放平台](https://lbs.xiaojukeji.com) - 🔑 控制台:[Key 管理](https://lbs.xiaojukeji.com/console/fe/managekey) - 📖 技能清单与完整索引:[`dmap-android-skills/SKILL.md`](dmap-android-skills/SKILL.md) - 🧩 Agent Skills 规范:[Claude Code · Skills 文档](https://code.claude.com/docs/en/skills) ## License [MIT](https://opensource.org/licenses/MIT)