Azure Maps .NET 开发技能
为 .NET 应用提供地理搜索、路线、地图、定位与天气开发指导。
文档公开说明了订阅密钥、Entra ID、SAS 等认证路径,并建议生产环境优先使用 Entra ID;未见凭据窃取、隐蔽外传或破坏性默认行为。扣分原因是未明确最小权限、敏感位置/IP 数据处理、用户确认、数据流、回滚和请求范围控制,且 SAS 示例包含较高速率限制。
内容覆盖安装、认证、主要 API、错误处理和限流建议,异常状态码也有说明。扣分原因是全部为静态示例,未提供该技能专属测试或可复现构建;使用 prerelease 包、版本信息可能漂移,且订阅密钥环境变量可能为空的处理不完整。
目标用户、.NET 场景、触发词和主要能力较清晰,覆盖搜索、路线、渲染、地理定位和天气。扣分原因是未声明非适用边界、输入输出契约或精确触发排除条件,也没有中文使用说明;Azure Maps 的网络、区域和服务可用性需使用者自行确认。
文档具备安装、环境变量、认证、分主题示例、类型参考、最佳实践、错误处理、相关 SDK 和链接;技能及仓库声明 MIT。扣分原因是依赖均使用 prerelease,缺少技能级 changelog、维护责任和更新策略,也未充分披露 API 预览稳定性、配额、计费和服务限制。
对常见 Azure Maps .NET 任务提供了较完整的可复制代码片段和客户端/API 对照,静态看来能覆盖核心开发路径。按静态校准最高只能给 7;扣分原因是没有执行验证,示例是否与指定 beta 版本完全匹配、是否可直接编译和结果是否完整均未证实。
技能包含版本、包名、Microsoft Learn、GitHub SDK 源码和定价引用,具备一定审计线索;仓库还提供通用 CI、评估和测试材料。扣分原因是这些材料未证明该技能路径有专属测试覆盖,且本评估未执行或交叉验证示例,因此只能达到静态证据上限。
- 示例依赖多个 prerelease Azure Maps 包;使用前应锁定并核对实际 API 版本及编译结果。
- 不要将订阅密钥或 SAS 写入源代码;应限制凭据权限、有效期、速率和适用资源,并评估位置/IP 数据的隐私与合规要求。
- Azure 服务访问可能受区域、网络和配额影响;面向中国大陆用户时应先验证 Azure Maps 端点和目标区域的可达性与可用性。
它能做什么 & 适用场景
该技能面向使用 Azure Maps SDK for .NET 的开发者和编码代理。它覆盖地址地理编码、逆地理编码、路线规划、路线矩阵、可达范围、地图瓦片、IP 地理定位和天气查询。内容还包括 NuGet 安装、订阅密钥、Microsoft Entra 凭据与 SAS 认证示例。仓库整体处于持续开发中,但本档案仅涵盖 azure-maps-search-dotnet 技能。
指导代理生成或修改 C# 代码和 dotnet 安装命令,使用 Azure Maps 的 Search、Routing、Rendering、Geolocation、Weather 和 Resource Manager 客户端。示例读取环境变量中的订阅密钥或客户端 ID,创建凭据和客户端,并产生地址坐标、地址详情、边界多边形、路线距离与时长、路线矩阵、地图瓦片、国家/地区代码及天气结果。它还说明批量操作、交通数据、缓存、速率限制和 RequestFailedException 错误处理。
- 需要在 .NET 应用中把地址转换为经纬度,或将坐标反查为格式化地址的开发者。
- 需要为驾车、自行车或其他出行模式生成路线、路线矩阵或等时圈的团队。
- 需要在 Web 或地图应用中获取地图瓦片、静态地图图像或版权信息的开发者。
- 需要根据 IP 推断国家或地区,或查询当前位置天气、预报和恶劣天气警报的应用团队。
优缺点一览
- 覆盖搜索、路线、渲染、IP 地理定位和天气等多个 Azure Maps .NET 客户端。
- 提供订阅密钥、Microsoft Entra 和 SAS 三种认证示例。
- 包含批量地理编码、异步路线矩阵、交通数据和速率限制等实际开发模式。
- 给出多个可复制的 C# 工作流、客户端层次和关键类型参考。
- 正文中的 SDK 版本均为 beta 或 prerelease,稳定性和 API 变更风险需要自行评估。
- 示例依赖 Azure 账户、相应资源和凭据;源材料未说明具体开通流程或费用。
- 源材料没有展示该单项技能的独立测试结果或平台覆盖数据。
- 技能重点是开发指导,不是现成的地图应用或独立运行服务。
如何安装
先按仓库 README 安装技能集合:运行 npx skills add microsoft/skills,在向导中选择需要的技能;技能会安装到所选代理的目录,例如 GitHub Copilot 的 .github/skills/。README 没有给出只安装 azure-maps-search-dotnet 的专用命令。项目依赖可用 dotnet add package 安装,具体包名和 --prerelease 参数见技能正文。
如何使用
在已加载该技能的编码代理中提出明确的 Azure Maps .NET 请求,例如:为我的 C# 应用添加 Azure Maps 地址地理编码,并使用 DefaultAzureCredential 认证。代理可依据技能生成 MapsSearchClient、MapsRoutingClient 等客户端代码,以及相应的查询、错误处理和配置。