当我们正确获取到高德地图鸿蒙版SDK的Key值之后,我们就可以通过这个Key值让APP的首页来显示地图。在鸿蒙APP项目中具体实现高德地图显示的步骤如下:

1.下载高德地图鸿蒙版SDK相关的".Har"包;

2.静态声明并配置相关的地图显示权限;

3.对地图相关的显示容器进行加载和初始化;

下面,我们一起来进行实际的操作,看看高德地图的鸿蒙版如何实现地图显示。

一.下载HarmonyOS地图SDK Beta版 示例代码,在APP项目中添加高德地图提供的Har源码包。

鸿蒙版的高德地图想要在手机上进行正常显示,我们肯定要使用它提供的Har源码包,这样可以更快地实现高德地图的显示。

高德地图webview是什么版本(高德HarmonyOS地图SDK的快速入门)(1)

高德地图SDK提供的har源码包

因为高德地图提供的第三方服务Har源码包有自带的地图容器、搜索等功能,包括地图中的坐标信息也可以从高德地图中的服务平台获取。

在鸿蒙APP项目中,如何才能添加高德地图提供的Har源码包?

1.进入高德地图开放平台,打开【开发支持】导航键,找到【其他】选项后,点击【HarmonyOS 地图SDK】,打开其管理界面;

高德地图webview是什么版本(高德HarmonyOS地图SDK的快速入门)(2)

点击点击“HarmonyOS 地图SDK”

2.在管理界面中,找到左侧导航栏中的【相关下载】并打开,我们在右侧的界面中下载第一个【Beta版本示例Demo】,因为相关的Har源码包都存放在此项目文件中;

高德地图webview是什么版本(高德HarmonyOS地图SDK的快速入门)(3)

下载“Beta版本示例Demo”

3.紧接着,我们把“.zip”后缀格式的Beta版本示例Demo进行解压,打开其项目文件夹,会发现相关的Har源码包都存放在libs目录中,直接用鼠标或触控板进行复制拷贝即可;

高德地图webview是什么版本(高德HarmonyOS地图SDK的快速入门)(4)

Har源码包都存放在libs目录中

4.将拷贝的Har源码包都粘贴到自己APP项目中的libs目录中,并在entry/src文件路径下的build.gradle配置文件中添加依赖;

高德地图webview是什么版本(高德HarmonyOS地图SDK的快速入门)(5)

将Har源码包粘贴到libs目录中

高德地图webview是什么版本(高德HarmonyOS地图SDK的快速入门)(6)

添加har包的依赖

5.若Har包添加成功,则APP项目中的External Libraries路径中会出现可被代码引用的Har资源包。

高德地图webview是什么版本(高德HarmonyOS地图SDK的快速入门)(7)

Har包添加成功

以上步骤,就是鸿蒙APP项目关于高德地图Har包的添加和引用。需要注意的地方是:在APP项目开发的过程中,若项目libs目录中的har源码包不能在Java类中被正常引用,可以关闭当前APP项目的编辑窗口。重新导入并打开APP项目之后,build.gradle配置文件会重新加载har源码包

二.在config.json配置文件中,静态声明显示高德地图的相关权限,以便高德地图在显示时获得相应的授权。

高德地图webview是什么版本(高德HarmonyOS地图SDK的快速入门)(8)

在config.json配置文件中,设置权限

设置相关权限的内容,如下:

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

上面设置的内容中,“ability”节点一定要设置为自己APP项目的文件路径。

三.开始进行高德地图的加载,通过相关的地图控件,我们创建地图并让它在手机中进行显示。

1.获取高德地图的Key值,可首先在Aplication中进行添加。

高德地图webview是什么版本(高德HarmonyOS地图SDK的快速入门)(9)

Key值

我们在高德开放平台的【我的应用】中复制Key值之后,在APP项目中的java文件夹中的MyApplocation中进行Key值的粘贴和相关代码编写。

高德地图webview是什么版本(高德HarmonyOS地图SDK的快速入门)(10)

在MyApplocation中获取Key值

具体代码如下:

import com.amap.api.maps.MapsInitializer; import ohos.aafwk.ability.AbilityPackage; public class MyApplication extends AbilityPackage { //获取Key值 private String apiKey = "高德开放平台的key值"; @Override public void onInitialize() { super.onInitialize(); MapsInitializer.setApiKey(apiKey); } }

2.创建MapView控件对象,初始化地图并进行绘制。

根据地图的生命周期管理,我们需要在slice文件夹中的MainAbilitySlice类中进行地图的启动、初始化和停止等动作,代码内容如下:

import com.amap.api.maps.AMap; import com.amap.api.maps.MapView; import com.example.gaodetest.ResourceTable; import ohos.aafwk.ability.AbilitySlice; import ohos.aafwk.content.Intent; import ohos.agp.components.DirectionalLayout; public class MainAbilitySlice extends AbilitySlice { //创建地图控件 private MapView mapView; @Override public void onStart(Intent intent) { super.onStart(intent); super.setUIContent(ResourceTable.Layout_ability_main); initMapView(); //初始化地图控制器对象 AMap aMap = mapView.getMap(); aMap.setOnMapLoadedListener(new AMap.OnMapLoadedListener() { @Override public void onMapLoaded() { // todo } }); } //初始化高德地图 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 public void onActive() { super.onActive(); } @Override public void onForeground(Intent intent) { super.onForeground(intent); } //销毁地图方法 @Override protected void onStop() { super.onStop(); if (mapView != null) { mapView.onDestroy(); } } }

3.以上代码内容完成之后,我们可以直接进行真机测试,即可看到自己的华为手机显示高德地图,如下:

高德地图webview是什么版本(高德HarmonyOS地图SDK的快速入门)(11)

真机测试,显示高德地图

完成以上所有操作,我们今后就可以放心地进行高德地图SDK鸿蒙版的API调用,当然你们也可以整改成自己的产品内容业务也是可以的。

结语:

鸿蒙版APP项目要在设备中正常显示高德地图,首先要在项目中添加相应的har源码包,然后对其地图的显示进行授权,最后通过key值和MapView等控件来创建地图,并从高德地图平台的服务端能够获取相应的数据内容。

如果你们对上面的操作有一些疑惑,请你们踊跃参与评论,鸿蒙系统生态需要更多人来参与和建设,这是我们自己的开源项目。

,