高德地图信号弱是怎么回事?(高德地图信号弱)
鸿蒙开发:高德HarmonyOS地图SDK的快速入门(二)-实现地图的显示
当我们正确获取到高德地图鸿蒙版SDK的Key值之后,我们就可以通过这个Key值让APP的首页来显示地图。在鸿蒙APP项目中具体实现高德地图显示的步骤如下:
1.下载高德地图鸿蒙版SDK相关的".Har"包;
2.静态声明并配置相关的地图显示权限;
3.对地图相关的显示容器进行加载和初始化;
下面,我们一起来进行实际的操作,看看高德地图的鸿蒙版如何实现地图显示。
一.下载HarmonyOS地图SDK Beta版 示例代码,在APP项目中添加高德地图提供的Har源码包。鸿蒙版的高德地图想要在手机上进行正常显示,我们肯定要使用它提供的Har源码包,这样可以更快地实现高德地图的显示。
高德地图SDK提供的har源码包
因为高德地图提供的第三方服务Har源码包有自带的地图容器、搜索等功能,包括地图中的坐标信息也可以从高德地图中的服务平台获取。
在鸿蒙APP项目中,如何才能添加高德地图提供的Har源码包?
1.进入高德地图开放平台,打开【开发支持】导航键,找到【其他】选项后,点击【HarmonyOS 地图SDK】,打开其管理界面;
点击点击“HarmonyOS 地图SDK”
2.在管理界面中,找到左侧导航栏中的【相关下载】并打开,我们在右侧的界面中下载第一个【Beta版本示例Demo】,因为相关的Har源码包都存放在此项目文件中;
下载“Beta版本示例Demo”
3.紧接着,我们把“.zip”后缀格式的Beta版本示例Demo进行解压,打开其项目文件夹,会发现相关的Har源码包都存放在libs目录中,直接用鼠标或触控板进行复制拷贝即可;
Har源码包都存放在libs目录中
4.将拷贝的Har源码包都粘贴到自己APP项目中的libs目录中,并在entry/src文件路径下的build.gradle配置文件中添加依赖;
将Har源码包粘贴到libs目录中
添加har包的依赖
5.若Har包添加成功,则APP项目中的External Libraries路径中会出现可被代码引用的Har资源包。
Har包添加成功
以上步骤,就是鸿蒙APP项目关于高德地图Har包的添加和引用。需要注意的地方是:在APP项目开发的过程中,若项目libs目录中的har源码包不能在Java类中被正常引用,可以关闭当前APP项目的编辑窗口。重新导入并打开APP项目之后,build.gradle配置文件会重新加载har源码包。
二.在config.json配置文件中,静态声明显示高德地图的相关权限,以便高德地图在显示时获得相应的授权。在config.json配置文件中,设置权限
设置相关权限的内容,如下:
"reqPermissions": [ { "usedScene": { "ability": [ "com.example.gaodetest.MainAbility" ], "when": "always" }, "reason": "request internet", "name": "ohos.permission.INTERNET" } ]
上面设置的内容中,“ability”节点一定要设置为自己APP项目的文件路径。
三.开始进行高德地图的加载,通过相关的地图控件,我们创建地图并让它在手机中进行显示。1.获取高德地图的Key值,可首先在Aplication中进行添加。
Key值
我们在高德开放平台的【我的应用】中复制Key值之后,在APP项目中的java文件夹中的MyApplocation中进行Key值的粘贴和相关代码编写。
在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.aafwkntent.Intent;import ohos.agpponents.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.以上代码内容完成之后,我们可以直接进行真机测试,即可看到自己的华为手机显示高德地图,如下:
真机测试,显示高德地图
完成以上所有操作,我们今后就可以放心地进行高德地图SDK鸿蒙版的API调用,当然你们也可以整改成自己的产品内容业务也是可以的。
结语:鸿蒙版APP项目要在设备中正常显示高德地图,首先要在项目中添加相应的har源码包,然后对其地图的显示进行授权,最后通过key值和MapView等控件来创建地图,并从高德地图平台的服务端能够获取相应的数据内容。
如果你们对上面的操作有一些疑惑,请你们踊跃参与评论,鸿蒙系统生态需要更多人来参与和建设,这是我们自己的开源项目。
声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送至邮件举报,一经查实,本站将立刻删除。转载务必注明出处:http://www.hixs.net/article/20231230/1696260719116956.html