Как установить цвет плитки google map?

Яркие загрузочные плитки на карте с темным стилем выглядят не очень хорошо. Есть ли способ изменить цвет загружаемых цветов?

Ответ 1

Создайте mapLabelStyle.json в своем приложении raw folder. Скопируйте этот стиль json в этот файл.

[
  {
    "elementType": "labels",
    "stylers": [
      {
        "lightness": 5
      },
      {
        "visibility": "simplified"
      }
    ]
  },
  {
    "elementType": "labels.text",
    "stylers": [
      {
        "color": "#400040"           //You can change color of your choice
      }
    ]
  }
]

Затем установите стиль, используя приведенный ниже код.

GoogleMap.setMapStyle(MapStyleOptions.loadRawResourceStyle(this,R.raw.mapLabelStyle));

Ответ 2

Вы можете использовать GoogleMap.setMapStyle для изменения темы карты, попробуйте сделать это,

try {
            // Customise the styling of the base map using a JSON object defined
            // in a raw resource file.
            boolean success = googleMap.setMapStyle(
                    MapStyleOptions.loadRawResourceStyle(
                            this, R.raw.style_json));

            if (!success) {
                Log.e(TAG, "Style parsing failed.");
            }
        } catch (Resources.NotFoundException e) {
            Log.e(TAG, "Can't find style. Error: ", e);
        }

Вы можете получить json файл с этого официального сайта стиля карты, и вы можете поместить этот json файл в свою исходную папку приложения

Полное объяснение стилизации карты в андроиде можно найти в официальном сайте

Пример style_json

[
  {
    "elementType": "geometry",
    "stylers": [
      {
        "color": "#212121"
      }
    ]
  },
  {
    "elementType": "labels.text.fill",
    "stylers": [
      {
        "color": "#757575"
      }
    ]
  },
  {
    "elementType": "labels.text.stroke",
    "stylers": [
      {
        "color": "#212121"
      }
    ]
  },
  {
    "featureType": "administrative.country",
    "elementType": "labels.text.fill",
    "stylers": [
      {
        "color": "#9e9e9e"
      }
    ]
  },
  {
    "featureType": "administrative.locality",
    "elementType": "labels.text.fill",
    "stylers": [
      {
        "color": "#bdbdbd"
      }
    ]
  },
  {
    "featureType": "poi",
    "elementType": "labels.text.fill",
    "stylers": [
      {
        "color": "#757575"
      }
    ]
  },
  {
    "featureType": "poi.park",
    "elementType": "geometry",
    "stylers": [
      {
        "color": "#181818"
      }
    ]
  },
  {
    "featureType": "poi.park",
    "elementType": "labels.text.fill",
    "stylers": [
      {
        "color": "#616161"
      }
    ]
  },
  {
    "featureType": "poi.park",
    "elementType": "labels.text.stroke",
    "stylers": [
      {
        "color": "#1b1b1b"
      }
    ]
  },
  {
    "featureType": "road",
    "elementType": "geometry.fill",
    "stylers": [
      {
        "color": "#2c2c2c"
      }
    ]
  },
  {
    "featureType": "road",
    "elementType": "labels.text.fill",
    "stylers": [
      {
        "color": "#8a8a8a"
      }
    ]
  },
  {
    "featureType": "road.arterial",
    "elementType": "geometry",
    "stylers": [
      {
        "color": "#373737"
      }
    ]
  },
  {
    "featureType": "road.highway",
    "elementType": "geometry",
    "stylers": [
      {
        "color": "#3c3c3c"
      }
    ]
  },
  {
    "featureType": "road.highway.controlled_access",
    "elementType": "geometry",
    "stylers": [
      {
        "color": "#4e4e4e"
      }
    ]
  },
  {
    "featureType": "road.local",
    "elementType": "labels.text.fill",
    "stylers": [
      {
        "color": "#616161"
      }
    ]
  },
  {
    "featureType": "transit",
    "elementType": "labels.text.fill",
    "stylers": [
      {
        "color": "#757575"
      }
    ]
  },
  {
    "featureType": "water",
    "elementType": "geometry",
    "stylers": [
      {
        "color": "#000000"
      }
    ]
  },
  {
    "featureType": "water",
    "elementType": "labels.text.fill",
    "stylers": [
      {
        "color": "#3d3d3d"
      }
    ]
  }
]

Ответ 3

Попробуйте это

map = new GMap2(document.getElementById("map"), { backgroundColor: "#000000" });

Ответ 4

Вы говорите в комментарии "Я кодирую собственное приложение для Android", но это не отражено в ваших тегах (андроид, google-maps) или заголовок или вопрос.
Если вы используете Ionic native 4.0 Framework ionicframework, то:

 setBackgroundColor(color); //Specifies the background color of the app.

Ответ 5

Концепция:

Плитка прямоугольная в strcuture и содержит данные изображения. Tile (ссылка) предоставляется TileProvider (ссылка). TileProvider - это класс, который предоставляет изображения фрагментов для TileOverlay (ссылка).

Примечание. Наложение прозрачно в природе, которое имеет оси x, y и z. Это похоже на прозрачное стекло перед вами.

TileProvider предоставляет Tile прямо за TileOverlay, как и вы ставите свою книгу под прозрачное стекло. В z-оси TileOverlay имеются такие слои, как GroundOverlays, Circles, Polylines и Polygons. Это означает, что GroundOverlays находится на последнем уровне, и он наиболее непрозрачен. Вы предоставляете свое настроенное изображение и меняете цвет в GroundOverlay. Вы также сохраняете все свойства прозрачности, видимости и других свойств верхнего слоя. Таким образом, вы меняете цвет плитки.

Теперь ваша главная задача - создать свой настраиваемый GroundOverlay. Изображение GroundOverlay предоставляется как BitmapDescriptor. Вы используете BitmapDescriptorFactory для создания пользовательского образа BitmapDescriptor, как показано ниже.

BitmapDescriptor icon = BitmapDescriptorFactory.fromResource(R.drawable.current_position_tennis_ball) 

/* Вы видите, current_position_tennis_ball drawable resource, теперь вы использовали в качестве цвета Tile */

Реализация:

Примечание: MOON_MAP_URL_FORMAT - это изображение enter code here jpg, а TileProvider ссылается на это изображение (фактически настроенное изображение)

private static final String MOON_MAP_URL_FORMAT =
                "http://mw1.google.com/mw-planetary/lunar/lunarmaps_v1/clem_bw/%d/%d/%d.jpg";

/* поставьте яркий jpg выше */

    TileProvider tileProvider /* ultimately it is an image */ = new UrlTileProvider(256, 256) {
                @Override
                public synchronized URL getTileUrl(int x, int y, int zoom) {
                    // The moon tile coordinate system is reversed.  This is not normal.
                    int reversedY = (1 << zoom) - y - 1;
                    String s = String.format(Locale.US, MOON_MAP_URL_FORMAT, zoom, x, reversedY);
                    URL url = null;
                    try {
                        url = new URL(s);
                    } catch (MalformedURLException e) {
                        throw new AssertionError(e);
                    }
                return url;
            }
        };

Вы можете увидеть полный исходный код здесь.