如何将地图框语言更改为波斯语/波斯语

时间:2019-03-04 12:48:22

标签: android mapbox mapbox-android mapbox-plugin

我使用的是本地化插件版本0.5.0,并使用MapLocale.ARABIC local将标签更改为波斯语,并且一切正常,所有标签都变为波斯语。

将mapbox更新至版本7.1.2,并将plugin-localization-v7更新至0.8.0之后,地图上不再有波斯标签。

我使用此代码

     @Override
      public void onMapReady(@NonNull MapboxMap mapboxMap) {
            mapboxMap.setStyle(Style.MAPBOX_STREETS, style -> {
                   if (mapStyle.isFullyLoaded){
                        LocalizationPlugin localizationPlugin = LocalizationPlugin(mapView, map , style )
                        localizationPlugin.setMapLanguage(MapLocale(MapLocale.ARABIC))
                    }else{
                        Timber.e("Mapbox LocalizationPlugin won't loaded, The style has to be non-null and fully loaded.")
            }
      }

这些依赖项

implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:7.1.2'
implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-localization-v7:0.8.0'

在mapbox 6.8.1中进行结果,并将插件本地化为0.5.0

photo_2019-02-24_11-48-47

mapbox 7.1.2和plugin-localization-v7中的结果为0.8.0

photo_2019-02-24_12-01-40

1 个答案:

答案 0 :(得分:0)

查找解决方案

必须在onMapReady回调中使用此代码

@Override
public void onMapReady(@NonNull MapboxMap mapboxMap) {
    mapboxMap.setStyle(Style.MAPBOX_STREETS, new Style.OnStyleLoaded() {
        @Override
        public void onStyleLoaded(@NonNull Style style) {
            LocalizationPlugin localizationPlugin = new LocalizationPlugin(mapView, mapboxMap , style);
            localizationPlugin.setMapLanguage(MapLocale.LOCAL_NAME);
        }
    });
}