你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

适用于 Java 的 Azure Maps SDK Render 客户端库 - 版本 1.0.0-beta.2

Azure Maps适用于 Java 的 SDK 呈现客户端库。

此包包含 Microsoft Azure SDK for Render Management SDK,其中包含 Azure Maps Render REST API。 Azure Maps Render 检索 copyrigt 信息或映射/状态磁贴。 有关如何使用此包的文档,请参阅 Azure Maps Render

源代码 | API 参考文档 | REST API 文档 | 产品文档 | 样品

文档

提供了各种文档来帮助你入门

入门

先决条件

将包添加到产品

<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-maps-render</artifactId>
    <version>1.0.0-beta.2</version>
</dependency>

Azure Maps库需要TokenCredential用于身份验证的实现和 HttpClient HTTP 客户端的实现。

Azure 标识 包和 Azure Core Netty HTTP 包提供默认实现。

身份验证

默认情况下,Azure Active Directory 令牌身份验证依赖于以下环境变量的正确配置。

  • AZURE_CLIENT_ID 用于 Azure 客户端 ID。
  • AZURE_TENANT_ID 用于 Azure 租户 ID。
  • AZURE_CLIENT_SECRETAZURE_CLIENT_CERTIFICATE_PATH ,用于客户端密码或客户端证书。

此外,可以通过环境变量 AZURE_SUBSCRIPTION_ID配置 Azure 订阅 ID。

使用上述配置, azure 可以通过以下代码对客户端进行身份验证:

// Authenticates using Azure AD building a default credential
// This will look for AZURE_CLIENT_ID, AZURE_TENANT_ID, and AZURE_CLIENT_SECRET env variables
DefaultAzureCredential tokenCredential = new DefaultAzureCredentialBuilder().build();

// Creates a builder
MapsRenderClientBuilder builder = new MapsRenderClientBuilder();
builder.credential(tokenCredential);
builder.mapsClientId(System.getenv("MAPS_CLIENT_ID"));
builder.httpLogOptions(new HttpLogOptions().setLogLevel(HttpLogDetailLevel.BODY_AND_HEADERS));

// Builds a client
MapsRenderClient client = builder.buildClient();

示例代码假定全局 Azure。 否则,请更改 AzureEnvironment.AZURE 变量。

有关更多选项,请参阅 身份验证

关键概念

有关 Azure 管理库的设计和关键概念的一般介绍,请参阅 API 设计。

示例

获取地图图块

System.out.println("Get Map Tile");
MapTileOptions mapTileOptions = new MapTileOptions();
mapTileOptions.setTilesetId(TilesetId.MICROSOFT_BASE_ROAD);
mapTileOptions.setTileIndex(new TileIndex().setX(10).setY(22).setZ(6));
client.getMapTile(mapTileOptions);

获取地图图块集

System.out.println("Get Map Tileset");
new TilesetId();
client.getMapTileset(TilesetId.MICROSOFT_BASE);

获取地图属性

System.out.println("Get Map Attribution");
GeoBoundingBox bounds = new GeoBoundingBox(-122.414162, 47.57949, -122.247157, 47.668372);
new TilesetId();
client.getMapAttribution(TilesetId.MICROSOFT_BASE, 6, bounds);

获取版权标题

System.out.println("Get Copyright Caption");
client.getCopyrightCaption();

获取地图静态图像

System.out.println("Get Map Static Image");
GeoBoundingBox bbox = new GeoBoundingBox(1.355233, 42.982261, 24.980233, 56.526017);
new StaticMapLayer();
new RasterTileFormat();
MapStaticImageOptions mapStaticImageOptions = new MapStaticImageOptions().setStaticMapLayer(StaticMapLayer.BASIC)
    .setMapImageStyle(MapImageStyle.MAIN).setZoom(2)
    .setBoundingBox(bbox).setRasterTileFormat(RasterTileFormat.PNG);
client.getMapStaticImage(mapStaticImageOptions).toStream();

从边界框获取版权

GeoBoundingBox boundingBox = new GeoBoundingBox(52.41064, 4.84228, 52.41072, 4.84239);
client.getCopyrightFromBoundingBox(boundingBox, true);

获取磁贴的版权

client.getCopyrightForTile(new TileIndex().setX(9).setY(22).setZ(6), true);

获取世界版权

client.getCopyrightForWorld(true);

疑难解答

与 Azure Maps 服务交互时,地图服务返回的错误对应于为 REST API 请求返回的相同 HTTP 状态代码。

例如,如果使用无效坐标进行搜索,则会返回错误,指示“错误请求”。400

后续步骤

SDK 的 GitHub 存储库中提供了多个Azure Maps呈现 Java SDK 示例。 Azure Maps渲染示例

供稿

有关参与此存储库的详细信息,请参阅 参与指南

  1. 分支
  2. 创建功能分支 (git checkout -b my-new-feature)
  3. () git commit -am 'Add some feature' 提交更改
  4. 推送到分支 (git push origin my-new-feature)
  5. 创建新的拉取请求

曝光数