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

Azure Maps Android SDK 入门

Azure Maps Android SDK 是适用于 Android 的矢量地图库。 本文将引导你完成安装 Azure Maps Android SDK 和加载地图的过程。

注意

Azure Maps Android SDK 停用

适用于 Android 的 Azure Maps 本机 SDK 现已弃用,将于 2025 年 3 月 31 日停用。 为了避免服务中断,请在 2025 年 3 月 31 日之前迁移到 Azure Maps Web SDK。 有关详细信息,请参阅 Azure Maps Android SDK 迁移指南

先决条件

请务必完成快速入门:创建 Android 应用文章中的步骤。

本地化地图

Azure Maps Android SDK 提供三种方式来设置地图的语言和区域视图。 以下代码演示如何将语言设置为法语(“fr-FR”),以及如何将区域视图设置为“Auto”。

  1. 使用静态 setLanguagesetView 属性,将语言和区域视图信息传入 AzureMaps 类。 这将在你的应用中设置默认语言和区域视图属性。

    static {
        //Alternatively use Azure Active Directory authenticate.
        AzureMaps.setAadProperties("<Your aad clientId>", "<Your aad AppId>", "<Your aad Tenant>");
    
        //Set your Azure Maps Key.
        //AzureMaps.setSubscriptionKey("<Your Azure Maps Key>");   
    
        //Set the language to be used by Azure Maps.
        AzureMaps.setLanguage("fr-FR");
    
        //Set the regional view to be used by Azure Maps.
        AzureMaps.setView("Auto");
    }
    
    companion object {
        init {
            //Alternatively use Azure Active Directory authenticate.
            AzureMaps.setAadProperties("<Your aad clientId>", "<Your aad AppId>", "<Your aad Tenant>");
    
            //Set your Azure Maps Key.
            //AzureMaps.setSubscriptionKey("<Your Azure Maps Key>");
    
            //Set the language to be used by Azure Maps.
            AzureMaps.setLanguage("fr-FR");
    
            //Set the regional view to be used by Azure Maps.
            AzureMaps.setView("Auto");
        }
    }
    
  2. 还可以将语言和区域视图信息传递给地图控件 XML。

    <com.azure.android.maps.control.MapControl
        android:id="@+id/myMap"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:azure_maps_language="fr-FR"
        app:azure_maps_view="Auto"
        />
    
  3. 以编程方式设置语言和区域视图属性的最后一种方式是使用地图 setStyle 方法。 随时可以采取这种做法来更改地图的语言和区域视图。

    mapControl.onReady(map -> {
        map.setStyle(
            language("fr-FR"),
            view("Auto")
        );
    });
    
    mapControl.onReady(OnReady { map: AzureMap ->
        map.setStyle(
            language("fr-FR"),
            view("Auto")
        )
    })
    

下面是将语言设置为“fr-FR”,并将区域视图设置为“Auto”的 Azure Maps 示例。

Azure Maps,显示法语标签的地图图像

有关支持的语言和区域视图的完整列表,请参阅 Azure Maps 中的本地化支持

可通过多种不同的方式缩放、平移、旋转地图及调整其俯仰角。 下面详细说明了在地图中导航的所有不同方式。

缩放地图

  • 使用双指触摸地图,收拢双指可以缩小,分开双指可以放大。
  • 双击地图可将地图放大一个级别。
  • 用双指双击地图可将地图缩小一个级别。
  • 点击两次;在第二次点击时,用手指按住地图并向上拖动可以放大,向下拖动可以缩小。

平移地图

  • 触摸地图并朝任意方向拖动。

旋转地图

  • 用双指触摸地图并旋转。

调整地图俯仰角

  • 用双指触摸地图,并同时向上或向下拖动双指。

Azure 政府版云支持

Azure Maps Android SDK 支持 Azure 政府版云。 Azure Maps Android SDK 可从同一 Maven 存储库访问。 需要完成以下任务才能连接到 Azure Maps 平台的 Azure 政府云版本。

在指定 Azure Maps 身份验证详细信息的同一位置,添加以下代码行,指示地图使用 Azure Maps 政府版云域。

AzureMaps.setDomain("atlas.azure.us");
AzureMaps.setDomain("atlas.azure.us")

对地图和服务进行身份验证时,请确保使用 Azure 政府版云平台中的 Azure Maps 身份验证详细信息。

从预览版迁移

随着从预览版转变为正式发布版,Azure Maps Android SDK 中引入了一些中断性变更。 以下是关键详细信息:

  • Maven 标识符已从 "com.microsoft.azure.maps:mapcontrol:0.7" 更改为 "com.azure.android:azure-maps-control:1.0.0"。 命名空间和主版本号已更改。

  • 导入命名空间已从 com.microsoft.azure.maps.mapcontrol 更改为 com.azure.android.maps.control

  • XML 选项、颜色资源和图像资源的资源名称的 mapcontrol_ 文本已替换为 azure_maps_

    之前:

    <com.microsoft.azure.maps.mapcontrol.MapControl
        android:id="@+id/myMap"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:mapcontrol_language="fr-FR"
        app:mapcontrol_view="Auto"
        app:mapcontrol_centerLat="47.602806"
        app:mapcontrol_centerLng="-122.329330"
        app:mapcontrol_zoom="12"
    />
    

    之后:

    <com.azure.android.maps.control.MapControl
        android:id="@+id/myMap"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:azure_maps_language="fr-FR"
        app:azure_maps_view="Auto"
        app:azure_maps_centerLat="47.602806"
        app:azure_maps_centerLng="-122.329330"
        app:azure_maps_zoom="12"
    />
    

后续步骤

了解如何在地图上添加叠加数据: