Не парсится стиль Google Maps

307
07 августа 2017, 10:29

Следующий код выдаёт исключение Map style parsing failed при запуске:

   String styleText = "[" +
   "  {" +
   "    \"featureType\":\"poi.business\"," +
   "    \"elementType\":\"all\"," +
   "    \"stylers\":[" +
   "      {" +
   "        \"visibility\":\"off\"" +
   "      }" +
   "    ]" +
   "  }," +
   "  {" +
   "    \"featureType\":\"transit\"," +
   "    \"elementType\":\"all\"," +
   "    \"stylers\":[" +
   "      {" +
   "        \"visibility\":\"off\"" +
   "      }" +
   "    ]" +
   "  }" +
   "]";
  mMap = googleMap;
  MapStyleOptions style = new MapStyleOptions(styleText);
  mMap.setMapStyle(style);

Почему так происходит?

Answer 1

<html> 
 
<head> 
  <title>Simple Map</title> 
  <meta name="viewport" content="initial-scale=1.0"> 
  <meta charset="utf-8"> 
  <style> 
    /* Always set the map height explicitly to define the size of the div 
       * element that contains the map. */ 
     
    #map { 
      height: 100%; 
    } 
    /* Optional: Makes the sample page fill the window. */ 
     
    html, 
    body { 
      height: 100%; 
      margin: 0; 
      padding: 0; 
    } 
  </style> 
</head> 
 
<body> 
  <div id="map"></div> 
  <script> 
    var styleText = [{ 
        "featureType": "poi.business", 
        "elementType": "all", 
        "stylers": [{ 
          "visibility": "off" 
        }] 
      }, 
      { 
        "featureType": "transit", 
        "elementType": "all", 
        "stylers": [{ 
          "visibility": "off" 
        }] 
      } 
    ]; 
 
    var map; 
 
    function initMap() { 
      // Declare new style 
      var styledMap = new google.maps.StyledMapType(styleText, { 
        name: "KAGG" 
      }); 
 
      map = new google.maps.Map(document.getElementById('map'), { 
        center: { 
          lat: -34.397, 
          lng: 150.644 
        }, 
        zoom: 8 
      }); 
 
      // Setup skin for the map 
      map.mapTypes.set('KAGG_style', styledMap); 
      map.setMapTypeId('KAGG_style'); 
 
    } 
  </script> 
  <script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBNPpmrNOp_dyxwKRa7VFekvHt4ARNyWMk&callback=initMap" async defer></script> 
</body> 
 
</html>

Потому что это не String, а json. Посмотрите рабочий пример, как добавить json стиля к карте, в сниппете.

READ ALSO
Не подключается файл php к сайту

Не подключается файл php к сайту

Файл php открывается просто белым листомНа других страницах php всё отображается корректно

378
Как добавить полосу прокрутки?

Как добавить полосу прокрутки?

Здравствуйте, каким образом можно добавить полосу прокрутки на сайт (я имею виду не стандартную полосу в нижней или правой части экрана, а где...

389
Как задать 2 фона с разным раположением?

Как задать 2 фона с разным раположением?

Приветствую! Как можно сделать два фона в одном блоке с разным расположением? Первый фон выравнивается по правой стороне, без повторений,...

331
Xpath Получить текст между HTML тегами

Xpath Получить текст между HTML тегами

Есть html со следующей структурой

319