Stack Overflow问题分享

Stack Overflow上有一个海外开发者提问:我在我的项目中使用华为Map Kit,地图已加载但未渲染? 

如何解决地图已加载却不能渲染的问题?-LMLPHP

解决方案

一般来说引起地图加载未渲染可能的原因有很多,下面提供6个排查步骤,大家可以按以下顺序逐个排查一遍:

1. 检查HMS Core的版本是否需要升级,应用定位权限是否为“始终允许”。

打开“设置 > 应用 > 应用管理”找到“HMS Core”应用(不同版本的系统可能有差异,如果没找到“HMS Core”,请点击“应用管理”界面右上角的菜单图标,再点击“显示系统进程”即可)。点击HMS Core(APK)图标,然后在“应用信息”界面打开“权限 > 位置信息”中查看位置权限开启状态,确保“HMS Core”应用定位权限处于开启状态。如果是在EMUI 10.0或更高版本的设备上,“HMS Core”的定位权限需要是“始终允许”。如下图所示:

如何解决地图已加载却不能渲染的问题?-LMLPHP

2.  检查AGC上面的map 开关是否开启。如果没有,开启之后请重新下载json文件并替换代码中的json文件。并检查SHA256 指纹是否正确。

如何解决地图已加载却不能渲染的问题?-LMLPHP

3. 在Activity/Fragment的onStart(),onResume(),onPause(),onStop(),onDestroy(),onSaveInstanceState(Bundle outState)和onLowMemory()方法中调用MapView对应的方法。

4. 自Android Map SDK 5.0.0.300起,初始化地图前,必须要设置API Key。 

  • 在您的工程入口类设置apikey
// In the entrance class (inherited from android.app.Application) of the app,
// call the setApiKey method in the overridden onCreate() method.
public class MyApp extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        // Set the API key.
        MapsInitializer.setApiKey("Your API Key");
    }
}
  • 在Fragment或者MapView设置API Key 
@Override
    protected void onCreate(Bundle savedInstanceState) {
        Log.i(TAG, "onCreate: ");
        super.onCreate(savedInstanceState);
        // Set the API key before calling setContentView.
        MapsInitializer.setApiKey("Your API Key");
        setContentView(R.layout.basic_demo);
    }

5. HuaweiMap目前支持两种地图类型,请注意检查自己使用的类型

MAP_TYPE_NORMAL:标准地图。展示道路,建筑物以及河流等重要的自然特征。
MAP_TYPE_NONE:没有加载任何数据的空地图。

6. 未加载有可能是不支持的地区,具体可支持的地区请参考此文档

以上介绍了接入华为Map kit后解决地图加载未渲染的几个排查步骤,那么有人可能要问了,华为Map kit究竟是什么呢?有什么功能?

关于HUAWEI Map Kit

华为地图服务(Map Kit)是华为提供的一项丰富、强大、便捷的地图服务能力,助力全球开发者实现个性化地图呈现与路径规划方案。提供一套地图开发调用的SDK,地图数据当前覆盖已超过200个国家和地区,支持一百多种语言,方便开发者轻松地在应用中集成地图相关的功能,全方位提升用户体验。

如何解决地图已加载却不能渲染的问题?-LMLPHP

当前华为地图服务提供的主要能力包含三个部分:地图呈现、地图交互和路线规划。

  • 地图呈现:多元化地图呈现,为您建立起数字化的真实世界。提供标准地图,利用标记、形状、图层及UI定制等自定义元素,制作更加符合业务场景的地图。
  • 地图交互:提供手势、按钮等交互,满足不同场景下与地图的交互,控制地图的展示。支持多种地图呈现交互方式,包括缩放、旋转、倾斜、平移等流畅的交互体验。同时支持2D、3D视角转换手势。支持标准、简洁、黑夜三种地图呈现模式。用户可以在此基础上自定义overlay展示样式。
  • 路线规划:随时提供高效、可靠的路线行程规划。根据实时路况信息,给出不同路径规划方案及ETA信息。支持驾车、骑行、步行等多种出行方式的路线规划,覆盖全球多个国家和地区。

如何向Android应用添加地图步骤请参见快速入门指南

Stack Overflow 与HMS

作为全球最大的编程问答社区,Stack Overflow上每天都会有来自全球各地不同国家的开发者在上面提问各种编程问题。我们也在Stack Overflow上开了专栏(https://stackoverflow.com/questions/tagged/huawei-mobile-services),欢迎大家在上面提问在集成HMS Core过程中遇到的各种编程问题。

>>访问华为地图服务官网,了解更多相关内容
>>获取华为地图服务开发指导文档
>>华为HMS Core官方论坛
>>华为地图服务开源仓库地址:GitHubGitee

点击右上角头像右方的关注,第一时间了解华为移动服务最新技术~

06-15 16:29