地图HarmonyOS Java SDK是基于Java语言为HarmonyOS 2.0及以上系统开发的接口,地图数据可以覆盖海外绝大多数国家,支持多种语言。地图采用WGS84 GPS坐标系,满足绝大多数海外地图开发的需求。您可以轻松地在自己的HarmonyOS应用中加入地图相关的功能,当前支持功能如下:
您可通过地图服务SDK开发地图相关的APP,比如:
集成Map Kit能力,您需要完成以下准备工作:




dependencies {
implementation 'com.huawei.hms:maps-harmony:{version}'
}
<!–允许程序使用地图服务桥接能力–>
"allowClassMap": true
b) 在"config.json"文件中的"reqPermissions"字段中添加下列权限:
<!--允许使用网络socket-->
ohos.permission.INTERNET
<!--允许程序获取网络信息状态-->
ohos.permission.GET_NETWORK_INFO
示例代码如下:
{
"module": {
"allowClassMap": true,
"reqPermissions": [
{
"name": "ohos.permission.INTERNET",
"reason": "access internet",
"usedScene": {
"ability": [
"com.mycamera.MainAbility"
],
"when": "always"
}
},
{
"name": "ohos.permission.GET_NETWORK_INFO",
"reason": "GET_NETWORK_INFO",
"usedScene": {
"ability": [
"com.mycamera.MainAbility"
],
"when": "always"
}
}
]
}
}
public void onStart(Intent intent) {
super.onStart(intent);
CommonContext.setContext(this);
MapView mapView = new MapView(this);
// 创建MapView
mapView.onCreate();
// 获取HuaweiMap对象
mapView.getMapAsync(new OnMapReadyCallback() {
@Override
public void onMapReady(HuaweiMap huaweiMap) {
HuaweiMap mHuaweiMap = huaweiMap;
mHuaweiMap.setOnMapClickListener(new OnMapClickCallback() {
@Override
public void onMapClick(Object object) {
new ToastDialog(CommonContext.getContext()).setText("onMapClick ").show();
}
});
}
});
// 创建Layout
ComponentContainer.LayoutConfig config = new ComponentContainer.LayoutConfig(ComponentContainer.LayoutConfig.MATCH_PARENT, ComponentContainer.LayoutConfig.MATCH_PARENT);
PositionLayout myLayout = new PositionLayout(this);
myLayout.setLayoutConfig(config);
ShapeElement element = new ShapeElement();
element.setShape(ShapeElement.RECTANGLE);
element.setRgbColor(new RgbColor(255, 255, 255));
// 加载MapView
myLayout.addComponent(mapView);
super.setUIContent(myLayout);
}
开发完成后,在菜单栏中,点击"Run > Run ‘模块名称‘"或,或使用默认快捷键"Shift+F10"运行应用。DevEco Studio启动HAP的编译构建和安装。安装成功后,会自动运行安装的HarmonyOS应用。
打开开发调试版本的地图Demo后,查看地图是否能够展示。
干得好,您已经成功完成了codelab并学到了: