#android #google-maps
Вопрос:
Для Google Карт для Android у меня есть файл JSON в формате RAW со стилем карты.
Могу ли я динамически загружать JSON во время работы приложения и использовать его?
mMap = googleMap
mMap.setMapStyle(
MapStyleOptions.loadRawResourceStyle(
this, R.raw.mapstyle1
)
)
Я не могу динамически создавать необработанный файл
Но я также не могу заменить файл JSON, потому что настройки получают стиль только через resourceId в RAW
Есть ли способ сделать это?
Ответ №1:
Используйте общедоступный конструктор MapStyleOptions(String json)
вместо метода fabric loadRawResourceStyle(Context clientContext, int resourceId)
. Что-то вроде того:
...
StringBuilder mapStyleStringBuilder = new StringBuilder();
// create you map style JSON
mapStyleStringBuilder.append("[");
mapStyleStringBuilder.append(" { "featureType": "all", "elementType": "geometry", "stylers": [ { "color": "#242f3e" } ] },");
mapStyleStringBuilder.append("]");
// convert it to String
String dynamicallyCreatedStyleJson = mapStyleStringBuilder.toString()
// and apply to map
mMap.setMapStyle(new MapStyleOptions(dynamicallyCreatedStyleJson));
...