高德HarmonyOS地图SDK的快速入门指南

jacksky
发布于 2021-8-17 17:32
浏览
2收藏

概述

 

与高德开放平台Android地图SDK平滑切换

  • 已集成高德开放平台Android地图SDK的开发者可无缝切换到HarmonyOS地图SDK,无额外开发量。HarmonyOS与Android系统间的接口变化由高德开放平台SDK适配层消化,SDK对外接口保持不变。
  • 高德底层引擎对接HarmonyOS NDK,上层代码全面对接HarmonyOS SDK,所有系统接口均使用HarmonyOS API。

继承高德开放平台Android/iOS地图SDK功能亮点

  • 地图SDK基础能力介绍请参考地图产品介绍,开发者可以通过高德开放平台API和SDK,轻松地完成地图的构建工作,将地图精致地呈现在您的应用中。地图SDK不仅提供丰富的地图覆盖物绘制能力,也支持搜索、多种路径规划、坐标转换、距离测量、面积计算等功能。
  • 适配HarmonyOS后的地图SDK依旧支持与自定义地图SaaS平台等周边工具配合使用,自定义地图能力介绍请参考自定义地图介绍页

 

入门指南

本指南是向使用高德HarmonyOS地图SDK的快速入门指南。

第一步搭建HarmonyOS开发环境

开发鸿蒙应用需要使用HarmonyOS的IDE进行开发,具体内容请参考HarmonyOS官网开发文档

  1. 开始前请参考下载与安装软件配置开发环境,完成DevEco Studio的安装和开发环境配置。
  2. 开发环境配置完成后,请参考创建和运行Hello World创建工程,设备类型以“Phone”为例:

a、使用Java语言开发,模板选择“Empty Feature Ability(Java)”

b、使用JS语言开发,模板选择“Empty Feature Ability(JS)”

  1. 工程创建完成后,使用预览器或Phone模拟器运行该工程。

第二步配置应用的签名信息

应用工程创建完成后,需要配置签名信息,才可以使用真机调试和发布应用。具体的签名配置请参考HarmonyOS官网的配置应用签名信息指南

第三步获取应用的appId

配置完签名信息之后,就可以获取当前应用的appId了,这个appId主要用于申请高德的apiKey,请确定最终发布应用的appId, 防止最终高德SDK鉴权失败。

目前只能通过代码获取应用的appId,具体代码请参考如下代码

getApplicationContext().getBundleManager().getBundleInfo(getBundleName(), 0).getAppId()

最终获取的appId格式类似于:

com.amap.demo_BGtGgVB3ASqU7ar1nHkwX4s0nIexDbEwqNrVoatUDs17GrClWC7V2/zhoYh6tFQHAd5DXXXXXXAgvZfzrEGljjs=

注意:目前通过DevEco Studio连接云真机获取到的appId不全,只获取到了"包名_", 使用云真机调试高德地图SDK时会导致鉴权不通过。

第四步申请高德API Key

具体获取key的步骤请参考 获取key

第五步在代码中设置申请的Key

注意:请保证在调用任何高德地图SDK的接口之前将apikey设置给高德地图SDK,建议放到Application的初始化之中。

请使用api的方式将申请的高德api key设置给高德地图SDK。

/**
 * 动态设置apiKey。
 *
 * @param apiKey 在高德官网上申请的apiKey。
 */
MapsInitializer.setApiKey(String apiKey)

完成以上5步之后,就可以愉快的使用HarmonyOS版高德地图SDK了。

 

获取Key

如何申请key

1、创建新应用

进入控制台,创建一个新应用。如果您之前已经创建过应用,可直接跳过这个步骤。

高德HarmonyOS地图SDK的快速入门指南-鸿蒙开发者社区

高德HarmonyOS地图SDK的快速入门指南-鸿蒙开发者社区

2、添加新Key

在创建的应用上点击"添加新Key"按钮,在弹出的对话框中,依次:输入应用名名称,选择绑定的服务为“HarmonyOS平台”-“HarmonyOS地图SDK”,输入AppID,如下图所示:

需要注意的是: 1个KEY只能用于一个应用(多渠道安装包属于多个应用),1个Key在多个应用上使用会出现服务调用失败。高德HarmonyOS地图SDK的快速入门指南-鸿蒙开发者社区

在阅读完高德地图API服务条款后,勾选此选项,点击“提交”,完成 Key 的申请,此时您可以在所创建的应用下面看到刚申请的 Key 了。

如何获取AppID

请在当前应用的Ablitiy中使用如下代码获取

String appId = getBundleManager().getBundleInfo(getBundleName(), 0).getAppId();

注意事项

1. 获取AppID之前需要先配置应用的签名信息,应用的签名信息配置请参考HarmonyOS官网的配置应用签名信息指南

2. 目前通过DevEco Studio连接云真机获取到的appId不全,只获取到了"包名_", 使用云真机调试高德地图SDK时会导致鉴权不通过,正确的appId形式为:"包名_签名信息", 例如:

com.amap.demo_BGtGgVB3ASqU7ar1nHkwX4s0nIexDbEwqNrVoatUDs17GrClWC7V2/zhoYh6tFQHAd5DASWVTEXXXXXXAGljjs=

 

显示地图

使用地图SDK之前,需要在config.json文件中进行相关权限设置,确保地图功能可以正常使用。

第一步,配置config.json

首先,声明权限

XML

...
"reqPermissions": [
      {
        "usedScene": {
          "ability": [
            "com.example.harmonysearchsdk.MainAbility"
          ],
          "when": "always"
        },
        "reason": "request internet",
        "name": "ohos.permission.INTERNET"
      }
    ]
...

 

第二步,向工程中添加地图开发包

将har包放入libs目录下,依次添加依赖。

JAVA

dependencies {
    implementation files("libs/xxx.har")
    //...
}

第三步,初始化地图容器

首先,设置Key

 

XML

MapsInitializer.setApiKey("您的key");

然后,创建MapView

JAVA

public class BasicMapDemoSlice extends Ability {

    private MapView mapView;

    @Override
    protected void onStart(Intent intent) {
        super.onStart(intent);
        initMapView();
    }

    private void initMapView() {
        mapView = new MapView(this);

        mapView.onCreate(null);
        mapView.onResume();
        DirectionalLayout.LayoutConfig config = new DirectionalLayout.LayoutConfig(
                DirectionalLayout.LayoutConfig.MATCH_PARENT, DirectionalLayout.LayoutConfig.MATCH_PARENT);
        mapView.setLayoutConfig(config);
        super.setUIContent(mapView);
    }
    @Override
    protected void onStop() {
        super.onStop();
        if (mapView != null) {
            mapView.onDestroy();
        }
    }
}

最后,初始化地图并获取AMap对象

JAVA

AMap aMap = mapView.getMap();
aMap.setOnMapLoadedListener(new AMap.OnMapLoadedListener() {
    @Override
    public void onMapLoaded() {
    // todo
    }
});

 至此就可以看到地图展示,并且拿到了AMap对象后,就可以往地图上添加点线面等覆盖物。har

 

参考手册

地图参考手册

https://a.amap.com/lbs/static/unzip/AMap_HarmonyOS_API_3DMap_Doc/index.html

 

搜索参考手册

https://a.amap.com/lbs/static/unzip/Android_Map_Doc/Search/index.html?overview-summary.html

 

 

Beta版示例Demo.zip 20.54M 43次下载
搜索SDK Beta版.zip 413.47K 17次下载
地图SDK Beta版.zip 16.01M 27次下载
已于2021-8-18 10:09:03修改
2
收藏 2
回复
举报
回复
    相关推荐