Newer
Older
CloudBrainNew / src / utils / baidu-map.js
StephanieGitHub on 4 Feb 2021 35 KB first commit
export function MP (ak) {
  return new Promise(function (resolve, reject) {
    window.onload = function () {
      resolve(BMap)
    }
    var script = document.createElement('script')
    script.type = 'text/javascript'
    // script.src = 'https://api.map.baidu.com/api?v=1.0&type=webgl&ak=' + ak + '&callback=callback=initialize'
    script.src = 'http://api.map.baidu.com/api?v=2.0&ak=' + ak + '&callback=initialize'
    script.onerror = reject
    document.head.appendChild(script)
  })
}

export function initMap (options) {
  options = Object.assign({
    tilt: 60,
    heading: 0
  }, options)
  var map = new BMapGL.Map(options.id, {
    restrictCenter: false,
    style: {styleJson: options.style || darkStyle }
  })

  map.enableKeyboard()
  map.enableScrollWheelZoom()
  map.enableInertialDragging()
  map.enableContinuousZoom()

  map.setDisplayOptions(options.displayOptions || {
    indoor: false,
    poi: true,
    skyColors: options.skyColors || [
      'rgba(5, 5, 30, 0.01)',
      'rgba(5, 5, 30, 1.0)'
    ]
  })
  // 移动和缩放
  if (options.center && options.zoom) {
    map.centerAndZoom(new BMapGL.Point(options.center[0], options.center[1]), options.zoom)
  }
  // map.setMapStyleV2({
  //   styleId: '6fc2db637a28c76a5d52cb16469a9369'
  // })
  map.setTilt(options.tilt) // 地图倾斜角度
  map.setHeading(options.heading) // 地图旋转角度
  return map
}

export const snowStyle = [{
  featureType: 'background',
  elementType: 'geometry',
  stylers: {
    color: '#fefefeff'
  }
}, {
  featureType: 'poilabel',
  elementType: 'labels.icon',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'road',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'road',
  elementType: 'geometry.fill',
  stylers: {
    color: '#f0f1f7ff'
  }
}, {
  featureType: 'road',
  elementType: 'geometry.stroke',
  stylers: {
    color: '#ffffff00'
  }
}, {
  featureType: 'highway',
  elementType: 'geometry.fill',
  stylers: {
    color: '#e8eaf5ff'
  }
}, {
  featureType: 'highway',
  elementType: 'geometry.stroke',
  stylers: {
    color: '#ffffff00'
  }
}, {
  featureType: 'nationalway',
  elementType: 'geometry.fill',
  stylers: {
    color: '#e8eaf5ff'
  }
}, {
  featureType: 'nationalway',
  elementType: 'geometry.stroke',
  stylers: {
    color: '#ffffff00'
  }
}, {
  featureType: 'provincialway',
  elementType: 'geometry.fill',
  stylers: {
    color: '#e8eaf5ff'
  }
}, {
  featureType: 'provincialway',
  elementType: 'geometry.stroke',
  stylers: {
    color: '#ffffff00'
  }
}, {
  featureType: 'railway',
  elementType: 'geometry',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'highwaysign',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'highwaysign',
  elementType: 'labels.icon',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'nationalwaysign',
  elementType: 'labels.icon',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'nationalwaysign',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'provincialwaysign',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'provincialwaysign',
  elementType: 'labels.icon',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'tertiarywaysign',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'tertiarywaysign',
  elementType: 'labels.icon',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'subwaylabel',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'subwaylabel',
  elementType: 'labels.icon',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'poilabel',
  elementType: 'labels.text.fill',
  stylers: {
    color: '#80868dff'
  }
}, {
  featureType: 'poilabel',
  elementType: 'labels.text.stroke',
  stylers: {
    color: '#ffffff00'
  }
}, {
  featureType: 'districtlabel',
  elementType: 'labels.text.fill',
  stylers: {
    color: '#7d82b0ff'
  }
}, {
  featureType: 'districtlabel',
  elementType: 'labels.text.stroke',
  stylers: {
    color: '#ffffff00'
  }
}, {
  featureType: 'poilabel',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'airportlabel',
  elementType: 'labels',
  stylers: {
    visibility: 'on'
  }
}, {
  featureType: 'airportlabel',
  elementType: 'labels.icon',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'airportlabel',
  elementType: 'labels.text.fill',
  stylers: {
    color: '#80868dff'
  }
}, {
  featureType: 'airportlabel',
  elementType: 'labels.text.stroke',
  stylers: {
    color: '#ffffff00'
  }
}, {
  featureType: 'manmade',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'manmade',
  elementType: 'geometry',
  stylers: {
    color: '#eef1fbff'
  }
}, {
  featureType: 'water',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'water',
  elementType: 'geometry',
  stylers: {
    // "color": "#a7c9ffff"
    color: '#a7c9ffff'
  }
}, {
  featureType: 'green',
  elementType: 'geometry',
  stylers: {
    color: '#eef1fbff',
    visibility: 'off'
  }
}, {
  featureType: 'subway',
  elementType: 'geometry',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'highway',
  elementType: 'labels',
  stylers: {
    visibility: 'on'
  }
}, {
  featureType: 'highway',
  elementType: 'labels.text.stroke',
  stylers: {
    color: '#ffffff00'
  }
}, {
  featureType: 'highway',
  elementType: 'labels.text.fill',
  stylers: {
    color: '#7d82b0ff'
  }
}, {
  featureType: 'town',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'village',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'highway',
  elementType: 'geometry',
  stylers: {
    weight: 3
  }
}, {
  featureType: 'cityhighway',
  elementType: 'geometry.fill',
  stylers: {
    color: '#e8eaf5ff'
  }
}, {
  featureType: 'arterial',
  elementType: 'geometry.fill',
  stylers: {
    color: '#e8eaf5ff'
  }
}, {
  featureType: 'arterial',
  elementType: 'geometry.stroke',
  stylers: {
    color: '#ffffff00'
  }
}, {
  featureType: 'cityhighway',
  elementType: 'geometry.stroke',
  stylers: {
    color: '#ffffff00'
  }
}]

var darkStyle = [{
  featureType: 'background',
  elementType: 'geometry',
  stylers: {
    color: '#070c17ff'
  }
}, {
  featureType: 'poilabel',
  elementType: 'labels.icon',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'road',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'road',
  elementType: 'geometry.fill',
  stylers: {
    color: '#151e25ff'
  }
}, {
  featureType: 'road',
  elementType: 'geometry.stroke',
  stylers: {
    color: '#ffffff00'
  }
}, {
  featureType: 'highway',
  elementType: 'geometry.fill',
  stylers: {
    color: '#27303bff'
  }
}, {
  featureType: 'highway',
  elementType: 'geometry.stroke',
  stylers: {
    color: '#ffffff00'
  }
}, {
  featureType: 'nationalway',
  elementType: 'geometry.fill',
  stylers: {
    color: '#27303bff'
  }
}, {
  featureType: 'nationalway',
  elementType: 'geometry.stroke',
  stylers: {
    color: '#ffffff00'
  }
}, {
  featureType: 'provincialway',
  elementType: 'geometry.fill',
  stylers: {
    color: '#27303bff'
  }
}, {
  featureType: 'provincialway',
  elementType: 'geometry.stroke',
  stylers: {
    color: '#ffffff00'
  }
}, {
  featureType: 'railway',
  elementType: 'geometry',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'highwaysign',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'highwaysign',
  elementType: 'labels.icon',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'nationalwaysign',
  elementType: 'labels.icon',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'nationalwaysign',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'provincialwaysign',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'provincialwaysign',
  elementType: 'labels.icon',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'tertiarywaysign',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'tertiarywaysign',
  elementType: 'labels.icon',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'subwaylabel',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'subwaylabel',
  elementType: 'labels.icon',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'poilabel',
  elementType: 'labels.text.fill',
  stylers: {
    color: '#80868dff'
  }
}, {
  featureType: 'poilabel',
  elementType: 'labels.text.stroke',
  stylers: {
    color: '#ffffff00'
  }
}, {
  featureType: 'districtlabel',
  elementType: 'labels.text.fill',
  stylers: {
    color: '#71767aff'
  }
}, {
  featureType: 'districtlabel',
  elementType: 'labels.text.stroke',
  stylers: {
    color: '#ffffff00'
  }
}, {
  featureType: 'poilabel',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'airportlabel',
  elementType: 'labels',
  stylers: {
    visibility: 'on'
  }
}, {
  featureType: 'airportlabel',
  elementType: 'labels.icon',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'airportlabel',
  elementType: 'labels.text.fill',
  stylers: {
    color: '#80868dff'
  }
}, {
  featureType: 'airportlabel',
  elementType: 'labels.text.stroke',
  stylers: {
    color: '#ffffff00'
  }
}, {
  featureType: 'manmade',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'manmade',
  elementType: 'geometry',
  stylers: {
    color: '#070c17ff'
  }
}, {
  featureType: 'water',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'water',
  elementType: 'geometry',
  stylers: {
    color: '#141d27ff'
  }
}, {
  featureType: 'green',
  elementType: 'geometry',
  stylers: {
    color: '#122228ff',
    visibility: 'off'
  }
}, {
  featureType: 'subway',
  elementType: 'geometry',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'highway',
  elementType: 'labels',
  stylers: {
    visibility: 'on'
  }
}, {
  featureType: 'highway',
  elementType: 'labels.text.stroke',
  stylers: {
    color: '#ffffff00'
  }
}, {
  featureType: 'highway',
  elementType: 'labels.text.fill',
  stylers: {
    color: '#5f6468ff'
  }
}, {
  featureType: 'town',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'village',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'highway',
  elementType: 'geometry',
  stylers: {
    weight: 3
  }
}, {
  featureType: 'cityhighway',
  elementType: 'geometry.fill',
  stylers: {
    color: '#27303bff'
  }
}, {
  featureType: 'arterial',
  elementType: 'geometry.fill',
  stylers: {
    color: '#27303bff'
  }
}, {
  featureType: 'arterial',
  elementType: 'geometry.stroke',
  stylers: {
    color: '#ffffff00'
  }
}, {
  featureType: 'cityhighway',
  elementType: 'geometry.stroke',
  stylers: {
    color: '#ffffff00'
  }
}]

var purpleStyle = [{
  featureType: 'water',
  elementType: 'all',
  stylers: {
    color: '#021019ff'
  }
}, {
  featureType: 'highway',
  elementType: 'geometry.fill',
  stylers: {
    color: '#000000ff'
  }
}, {
  featureType: 'highway',
  elementType: 'geometry.stroke',
  stylers: {
    color: '#147a92ff'
  }
}, {
  featureType: 'arterial',
  elementType: 'geometry.fill',
  stylers: {
    color: '#000000ff'
  }
}, {
  featureType: 'arterial',
  elementType: 'geometry.stroke',
  stylers: {
    color: '#0b3d51ff'
  }
}, {
  featureType: 'local',
  elementType: 'geometry',
  stylers: {
    color: '#000000ff'
  }
}, {
  featureType: 'land',
  elementType: 'all',
  stylers: {
    color: '#08304bff'
  }
}, {
  featureType: 'railway',
  elementType: 'geometry.fill',
  stylers: {
    color: '#000000ff'
  }
}, {
  featureType: 'railway',
  elementType: 'geometry.stroke',
  stylers: {
    color: '#08304bff'
  }
}, {
  featureType: 'subway',
  elementType: 'geometry',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'building',
  elementType: 'geometry.fill',
  stylers: {
    color: '#000000ff'
  }
}, {
  featureType: 'all',
  elementType: 'labels.text.fill',
  stylers: {
    color: '#857f7fff'
  }
}, {
  featureType: 'all',
  elementType: 'labels.text.stroke',
  stylers: {
    color: '#000000ff'
  }
}, {
  featureType: 'building',
  elementType: 'geometry',
  stylers: {
    color: '#022338ff'
  }
}, {
  featureType: 'green',
  elementType: 'geometry',
  stylers: {
    color: '#062032ff'
  }
}, {
  featureType: 'manmade',
  elementType: 'geometry',
  stylers: {
    color: '#022338ff'
  }
}, {
  featureType: 'poi',
  elementType: 'all',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'all',
  elementType: 'labels.icon',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'land',
  elementType: 'all',
  stylers: {
    color: '#40495aff',
    visibility: 'on'
  }
}, {
  featureType: 'water',
  elementType: 'all',
  stylers: {
    color: '#505565ff',
    visibility: 'on'
  }
}, {
  featureType: 'green',
  elementType: 'all',
  stylers: {
    color: '#353b4dff'
  }
}, {
  featureType: 'road',
  elementType: 'geometry.fill',
  stylers: {
    color: '#2a2e3bff',
    visibility: 'on'
  }
}, {
  featureType: 'road',
  elementType: 'geometry.stroke',
  stylers: {
    color: '#4b5163ff'
  }
}, {
  featureType: 'administrative',
  elementType: 'labels.text.fill',
  stylers: {
    color: '#8e99bdff'
  }
}, {
  featureType: 'administrative',
  elementType: 'labels.text.stroke',
  stylers: {
    color: '#2f3547ff'
  }
}, {
  featureType: 'poilabel',
  elementType: 'labels.text.fill',
  stylers: {
    color: '#727c9aff'
  }
}, {
  featureType: 'road',
  elementType: 'labels.text.stroke',
  stylers: {
    color: '#293045ff'
  }
}, {
  featureType: 'road',
  elementType: 'labels.text.fill',
  stylers: {
    color: '#777e93ff'
  }
}, {
  featureType: 'town',
  elementType: 'all',
  stylers: {
    visibility: 'on'
  }
}, {
  featureType: 'subway',
  elementType: 'labels.text.fill',
  stylers: {
    color: '#787f95ff',
    visibility: 'off'
  }
}, {
  featureType: 'subway',
  elementType: 'labels.text.stroke',
  stylers: {
    color: '#40475eff'
  }
}, {
  featureType: 'building',
  elementType: 'geometry.fill',
  stylers: {
    color: '#485161ff'
  }
}, {
  featureType: 'manmade',
  elementType: 'geometry.fill',
  stylers: {
    color: '#374053ff'
  }
}, {
  featureType: 'manmade',
  elementType: 'labels.text.fill',
  stylers: {
    color: '#8792adff'
  }
}, {
  featureType: 'manmade',
  elementType: 'labels.text.stroke',
  stylers: {
    color: '#292f48ff'
  }
}, {
  featureType: 'districtlabel',
  elementType: 'all',
  stylers: {}
}, {
  featureType: 'scenicspotslabel',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'railway',
  elementType: 'geometry',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'scenicspotslabel',
  elementType: 'labels.icon',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'highwaysign',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'highwaysign',
  elementType: 'labels.icon',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'nationalwaysign',
  elementType: 'labels.icon',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'nationalwaysign',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'provincialwaysign',
  elementType: 'labels.icon',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'provincialwaysign',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'tertiarywaysign',
  elementType: 'labels.icon',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'tertiarywaysign',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'subwaylabel',
  elementType: 'labels.icon',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'subwaylabel',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'roadarrow',
  elementType: 'labels.icon',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'village',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'town',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}]

var whiteStyle = [{
  featureType: 'water',
  elementType: 'geometry',
  stylers: {
    visibility: 'on',
    color: '#ccd6d7ff'
  }
}, {
  featureType: 'green',
  elementType: 'geometry',
  stylers: {
    visibility: 'on',
    color: '#dee5e5ff'
  }
}, {
  featureType: 'building',
  elementType: 'geometry',
  stylers: {
    visibility: 'on'
  }
}, {
  featureType: 'building',
  elementType: 'geometry.fill',
  stylers: {
    color: '#d1dbdbff'
  }
}, {
  featureType: 'building',
  elementType: 'geometry.stroke',
  stylers: {
    color: '#aab6b6ff'
  }
}, {
  featureType: 'subwaystation',
  elementType: 'geometry',
  stylers: {
    visibility: 'off',
    color: '#888fa0ff'
  }
}, {
  featureType: 'education',
  elementType: 'geometry',
  stylers: {
    visibility: 'on',
    color: '#e1e7e7ff'
  }
}, {
  featureType: 'medical',
  elementType: 'geometry',
  stylers: {
    visibility: 'on',
    color: '#d1dbdbff'
  }
}, {
  featureType: 'scenicspots',
  elementType: 'geometry',
  stylers: {
    visibility: 'on',
    color: '#d1dbdbff'
  }
}, {
  featureType: 'highway',
  elementType: 'geometry',
  stylers: {
    visibility: 'on',
    weight: '4'
  }
}, {
  featureType: 'highway',
  elementType: 'geometry.fill',
  stylers: {
    color: '#ffffffff'
  }
}, {
  featureType: 'highway',
  elementType: 'geometry.stroke',
  stylers: {
    color: '#cacfcfff'
  }
}, {
  featureType: 'highway',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'highway',
  elementType: 'labels.text.fill',
  stylers: {
    color: '#999999ff'
  }
}, {
  featureType: 'highway',
  elementType: 'labels.text.stroke',
  stylers: {
    color: '#ffffffff'
  }
}, {
  featureType: 'highway',
  elementType: 'labels.icon',
  stylers: {
    visibility: 'on'
  }
}, {
  featureType: 'arterial',
  elementType: 'geometry',
  stylers: {
    visibility: 'on',
    weight: '2'
  }
}, {
  featureType: 'arterial',
  elementType: 'geometry.fill',
  stylers: {
    color: '#fbfffeff'
  }
}, {
  featureType: 'arterial',
  elementType: 'geometry.stroke',
  stylers: {
    color: '#cacfcfff'
  }
}, {
  featureType: 'arterial',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'arterial',
  elementType: 'labels.text.fill',
  stylers: {
    color: '#999999ff'
  }
}, {
  featureType: 'arterial',
  elementType: 'labels.text.stroke',
  stylers: {
    color: '#ffffffff'
  }
}, {
  featureType: 'local',
  elementType: 'geometry',
  stylers: {
    visibility: 'on',
    weight: '1'
  }
}, {
  featureType: 'local',
  elementType: 'geometry.fill',
  stylers: {
    color: '#fbfffeff'
  }
}, {
  featureType: 'local',
  elementType: 'geometry.stroke',
  stylers: {
    color: '#cacfcfff'
  }
}, {
  featureType: 'local',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'local',
  elementType: 'labels.text.fill',
  stylers: {
    color: '#999999ff'
  }
}, {
  featureType: 'local',
  elementType: 'labels.text.stroke',
  stylers: {
    color: '#ffffffff'
  }
}, {
  featureType: 'railway',
  elementType: 'geometry',
  stylers: {
    visibility: 'off',
    weight: '1'
  }
}, {
  featureType: 'railway',
  elementType: 'geometry.fill',
  stylers: {
    color: '#9494941a'
  }
}, {
  featureType: 'railway',
  elementType: 'geometry.stroke',
  stylers: {
    color: '#ffffff1a'
  }
}, {
  featureType: 'subway',
  elementType: 'geometry',
  stylers: {
    visibility: 'off',
    weight: '1'
  }
}, {
  featureType: 'subway',
  elementType: 'geometry.fill',
  stylers: {
    color: '#c3bed433'
  }
}, {
  featureType: 'subway',
  elementType: 'geometry.stroke',
  stylers: {
    color: '#ffffff33'
  }
}, {
  featureType: 'subway',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'subway',
  elementType: 'labels.text.fill',
  stylers: {
    color: '#979c9aff'
  }
}, {
  featureType: 'subway',
  elementType: 'labels.text.stroke',
  stylers: {
    color: '#ffffffff'
  }
}, {
  featureType: 'continent',
  elementType: 'labels',
  stylers: {
    visibility: 'on'
  }
}, {
  featureType: 'continent',
  elementType: 'labels.icon',
  stylers: {
    visibility: 'on'
  }
}, {
  featureType: 'continent',
  elementType: 'labels.text.fill',
  stylers: {
    color: '#333333ff'
  }
}, {
  featureType: 'continent',
  elementType: 'labels.text.stroke',
  stylers: {
    color: '#ffffffff'
  }
}, {
  featureType: 'city',
  elementType: 'labels.icon',
  stylers: {
    visibility: 'on'
  }
}, {
  featureType: 'city',
  elementType: 'labels',
  stylers: {
    visibility: 'on'
  }
}, {
  featureType: 'city',
  elementType: 'labels.text.fill',
  stylers: {
    color: '#454d50ff'
  }
}, {
  featureType: 'city',
  elementType: 'labels.text.stroke',
  stylers: {
    color: '#ffffffff'
  }
}, {
  featureType: 'town',
  elementType: 'labels.icon',
  stylers: {
    visibility: 'on'
  }
}, {
  featureType: 'town',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'town',
  elementType: 'labels.text.fill',
  stylers: {
    color: '#454d50ff'
  }
}, {
  featureType: 'town',
  elementType: 'labels.text.stroke',
  stylers: {
    color: '#ffffffff'
  }
}, {
  featureType: 'road',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'road',
  elementType: 'geometry.fill',
  stylers: {
    color: '#fbfffeff'
  }
}, {
  featureType: 'poilabel',
  elementType: 'labels.icon',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'districtlabel',
  elementType: 'labels.icon',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'poilabel',
  elementType: 'labels.text.fill',
  stylers: {
    color: '#999999ff'
  }
}, {
  featureType: 'districtlabel',
  elementType: 'labels.text.fill',
  stylers: {
    color: '#888fa0ff'
  }
}, {
  featureType: 'transportation',
  elementType: 'geometry',
  stylers: {
    color: '#d1dbdbff'
  }
}, {
  featureType: 'companylabel',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'restaurantlabel',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'lifeservicelabel',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'carservicelabel',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'financelabel',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'otherlabel',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'village',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'district',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'land',
  elementType: 'geometry',
  stylers: {
    color: '#edf3f3ff'
  }
}, {
  featureType: 'nationalway',
  elementType: 'geometry.stroke',
  stylers: {
    color: '#cacfcfff'
  }
}, {
  featureType: 'provincialway',
  elementType: 'geometry.stroke',
  stylers: {
    color: '#cacfcfff'
  }
}, {
  featureType: 'cityhighway',
  elementType: 'geometry.stroke',
  stylers: {
    color: '#cacfcfff'
  }
}, {
  featureType: 'road',
  elementType: 'geometry.stroke',
  stylers: {
    color: '#cacfcfff'
  }
}, {
  featureType: 'subwaylabel',
  elementType: 'labels.icon',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'subwaylabel',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'tertiarywaysign',
  elementType: 'labels.icon',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'tertiarywaysign',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'provincialwaysign',
  elementType: 'labels.icon',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'provincialwaysign',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'nationalwaysign',
  elementType: 'labels.icon',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'nationalwaysign',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'highwaysign',
  elementType: 'labels.icon',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'highwaysign',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'nationalway',
  elementType: 'geometry.fill',
  stylers: {
    color: '#fbfffeff'
  }
}, {
  featureType: 'nationalway',
  elementType: 'labels.text.fill',
  stylers: {
    color: '#999999ff'
  }
}, {
  featureType: 'provincialway',
  elementType: 'labels.text.fill',
  stylers: {
    color: '#999999ff'
  }
}, {
  featureType: 'cityhighway',
  elementType: 'labels.text.fill',
  stylers: {
    color: '#999999ff'
  }
}, {
  featureType: 'cityhighway',
  elementType: 'labels.text.stroke',
  stylers: {
    color: '#ffffffff'
  }
}, {
  featureType: 'highway',
  stylers: {
    level: '6',
    curZoomRegionId: '0',
    curZoomRegion: '6-8'
  }
}, {
  featureType: 'highway',
  stylers: {
    level: '7',
    curZoomRegionId: '0',
    curZoomRegion: '6-8'
  }
}, {
  featureType: 'highway',
  stylers: {
    level: '8',
    curZoomRegionId: '0',
    curZoomRegion: '6-8'
  }
}, {
  featureType: 'highway',
  elementType: 'geometry',
  stylers: {
    visibility: 'off',
    level: '6',
    curZoomRegionId: '0',
    curZoomRegion: '6-8'
  }
}, {
  featureType: 'highway',
  elementType: 'geometry',
  stylers: {
    visibility: 'off',
    level: '7',
    curZoomRegionId: '0',
    curZoomRegion: '6-8'
  }
}, {
  featureType: 'highway',
  elementType: 'geometry',
  stylers: {
    visibility: 'off',
    level: '8',
    curZoomRegionId: '0',
    curZoomRegion: '6-8'
  }
}, {
  featureType: 'highway',
  elementType: 'labels',
  stylers: {
    visibility: 'off',
    level: '6',
    curZoomRegionId: '0',
    curZoomRegion: '6-8'
  }
}, {
  featureType: 'highway',
  elementType: 'labels',
  stylers: {
    visibility: 'off',
    level: '7',
    curZoomRegionId: '0',
    curZoomRegion: '6-8'
  }
}, {
  featureType: 'highway',
  elementType: 'labels',
  stylers: {
    visibility: 'off',
    level: '8',
    curZoomRegionId: '0',
    curZoomRegion: '6-8'
  }
}, {
  featureType: 'nationalway',
  stylers: {
    level: '6',
    curZoomRegionId: '0',
    curZoomRegion: '6-8'
  }
}, {
  featureType: 'nationalway',
  stylers: {
    level: '7',
    curZoomRegionId: '0',
    curZoomRegion: '6-8'
  }
}, {
  featureType: 'nationalway',
  stylers: {
    level: '8',
    curZoomRegionId: '0',
    curZoomRegion: '6-8'
  }
}, {
  featureType: 'nationalway',
  elementType: 'geometry',
  stylers: {
    visibility: 'off',
    level: '6',
    curZoomRegionId: '0',
    curZoomRegion: '6-8'
  }
}, {
  featureType: 'nationalway',
  elementType: 'geometry',
  stylers: {
    visibility: 'off',
    level: '7',
    curZoomRegionId: '0',
    curZoomRegion: '6-8'
  }
}, {
  featureType: 'nationalway',
  elementType: 'geometry',
  stylers: {
    visibility: 'off',
    level: '8',
    curZoomRegionId: '0',
    curZoomRegion: '6-8'
  }
}, {
  featureType: 'nationalway',
  elementType: 'labels',
  stylers: {
    visibility: 'off',
    level: '6',
    curZoomRegionId: '0',
    curZoomRegion: '6-8'
  }
}, {
  featureType: 'nationalway',
  elementType: 'labels',
  stylers: {
    visibility: 'off',
    level: '7',
    curZoomRegionId: '0',
    curZoomRegion: '6-8'
  }
}, {
  featureType: 'nationalway',
  elementType: 'labels',
  stylers: {
    visibility: 'off',
    level: '8',
    curZoomRegionId: '0',
    curZoomRegion: '6-8'
  }
}, {
  featureType: 'provincialway',
  stylers: {
    level: '8',
    curZoomRegionId: '0',
    curZoomRegion: '8-8'
  }
}, {
  featureType: 'provincialway',
  elementType: 'geometry',
  stylers: {
    visibility: 'off',
    level: '8',
    curZoomRegionId: '0',
    curZoomRegion: '8-8'
  }
}, {
  featureType: 'provincialway',
  elementType: 'labels',
  stylers: {
    visibility: 'off',
    level: '8',
    curZoomRegionId: '0',
    curZoomRegion: '8-8'
  }
}, {
  featureType: 'cityhighway',
  stylers: {
    level: '6',
    curZoomRegionId: '0',
    curZoomRegion: '6-8'
  }
}, {
  featureType: 'cityhighway',
  stylers: {
    level: '7',
    curZoomRegionId: '0',
    curZoomRegion: '6-8'
  }
}, {
  featureType: 'cityhighway',
  stylers: {
    level: '8',
    curZoomRegionId: '0',
    curZoomRegion: '6-8'
  }
}, {
  featureType: 'cityhighway',
  elementType: 'geometry',
  stylers: {
    visibility: 'off',
    level: '6',
    curZoomRegionId: '0',
    curZoomRegion: '6-8'
  }
}, {
  featureType: 'cityhighway',
  elementType: 'geometry',
  stylers: {
    visibility: 'off',
    level: '7',
    curZoomRegionId: '0',
    curZoomRegion: '6-8'
  }
}, {
  featureType: 'cityhighway',
  elementType: 'geometry',
  stylers: {
    visibility: 'off',
    level: '8',
    curZoomRegionId: '0',
    curZoomRegion: '6-8'
  }
}, {
  featureType: 'cityhighway',
  elementType: 'labels',
  stylers: {
    visibility: 'off',
    level: '6',
    curZoomRegionId: '0',
    curZoomRegion: '6-8'
  }
}, {
  featureType: 'cityhighway',
  elementType: 'labels',
  stylers: {
    visibility: 'off',
    level: '7',
    curZoomRegionId: '0',
    curZoomRegion: '6-8'
  }
}, {
  featureType: 'cityhighway',
  elementType: 'labels',
  stylers: {
    visibility: 'off',
    level: '8',
    curZoomRegionId: '0',
    curZoomRegion: '6-8'
  }
}, {
  featureType: 'cityhighway',
  elementType: 'geometry.fill',
  stylers: {
    color: '#fbfffeff'
  }
}, {
  featureType: 'water',
  elementType: 'labels.text.fill',
  stylers: {
    color: '#8f5a33ff'
  }
}, {
  featureType: 'water',
  elementType: 'labels.text.stroke',
  stylers: {
    color: '#ffffffff'
  }
}, {
  featureType: 'country',
  elementType: 'labels.text.fill',
  stylers: {
    color: '#8f5a33ff'
  }
}, {
  featureType: 'country',
  elementType: 'labels.text.stroke',
  stylers: {
    color: '#ffffffff'
  }
}, {
  featureType: 'country',
  elementType: 'labels.text',
  stylers: {
    fontsize: '28'
  }
}, {
  featureType: 'manmade',
  elementType: 'geometry',
  stylers: {
    color: '#dfe7e7ff'
  }
}, {
  featureType: 'provincialway',
  elementType: 'geometry.fill',
  stylers: {
    color: '#fbfffeff'
  }
}, {
  featureType: 'tertiaryway',
  elementType: 'geometry.fill',
  stylers: {
    color: '#fbfffeff'
  }
}, {
  featureType: 'manmade',
  elementType: 'labels.text.fill',
  stylers: {
    color: '#999999ff'
  }
}, {
  featureType: 'manmade',
  elementType: 'labels.text.stroke',
  stylers: {
    color: '#ffffffff'
  }
}, {
  featureType: 'scenicspots',
  elementType: 'labels.text.fill',
  stylers: {
    color: '#999999ff'
  }
}, {
  featureType: 'scenicspots',
  elementType: 'labels.text.stroke',
  stylers: {
    color: '#ffffffff'
  }
}, {
  featureType: 'airportlabel',
  elementType: 'labels.text.fill',
  stylers: {
    color: '#999999ff'
  }
}, {
  featureType: 'airportlabel',
  elementType: 'labels.icon',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'scenicspotslabel',
  elementType: 'labels.text.fill',
  stylers: {
    color: '#999999ff'
  }
}, {
  featureType: 'scenicspotslabel',
  elementType: 'labels.icon',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'educationlabel',
  elementType: 'labels.text.fill',
  stylers: {
    color: '#999999ff'
  }
}, {
  featureType: 'educationlabel',
  elementType: 'labels.icon',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'medicallabel',
  elementType: 'labels.text.fill',
  stylers: {
    color: '#999999ff'
  }
}, {
  featureType: 'medicallabel',
  elementType: 'labels.icon',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'companylabel',
  elementType: 'labels.icon',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'restaurantlabel',
  elementType: 'labels.icon',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'hotellabel',
  elementType: 'labels.icon',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'hotellabel',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'shoppinglabel',
  elementType: 'labels.icon',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'shoppinglabel',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'lifeservicelabel',
  elementType: 'labels.icon',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'carservicelabel',
  elementType: 'labels.icon',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'transportationlabel',
  elementType: 'labels.icon',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'transportationlabel',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'financelabel',
  elementType: 'labels.icon',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'entertainment',
  elementType: 'geometry',
  stylers: {
    color: '#d1dbdbff'
  }
}, {
  featureType: 'estate',
  elementType: 'geometry',
  stylers: {
    color: '#d1dbdbff'
  }
}, {
  featureType: 'shopping',
  elementType: 'geometry',
  stylers: {
    color: '#d1dbdbff'
  }
}, {
  featureType: 'education',
  elementType: 'labels.text.fill',
  stylers: {
    color: '#999999ff'
  }
}, {
  featureType: 'education',
  elementType: 'labels.text.stroke',
  stylers: {
    color: '#ffffffff'
  }
}, {
  featureType: 'medical',
  elementType: 'labels.text.fill',
  stylers: {
    color: '#999999ff'
  }
}, {
  featureType: 'medical',
  elementType: 'labels.text.stroke',
  stylers: {
    color: '#ffffffff'
  }
}, {
  featureType: 'transportation',
  elementType: 'labels.text.fill',
  stylers: {
    color: '#999999ff'
  }
}, {
  featureType: 'transportation',
  elementType: 'labels.text.stroke',
  stylers: {
    color: '#ffffffff'
  }
}, {
  featureType: 'road',
  elementType: 'geometry',
  stylers: {
    visibility: 'on'
  }
}, {
  featureType: 'nationalway',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'provincialway',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'cityhighway',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'tertiaryway',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'fourlevelway',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'water',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'manmade',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'education',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'medical',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'scenicspots',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'transportation',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'entertainmentlabel',
  elementType: 'labels.icon',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'estatelabel',
  elementType: 'labels.icon',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'businesstowerlabel',
  elementType: 'labels.icon',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'governmentlabel',
  elementType: 'labels.icon',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'governmentlabel',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'businesstowerlabel',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'estatelabel',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'entertainmentlabel',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'medicallabel',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'educationlabel',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'scenicspotslabel',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'airportlabel',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}, {
  featureType: 'poilabel',
  elementType: 'labels',
  stylers: {
    visibility: 'off'
  }
}]