1

我正在开发一个参考应用程序。该应用程序通过带有样式文件的华为地图套件具有全屏地图。当用户第一次打开应用程序时,地图样式无法正常工作。但是在用户重新打开应用程序后样式可以正常工作。

我添加了代码块和应用程序的屏幕截图。任何帮助,将不胜感激

地图套件版本:实现 'com.huawei.hms:maps:5.2.0.300'

override fun onMapReady(map: HuaweiMap) {
    Log.d(TAG, "onMapReady: ")
    hMap = map
    hMap?.uiSettings?.isMyLocationButtonEnabled = false
    hMap?.moveCamera(CameraUpdateFactory.newLatLngZoom(LatLng(48.893478, 2.334595), 10f))
    setSimpleStyle()
}

fun setSimpleStyle() {
    val styleOptions = MapStyleOptions.loadRawResourceStyle(this, R.raw.mapstyle_simple)
    hMap?.setMapStyle(styleOptions)
}
4

1 回答 1

0

这个问题有一个解决方案。

  1. 你可以去这个网站制作一个自我风格的地图,这是我的测试:

在此处输入图像描述

  1. “保存”并“发布”它:

    将预览 ID 和麦粒肿 ID 保存到某个地方。

在此处输入图像描述

  1. 然后导出地图样式:

    将 Json 字符串保存到 Android Studio 项目---- res ---- raw ----mapstyle_simple.json

在此处输入图像描述

  1. 最后在代码中:
    override fun onMapReady(map: HuaweiMap) {
        Log.d(TAG, "onMapReady: ")
        hMap = map
        hMap?.uiSettings?.isMyLocationButtonEnabled = false
        hMap?.moveCamera(CameraUpdateFactory.newLatLngZoom(LatLng(48.893478, 2.334595), 10f))
        setSimpleStyle()
    }

    fun setSimpleStyle() {
        val styleOptions = MapStyleOptions.loadRawResourceStyle(this, R.raw.mapstyle_simple)
        hMap?.setMapStyle(styleOptions)
        hMap?.setStyleId("your style id saved above")
        hMap?.previewId("your preview id saved above")
    }

于 2021-10-27T02:36:34.727 回答