如何在Android Google Map sdk中同时显示英语和本地语言的Google Maps区域名称

时间:2019-07-20 05:52:41

标签: android google-maps android-studio sdk

我想用英语和本地语言显示位置名称,例如android中的Maps应用程序显示。

public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {

    private final static String TAG = MapsActivity.class.getSimpleName();

    private GoogleMap mMap;
    private SupportMapFragment mapFragment;
    private String language = "bn";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_maps);

        Locale locale = new Locale(language);
        Locale.setDefault(locale);
        Configuration config = new Configuration();

        if(Build.VERSION.SDK_INT>Build.VERSION_CODES.JELLY_BEAN){
           config.setLocale(locale);
           getContext().createConfigurationContext(config);
        }else { //deprecated 
           config.locale = locale;
           getResources().updateConfiguration(config, getResources().getDisplayMetrics());
        }

        // Obtain the SupportMapFragment and get notified when the map is ready to be used.
        mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);
    }

    @Override
    public void onMapReady(GoogleMap googleMap) {
        mMap = googleMap;
        LatLng dhaka = new LatLng(23.8103, 90.4125);
        mMap.addMarker(new MarkerOptions().position(dhaka));
        mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(dhaka,10f));
    }
}

但是当我运行此代码时,地图中的所有位置名称都是英文。但是我想要这样的输出

here,位置名称同时使用英语和孟加拉语。

2 个答案:

答案 0 :(得分:1)

您需要使用所需的Locale添加新配置。 检出this

答案 1 :(得分:0)

关于本地化Google Map SDK的方法,没有确定的方法,目前还没有可以调用的类或引用来更改Google Maps SDK的语言,因此Map的本地化是目前仅适用于Maps Javascript API,作为解决方法,您可以在Android设备的Settings中更改设备的语言,因为这会影响地图中的结果。但是,这并不总是适用于每个地方。希望这可以帮助。

如果您希望拥有可以显着影响Android Maps SDK的功能,建议您向Google Issue Tracker提出功能请求,以便他们的工程师检查您的可行性。请求。