NE/IA WME MapRaid Regions

Creates polygons for Regions in the NE/IA map raid

安装此脚本
作者推荐脚本

您可能也喜欢WME Layer Saver

安装此脚本
// ==UserScript==
// @name            NE/IA WME MapRaid Regions
// @author          HBiede
// @namespace       hbiede.com
// @description     Creates polygons for Regions in the NE/IA map raid
// @include         /^https:\/\/(www|beta)\.waze\.com\/(?!user\/)(.{2,6}\/)?editor.*$/
// @version         2021.07.05.001
// @grant           none
// @copyright       2021 HBiede, based on work by 2017 Glodenox, based on work by 2015 rickzabel, based on work by 2014 davielde
// @require            https://greasyfork.org/scripts/24851-wazewrap/code/WazeWrap.js
// ==/UserScript==

// overhauled for KS/MO MapRaid by HBiede, reused in subsequent raids

// Grep replacements to find-and-replace convert WKT to JSON areas:
// ".+\(" -> "{lon: '"
// "\)+" -> "'}" (“0\)\)” for 3D generated WKTs)
// "([0-9\.\-])\s([0-9\.\-])" -> "\1'~~~ lat: '\2"
// "," -> "'}, {lon: '" (“[[:space::]]0,” for 3D generated WKTs)
// "~~~" -> ","

// To Change for New Raids:
const mapRaidName            = 'NE/IA MapRaid';
const abbreviation           = 'NEIA';
const mapraidId              = `mapraid${abbreviation}`;
const overlayColorFill       = 0.2; // Set to a number between 0 and 1 to adjust the opacity of the color fill for the overlay
const defaultZoomLevel       = 1; // Default zoom level for when a new region is selected from the dropdown. Set to -1 to leave the zoom level unchanged
const polygonStrokeWidth     = 5; // Set the width of the line used to delimit one region from another
const overlayFillOnByDefault = false;


let mapLayer;


const convertPoints = (list) => list.map(
  (point) => new OL.Geometry.Point(point.lon, point.lat).transform(new OL.Projection('EPSG:4326'), W.map.getProjectionObject()),
);

const addRaidPolygon = (raidLayer, dataList) => {
  let style = {
    strokeColor: dataList.color,
    strokeOpacity: 0.8,
    strokeWidth: polygonStrokeWidth,
    fillColor: dataList.color,
    fillOpacity: (
      localStorage[`MapRaid${abbreviation}Fill`] === 'true'
        ? overlayColorFill
        : 0
    ),
    label: name,
  };

  let polygon = new OL.Geometry.Polygon(new OL.Geometry.LinearRing(convertPoints(dataList.points)));
  let vector  = new OL.Feature.Vector(
    polygon, {
      name: dataList.name,
      fullName: dataList.fullName,
      zoom: (dataList.zoom ? dataList.zoom : defaultZoomLevel),
      centerPoint: (
        dataList.centerPoint
          ? new OL.Geometry.Point(dataList.centerPoint.lon, dataList.centerPoint.lat).transform(new OL.Projection('EPSG:4326'), W.map.getProjectionObject())
          : polygon.getCentroid()
      ),
    },
    style);
  raidLayer.addFeatures([vector]);
};

const createLayerToggler = (parentGroup, checked, checked2, name, toggleCallback, toggleCallback2) => {
  WazeWrap.Interface.AddLayerCheckbox('places', name.replace('/', '-'), checked, toggleCallback, mapLayer);
  WazeWrap.Interface.AddLayerCheckbox('places', 'Fill raid areas', checked2, toggleCallback2);
};

const displayCurrentRaidLocation = () => {
  let raidMapCenter   = W.map.getCenter();
  let raidCenterPoint = new OL.Geometry.Point(raidMapCenter.lon, raidMapCenter.lat);
  let locationDiv     = document.querySelector('#topbar-container > div > div > div.location-info-region > div');
  let mapRaidDiv      = locationDiv.querySelector('strong');
  if (mapRaidDiv === null) {
    mapRaidDiv = document.createElement('strong');
    mapRaidDiv.setAttribute('id', `${mapraidId}LocationDisplay`);
    mapRaidDiv.style.marginLeft = '15px';
    locationDiv.appendChild(mapRaidDiv);
  }
  if (localStorage[`MapRaid${abbreviation}Visible`] === 'true') {
    for (let i = 0; i < mapLayer.features.length; i++) {
      if (mapLayer.features[i].geometry.components[0].containsPoint(raidCenterPoint)) {
        mapRaidDiv.textContent = `[${mapRaidName} Region: ${mapLayer.features[i].attributes.fullName}]`;
        mapRaidDiv.style.color = (
          mapLayer.features[i].style.fillColor && localStorage[`MapRaid${abbreviation}Fill`] === 'true'
            ? mapLayer.features[i].style.fillColor
            : '#FFF'); // color the top bar text with the region color if area fill is enabled, else white
        return;
      }
    }
  }
  mapRaidDiv.textContent = '';
};

const initMapRaidOverlay = () => {
  if (
    typeof W === 'undefined' ||
    typeof W.map === 'undefined' ||
    typeof W.loginManager === 'undefined' ||
    !document.querySelector('#topbar-container > div > div > div.location-info-region > div') ||
    !document.getElementById('layer-switcher-group_display')
  ) {
    setTimeout(initMapRaidOverlay, 800);
    return;
  }
  if (!W.loginManager.user) {
    // init on login for non-logged in users
    W.loginManager.events.register('login', null, initMapRaidOverlay);
    W.loginManager.events.register('loginStatus', null, initMapRaidOverlay);
    if (!W.loginManager.user) {
      return;
    }
  }

  // establish stored variables to track checked status of the display toggle switches
  if (localStorage[`MapRaid${abbreviation}Visible`] === undefined) {
    localStorage[`MapRaid${abbreviation}Visible`] = true;
  }
  if (localStorage[`MapRaid${abbreviation}Fill`] === undefined) {
    localStorage[`MapRaid${abbreviation}Fill`] = overlayFillOnByDefault;
  }

  mapLayer = new OL.Layer.Vector(`${mapRaidName} Regions`, {
    uniqueName: mapraidId,
  });

  // replace groupPoints with custom coordinates, add or remove groups as needed (centerPoint and zoom can be set to choose where the dropdown moves the map to, else will be set to the centroid of the polygon and defaultZoomLevel respectively)
  let groupsData = [
    {
      name: 'Group 1',
      fullName: 'Group 1 - Western Nebraska',
      color: '#F4B400',
      centerPoint: { lat: '41.25', lon: '-103.98' },
      zoom: 1,
      points: [
        {lon: '-99.25361917138203', lat: '42.99842904690569'}, {lon: '-104.0530762670676', lat: '43.00056660503058'}, {lon: '-104.0531025669994', lat: '41.0018714161756'}, {lon: '-102.05179688469292', lat: '41.00257058726218'}, {lon: '-102.0528216947857', lat: '40.00622640474036'}, {lon: '-99.17926524059683', lat: '40.00241847525522'}, {lon: '-99.17883308284166', lat: '40.6606954597523'}, {lon: '-99.41798936397333', lat: '40.67126192651623'}, {lon: '-99.41575137124083', lat: '40.700597606934465'}, {lon: '-99.42654250295102', lat: '40.698915400698134'}, {lon: '-99.42613636283566', lat: '41.04474324355221'}, {lon: '-99.20792737000978', lat: '41.047106893424704'}, {lon: '-99.2043395799507', lat: '41.393544508542135'}, {lon: '-99.2120533371177', lat: '41.39441971401652'}, {lon: '-99.21209886524395', lat: '41.74097174601767'}, {lon: '-99.22242968893909', lat: '41.74219369514714'}, {lon: '-99.22228494468592', lat: '42.08903631758962'}, {lon: '-99.23403936646322', lat: '42.08861621103759'}, {lon: '-99.24571418047928', lat: '42.782294349440775'}, {lon: '-99.2562780361434', lat: '42.783146614638284'}, {lon: '-99.25361917138203', lat: '42.99842904690569'}
      ],
    },
    {
      name: 'Group 2',
      fullName: 'Group 2 - Eastern Nebraska',
      color: '#EE9C96',
      centerPoint: { lat: '40.92', lon: '-98.35' },
      zoom: 2,
      points: [
        {lon: '-99.25398908488192', lat: '42.99693286263452'}, {lon: '-99.2559676482179', lat: '42.78227221442324'}, {lon: '-99.24605501017976', lat: '42.7815109365631'}, {lon: '-99.2442725440158', lat: '42.434619833590894'}, {lon: '-99.23338092933729', lat: '42.43407395332293'}, {lon: '-99.23455464340725', lat: '42.08879372976867'}, {lon: '-99.22317945115756', lat: '42.088227788482726'}, {lon: '-99.22227776168889', lat: '41.74082129678096'}, {lon: '-99.21166831030396', lat: '41.74019727816433'}, {lon: '-99.21173336790406', lat: '41.39405132487812'}, {lon: '-99.20341692151462', lat: '41.393715157974974'}, {lon: '-99.20732136733606', lat: '41.04728742772346'}, {lon: '-99.42506803104516', lat: '41.045596121303106'}, {lon: '-99.42603269649042', lat: '40.69965606686819'}, {lon: '-99.41500602582539', lat: '40.69965776361994'}, {lon: '-99.41673941039474', lat: '40.67158086647022'}, {lon: '-99.17863575088722', lat: '40.66082105866882'}, {lon: '-99.17957152552005', lat: '40.00238856156129'}, {lon: '-96.91451587642206', lat: '40.001229049853876'}, {lon: '-96.90610959225218', lat: '41.74237660944703'}, {lon: '-96.44523858080095', lat: '41.74122016802215'}, {lon: '-96.44428874403383', lat: '41.683525402396654'}, {lon: '-96.11889770341118', lat: '41.684944565931346'}, {lon: '-96.10830877743281', lat: '41.69608047691165'}, {lon: '-96.08470641113652', lat: '41.69631394394311'}, {lon: '-96.07241075961353', lat: '41.701472976744064'}, {lon: '-96.07142416314274', lat: '41.71156196898386'}, {lon: '-96.08956892314133', lat: '41.722304332346035'}, {lon: '-96.10553262150181', lat: '41.73726672905041'}, {lon: '-96.09787140886566', lat: '41.75247166365688'}, {lon: '-96.08921961628488', lat: '41.75281929630432'}, {lon: '-96.08113962997875', lat: '41.76105340853236'}, {lon: '-96.07676896523182', lat: '41.77401294000684'}, {lon: '-96.06875891311273', lat: '41.787689335163535'}, {lon: '-96.06618093720104', lat: '41.798593053914374'}, {lon: '-96.07636466202658', lat: '41.80869328915447'}, {lon: '-96.1038223689435', lat: '41.81522982248769'}, {lon: '-96.11039687487505', lat: '41.82809400120939'}, {lon: '-96.10975141144985', lat: '41.84579098597369'}, {lon: '-96.13571614500752', lat: '41.864444892350754'}, {lon: '-96.16065798627372', lat: '41.90296869572335'}, {lon: '-96.13836091455107', lat: '41.92388117859943'}, {lon: '-96.1337711870697', lat: '41.966605760018474'}, {lon: '-96.17572435127734', lat: '41.97651323198545'}, {lon: '-96.18831848322483', lat: '42.002249425403534'}, {lon: '-96.21622651006243', lat: '42.00453213341426'}, {lon: '-96.22821102519865', lat: '41.9901544049639'}, {lon: '-96.24056116746951', lat: '42.00167433028795'}, {lon: '-96.24072808106135', lat: '42.01202463075544'}, {lon: '-96.22700067356118', lat: '42.02512090484038'}, {lon: '-96.23418237147129', lat: '42.03797916573003'}, {lon: '-96.26929063062276', lat: '42.04393379802876'}, {lon: '-96.27669812023593', lat: '42.0710379463439'}, {lon: '-96.26486927284266', lat: '42.10105748179018'}, {lon: '-96.27388776535413', lat: '42.1190907390862'}, {lon: '-96.30548773866528', lat: '42.13037637423428'}, {lon: '-96.34268679263332', lat: '42.159693389887714'}, {lon: '-96.3481280040615', lat: '42.1867546168107'}, {lon: '-96.36121488493987', lat: '42.21636552951294'}, {lon: '-96.3404701601246', lat: '42.21685683868286'}, {lon: '-96.3319865816987', lat: '42.22329637932229'}, {lon: '-96.32485498345328', lat: '42.23019924863812'}, {lon: '-96.32626106596032', lat: '42.23505171297305'}, {lon: '-96.32908864582328', lat: '42.245241046503736'}, {lon: '-96.33057841199096', lat: '42.25398337908636'}, {lon: '-96.33540956420642', lat: '42.264136063326994'}, {lon: '-96.35667504582517', lat: '42.276566929037934'}, {lon: '-96.36682447653926', lat: '42.29106140837743'}, {lon: '-96.36780013900042', lat: '42.30712007480145'}, {lon: '-96.37395196673545', lat: '42.318244895612665'}, {lon: '-96.38365597495209', lat: '42.32592866535008'}, {lon: '-96.41392265254437', lat: '42.34253823898858'}, {lon: '-96.41635864048193', lat: '42.35947752130785'}, {lon: '-96.40763505573007', lat: '42.376042755784'}, {lon: '-96.41219749042403', lat: '42.3945009062345'}, {lon: '-96.41113223421148', lat: '42.41202065357865'}, {lon: '-96.39678629924718', lat: '42.4266012938616'}, {lon: '-96.38066448962971', lat: '42.44060860486852'}, {lon: '-96.38097599698858', lat: '42.45365350807338'}, {lon: '-96.38361916462931', lat: '42.47088807226531'}, {lon: '-96.39234236992567', lat: '42.481336546258554'}, {lon: '-96.41246109979843', lat: '42.48742345991128'}, {lon: '-96.43771828347776', lat: '42.489618685339025'}, {lon: '-96.4519800291692', lat: '42.48689929693606'}, {lon: '-96.47115661923732', lat: '42.47954803285894'}, {lon: '-96.49743495760907', lat: '42.48006848220687'}, {lon: '-96.51309078248235', lat: '42.49039986250631'}, {lon: '-96.52960232833318', lat: '42.51336763670639'}, {lon: '-96.5502954335933', lat: '42.51857644011833'}, {lon: '-96.58097158253005', lat: '42.51100921858402'}, {lon: '-96.60422153088511', lat: '42.50395021033392'}, {lon: '-96.62442371732087', lat: '42.51289688808779'}, {lon: '-96.63213934272112', lat: '42.524215711213785'}, {lon: '-96.63253431832062', lat: '42.53982948733875'}, {lon: '-96.64328899607547', lat: '42.55823638601252'}, {lon: '-96.67948629068373', lat: '42.57455429789489'}, {lon: '-96.71034030522891', lat: '42.605567179074264'}, {lon: '-96.70970229218018', lat: '42.620325178134756'}, {lon: '-96.68663647634267', lat: '42.647457502814845'}, {lon: '-96.69510040169925', lat: '42.658054630544136'}, {lon: '-96.73089410658136', lat: '42.667579153515085'}, {lon: '-96.7617261645492', lat: '42.6610890760278'}, {lon: '-96.78928123090444', lat: '42.66462394214269'}, {lon: '-96.805750503343', lat: '42.67248060487876'}, {lon: '-96.80091710241211', lat: '42.69599403102901'}, {lon: '-96.80846491708574', lat: '42.705249879887205'}, {lon: '-96.82677440256073', lat: '42.708318116002545'}, {lon: '-96.85991542865669', lat: '42.720536409298276'}, {lon: '-96.8809281993604', lat: '42.722211254989524'}, {lon: '-96.90491789765467', lat: '42.73255285481311'}, {lon: '-96.92573779341797', lat: '42.72752528985181'}, {lon: '-96.9447104232386', lat: '42.72185488099374'}, {lon: '-96.95922294968041', lat: '42.719606840912256'}, {lon: '-96.96067061070873', lat: '42.73767820066007'}, {lon: '-96.96380495506864', lat: '42.751025429675224'}, {lon: '-96.98502638314007', lat: '42.75939577418305'}, {lon: '-97.01056712624185', lat: '42.7596370564078'}, {lon: '-97.06113146372715', lat: '42.77276588451804'}, {lon: '-97.11269915835798', lat: '42.769035231001105'}, {lon: '-97.1352396200393', lat: '42.77429469545143'}, {lon: '-97.14741614036782', lat: '42.79275776023768'}, {lon: '-97.17475942936859', lat: '42.80301931244707'}, {lon: '-97.21196876596703', lat: '42.8079908856354'}, {lon: '-97.21638155383629', lat: '42.82433061050964'}, {lon: '-97.21614829713694', lat: '42.84019322111062'}, {lon: '-97.22731504696586', lat: '42.85075423530452'}, {lon: '-97.25139672370449', lat: '42.854826119336174'}, {lon: '-97.26910606417728', lat: '42.85335825054184'}, {lon: '-97.28845764908239', lat: '42.85469003917334'}, {lon: '-97.30041761663418', lat: '42.86523087649891'}, {lon: '-97.31729224018689', lat: '42.86205310729177'}, {lon: '-97.33482135951445', lat: '42.85550239472766'}, {lon: '-97.35563231326948', lat: '42.85451992292447'}, {lon: '-97.3720517412087', lat: '42.85986855393545'}, {lon: '-97.3839253742402', lat: '42.867565220182264'}, {lon: '-97.40475707439724', lat: '42.86659874137703'}, {lon: '-97.4215900785795', lat: '42.862295337343646'}, {lon: '-97.43493785894896', lat: '42.84785900406339'}, {lon: '-97.45337829077513', lat: '42.8452236984453'}, {lon: '-97.47667791302825', lat: '42.84925555207515'}, {lon: '-97.49137296196794', lat: '42.84952541971474'}, {lon: '-97.50629507718756', lat: '42.85545413003387'}, {lon: '-97.55543187700016', lat: '42.84707214877872'}, {lon: '-97.60989488151078', lat: '42.85665616415348'}, {lon: '-97.61216337959642', lat: '42.8560288213211'}, {lon: '-97.66276527559418', lat: '42.843254590646964'}, {lon: '-97.66567605640472', lat: '42.843189351851656'}, {lon: '-97.72773313467125', lat: '42.84608919368747'}, {lon: '-97.78332582016039', lat: '42.85069639554595'}, {lon: '-97.81517594764259', lat: '42.86172528967689'}, {lon: '-97.82787707090831', lat: '42.86838213593369'}, {lon: '-97.86264096706067', lat: '42.862752117511036'}, {lon: '-97.87687058924506', lat: '42.85544651507263'}, {lon: '-97.88241596386244', lat: '42.83286790981682'}, {lon: '-97.89148315132549', lat: '42.810687727568656'}, {lon: '-97.9248732441035', lat: '42.78907897102472'}, {lon: '-97.9473264701415', lat: '42.770354974298996'}, {lon: '-98.00151593677644', lat: '42.76064385174792'}, {lon: '-98.05666717972807', lat: '42.76886388845858'}, {lon: '-98.0827789276995', lat: '42.79600133353604'}, {lon: '-98.1179280932476', lat: '42.8199988415121'}, {lon: '-98.14885464508089', lat: '42.83736279736827'}, {lon: '-98.18951688319972', lat: '42.84016164136825'}, {lon: '-98.23101170750897', lat: '42.85915628825713'}, {lon: '-98.25532689554102', lat: '42.873894927337645'}, {lon: '-98.30538078768667', lat: '42.88018143033407'}, {lon: '-98.33215375093278', lat: '42.89099180847288'}, {lon: '-98.35779831808517', lat: '42.90561121626116'}, {lon: '-98.40618882745358', lat: '42.92915063755188'}, {lon: '-98.43124431368247', lat: '42.930454500728864'}, {lon: '-98.45107241426439', lat: '42.933708957461285'}, {lon: '-98.4665680334839', lat: '42.954317537286315'}, {lon: '-98.50189789458331', lat: '42.99850745803676'}, {lon: '-99.25398908488192', lat: '42.99693286263452'}
      ],
    },
    {
      name: 'Group 3',
      fullName: 'Group 3 - Northwestern Iowa',
      color: '#A61B4A',
      centerPoint: { lat: '42.50908', lon: '-96.40947' },
      zoom: 3,
      points: [
        {lon: '-96.58172243048642', lat: '43.48930525383197'}, {lon: '-96.58467037628587', lat: '43.46749523006594'}, {lon: '-96.59162246538163', lat: '43.46231037683799'}, {lon: '-96.59924257581226', lat: '43.45130824260365'}, {lon: '-96.5890684554351', lat: '43.432889729562014'}, {lon: '-96.57139185881098', lat: '43.43370987463175'}, {lon: '-96.56662832405735', lat: '43.41844447831738'}, {lon: '-96.53887563698329', lat: '43.39900485569989'}, {lon: '-96.52470135894214', lat: '43.395353499555135'}, {lon: '-96.52574407317395', lat: '43.36655107366404'}, {lon: '-96.52450072465176', lat: '43.35185499241304'}, {lon: '-96.5320511671995', lat: '43.33704467775172'}, {lon: '-96.52444578897018', lat: '43.31411667863205'}, {lon: '-96.53288661657054', lat: '43.30121606632111'}, {lon: '-96.56096523666704', lat: '43.2982842357771'}, {lon: '-96.57841517605648', lat: '43.29229090076901'}, {lon: '-96.58672409507105', lat: '43.27362713081008'}, {lon: '-96.5751390086681', lat: '43.26803140939241'}, {lon: '-96.55385607087553', lat: '43.260645926897844'}, {lon: '-96.55081982321008', lat: '43.24702176982726'}, {lon: '-96.56971229746989', lat: '43.241062025625766'}, {lon: '-96.56227965210576', lat: '43.225289179616816'}, {lon: '-96.53382265344004', lat: '43.22824026160998'}, {lon: '-96.51371343265338', lat: '43.22030563772746'}, {lon: '-96.49377346683083', lat: '43.222987423630485'}, {lon: '-96.47812838182008', lat: '43.22249127507209'}, {lon: '-96.47106001697446', lat: '43.20837305028209'}, {lon: '-96.47201051281205', lat: '43.19031064737169'}, {lon: '-96.46633353522505', lat: '43.1838320034552'}, {lon: '-96.4655771809291', lat: '43.15126322981525'}, {lon: '-96.45092450534474', lat: '43.14240551396937'}, {lon: '-96.43802121730313', lat: '43.119495591030926'}, {lon: '-96.46074726699716', lat: '43.09214977886203'}, {lon: '-96.45459220561632', lat: '43.082820318912205'}, {lon: '-96.46027732471202', lat: '43.06312232583245'}, {lon: '-96.47127427969674', lat: '43.06349193879779'}, {lon: '-96.48887433356299', lat: '43.051277557117565'}, {lon: '-96.50877086240111', lat: '43.05052226185865'}, {lon: '-96.51338324557929', lat: '43.042927558007804'}, {lon: '-96.51163493242758', lat: '43.02739737974518'}, {lon: '-96.4969910714923', lat: '43.01804852288371'}, {lon: '-96.49316707336247', lat: '43.00203626084096'}, {lon: '-96.51113954385264', lat: '42.991017521630454'}, {lon: '-96.51993019445307', lat: '42.978112898356386'}, {lon: '-96.51210349673526', lat: '42.973083953394955'}, {lon: '-96.5005585136183', lat: '42.95937778902476'}, {lon: '-96.51741440816673', lat: '42.934561484185174'}, {lon: '-96.54045289686857', lat: '42.92423988461538'}, {lon: '-96.5384040136438', lat: '42.917974593353016'}, {lon: '-96.53806593035648', lat: '42.91727400894022'}, {lon: '-96.54193979704307', lat: '42.90476513567291'}, {lon: '-96.534134138685', lat: '42.90086654550504'}, {lon: '-96.52363501881457', lat: '42.89182635102258'}, {lon: '-96.53705932038605', lat: '42.88929902945115'}, {lon: '-96.5436786042308', lat: '42.88450290768277'}, {lon: '-96.5383907767751', lat: '42.878224267985225'}, {lon: '-96.54476746521878', lat: '42.874113185323274'}, {lon: '-96.54927670558205', lat: '42.87036998174043'}, {lon: '-96.54950403781409', lat: '42.86269786863272'}, {lon: '-96.54308732964115', lat: '42.85695782672777'}, {lon: '-96.54460107030232', lat: '42.85049827019455'}, {lon: '-96.5545916595343', lat: '42.84852731403266'}, {lon: '-96.54976779753217', lat: '42.83968989959213'}, {lon: '-96.55258841739321', lat: '42.835654019093425'}, {lon: '-96.55938413277134', lat: '42.83956433750669'}, {lon: '-96.56243751616043', lat: '42.828167800147114'}, {lon: '-96.5689080367402', lat: '42.83575825111408'}, {lon: '-96.58026096637036', lat: '42.83806242149403'}, {lon: '-96.58479269522638', lat: '42.819285592736165'}, {lon: '-96.59474534146034', lat: '42.816386076053725'}, {lon: '-96.59037419143608', lat: '42.808480104919276'}, {lon: '-96.5973995350181', lat: '42.79920458086156'}, {lon: '-96.60380689329125', lat: '42.78450784904739'}, {lon: '-96.61835824842937', lat: '42.784312556317396'}, {lon: '-96.63498893411604', lat: '42.77160691540763'}, {lon: '-96.63528980236201', lat: '42.76413704700298'}, {lon: '-96.62046983541917', lat: '42.75436009362527'}, {lon: '-96.63712368258045', lat: '42.73671189873266'}, {lon: '-96.62658589545077', lat: '42.717139546628445'}, {lon: '-96.6248675794452', lat: '42.70638257013202'}, {lon: '-96.59965670762423', lat: '42.69937500899118'}, {lon: '-96.59050662470531', lat: '42.69109117321113'}, {lon: '-96.5763428867931', lat: '42.68234891276114'}, {lon: '-96.56752534946081', lat: '42.67614335628986'}, {lon: '-96.55723915555969', lat: '42.66518805685656'}, {lon: '-96.55823451503488', lat: '42.65887162527894'}, {lon: '-96.54339232477771', lat: '42.66115236875994'}, {lon: '-96.52447186842763', lat: '42.63657450667336'}, {lon: '-96.51572655684247', lat: '42.629539646143556'}, {lon: '-96.49965378008415', lat: '42.587860309827384'}, {lon: '-96.49133142299101', lat: '42.586315613234234'}, {lon: '-96.493397417628', lat: '42.57905267782917'}, {lon: '-96.4855192315281', lat: '42.573861792708875'}, {lon: '-96.4995587780545', lat: '42.562019462707624'}, {lon: '-96.49614713007162', lat: '42.55721646261072'}, {lon: '-96.4762200875384', lat: '42.554578078747056'}, {lon: '-96.47827778908463', lat: '42.52551975981422'}, {lon: '-96.47881756459113', lat: '42.52471020928696'}, {lon: '-96.49070898432115', lat: '42.520548324509505'}, {lon: '-96.49268354553114', lat: '42.51590736769597'}, {lon: '-96.48577684090269', lat: '42.51099193628887'}, {lon: '-96.47683715886903', lat: '42.50992245742404'}, {lon: '-96.4729918572746', lat: '42.50303137340008'}, {lon: '-96.47598920526535', lat: '42.494576004373805'}, {lon: '-96.47484259869648', lat: '42.49035875878437'}, {lon: '-96.47012520710882', lat: '42.4896452110084'}, {lon: '-96.463369249468', lat: '42.491259321195486'}, {lon: '-96.45602882565883', lat: '42.49322007732576'}, {lon: '-96.44653830293419', lat: '42.49061635445152'}, {lon: '-96.42837919852353', lat: '42.49088887517967'}, {lon: '-96.40433827971304', lat: '42.48659326028593'}, {lon: '-96.38748270662457', lat: '42.479852683698454'}, {lon: '-96.3799089875634', lat: '42.46801476523493'}, {lon: '-96.37944956775532', lat: '42.4399692679005'}, {lon: '-96.3934936387669', lat: '42.426462063404266'}, {lon: '-96.40449356963269', lat: '42.4188841406986'}, {lon: '-96.41226050699599', lat: '42.409769728194696'}, {lon: '-96.41187132170998', lat: '42.393292895163604'}, {lon: '-96.40722029318931', lat: '42.37530905936972'}, {lon: '-96.41747794471841', lat: '42.35910567226052'}, {lon: '-96.41125142919724', lat: '42.341925474361275'}, {lon: '-96.38703758659473', lat: '42.32692320782015'}, {lon: '-96.37409864769182', lat: '42.318448804884106'}, {lon: '-96.36663757910125', lat: '42.28969888997179'}, {lon: '-96.35771576348665', lat: '42.27741803150526'}, {lon: '-96.34353239267004', lat: '42.27079259353663'}, {lon: '-96.33032989964998', lat: '42.25896073601376'}, {lon: '-96.322708456463', lat: '42.23068712449186'}, {lon: '-96.33747433958426', lat: '42.21774915348466'}, {lon: '-96.35592807571965', lat: '42.21450902771585'}, {lon: '-96.32591496518968', lat: '42.15502690484345'}, {lon: '-96.27933538145156', lat: '42.12168178479981'}, {lon: '-96.26718856116719', lat: '42.051703261787125'}, {lon: '-96.21403702129521', lat: '42.02624523851579'}, {lon: '-96.23458094055411', lat: '42.00012673365814'}, {lon: '-96.19608668560252', lat: '42.008239550998546'}, {lon: '-96.1744536402729', lat: '41.982480689592876'}, {lon: '-96.13218254282718', lat: '41.969878451989906'}, {lon: '-96.13145415423205', lat: '41.928416404889376'}, {lon: '-96.15208492759335', lat: '41.904913702884876'}, {lon: '-96.1516824150734', lat: '41.881591661655314'}, {lon: '-96.12335267733538', lat: '41.863694921771405'}, {lon: '-94.16599022142522', lat: '41.86168833609461'}, {lon: '-94.16429228843779', lat: '42.2096507030659'}, {lon: '-92.76101043544736', lat: '42.20770246189885'}, {lon: '-92.76633912249534', lat: '42.296310579050974'}, {lon: '-91.5941579459412', lat: '42.296307627221786'}, {lon: '-91.59692226440173', lat: '42.468376660726086'}, {lon: '-91.60889787114805', lat: '42.469672837950725'}, {lon: '-91.6036232258758', lat: '43.34134896979192'}, {lon: '-91.61014552528526', lat: '43.34089950039653'}, {lon: '-91.6089014359044', lat: '43.500131957227445'}, {lon: '-96.59859988775045', lat: '43.50047242454398'}, {lon: '-96.58172243048642', lat: '43.48930525383197'}
      ],
    },
    {
      name: 'Group 4',
      fullName: 'Group 4 - Eastern Iowa',
      color: '#F4EB37',
      centerPoint: { lat: '41.96334', lon: '-91.68294' },
      zoom: 1,
      points: [
        {lon: '-91.61145301017024', lat: '43.34220809100384'}, {lon: '-91.60219050630529', lat: '43.34153776938081'}, {lon: '-91.60856366737623', lat: '42.46979970224281'}, {lon: '-91.59702166243632', lat: '42.46915172653429'}, {lon: '-91.59658113872278', lat: '42.29626380299087'}, {lon: '-92.76704922404734', lat: '42.29604670374701'}, {lon: '-92.76587791050746', lat: '41.60157178519998'}, {lon: '-92.75624514020325', lat: '41.601001377305636'}, {lon: '-92.7550830842924', lat: '41.50905738890133'}, {lon: '-92.86913642356353', lat: '41.508891341231845'}, {lon: '-92.86966439483199', lat: '41.16035854267064'}, {lon: '-93.09690104312378', lat: '41.160330434878404'}, {lon: '-93.09584047990123', lat: '40.5836934292177'}, {lon: '-91.72748373089902', lat: '40.61390138560307'}, {lon: '-91.7158059529506', lat: '40.59768298990919'}, {lon: '-91.69961479612137', lat: '40.58820017030341'}, {lon: '-91.68623103829914', lat: '40.577728996836136'}, {lon: '-91.68800160116017', lat: '40.57092565306766'}, {lon: '-91.68796830022819', lat: '40.55878099599228'}, {lon: '-91.67857180156892', lat: '40.55268105208788'}, {lon: '-91.66063600246798', lat: '40.54946523801263'}, {lon: '-91.63865113642558', lat: '40.54454183496045'}, {lon: '-91.6228982313287', lat: '40.54088889071166'}, {lon: '-91.6170487720886', lat: '40.53330518783276'}, {lon: '-91.61934932678741', lat: '40.51701462951263'}, {lon: '-91.61862607546651', lat: '40.50484597652351'}, {lon: '-91.6031274096513', lat: '40.49591185545055'}, {lon: '-91.5895395883955', lat: '40.490721015723416'}, {lon: '-91.58270949585672', lat: '40.47623465053337'}, {lon: '-91.57503275760546', lat: '40.46439280380503'}, {lon: '-91.55448526613095', lat: '40.45949327967201'}, {lon: '-91.5399613115218', lat: '40.45848559092738'}, {lon: '-91.52553468085405', lat: '40.45591076517918'}, {lon: '-91.52314596573397', lat: '40.44896344269482'}, {lon: '-91.53478621229306', lat: '40.43929643681821'}, {lon: '-91.52806642788545', lat: '40.435381296136725'}, {lon: '-91.51785362380011', lat: '40.43187860615818'}, {lon: '-91.52546356151483', lat: '40.41998100479231'}, {lon: '-91.52337363715546', lat: '40.411487988673926'}, {lon: '-91.51095753740988', lat: '40.4074189267185'}, {lon: '-91.48996177411337', lat: '40.40232726007543'}, {lon: '-91.49053566495014', lat: '40.39351589146257'}, {lon: '-91.48337857234334', lat: '40.38445159951237'}, {lon: '-91.46420201825846', lat: '40.381620176139855'}, {lon: '-91.45585599559755', lat: '40.37546685329134'}, {lon: '-91.44172772236224', lat: '40.38529701640648'}, {lon: '-91.4147709253333', lat: '40.38004059316967'}, {lon: '-91.38538317667383', lat: '40.3871402214195'}, {lon: '-91.38039577993274', lat: '40.389909923771604'}, {lon: '-91.37517350186147', lat: '40.4132318600079'}, {lon: '-91.37504481202119', lat: '40.415430476329284'}, {lon: '-91.37906746947063', lat: '40.44567350591981'}, {lon: '-91.37748737420323', lat: '40.45910181521887'}, {lon: '-91.36714019407353', lat: '40.488265582791314'}, {lon: '-91.37802492247474', lat: '40.52252179119821'}, {lon: '-91.40663914099899', lat: '40.549692257723045'}, {lon: '-91.38958499071869', lat: '40.56884576010299'}, {lon: '-91.36347084007768', lat: '40.5963855067162'}, {lon: '-91.30718343093619', lat: '40.62182485947799'}, {lon: '-91.25305281825197', lat: '40.63529051234499'}, {lon: '-91.18082058099316', lat: '40.6404034682775'}, {lon: '-91.13195421153137', lat: '40.66268471970878'}, {lon: '-91.11602241737559', lat: '40.68721770370042'}, {lon: '-91.11301193004144', lat: '40.712208523742696'}, {lon: '-91.11252237135864', lat: '40.742745737866194'}, {lon: '-91.09566450846921', lat: '40.7814171099639'}, {lon: '-91.09459794318238', lat: '40.79883120425903'}, {lon: '-91.0903489570993', lat: '40.82049761190853'}, {lon: '-91.06142696328762', lat: '40.84454202941158'}, {lon: '-91.05024650615687', lat: '40.86159137486535'}, {lon: '-91.03200099900974', lat: '40.87619895138152'}, {lon: '-91.00282910620004', lat: '40.90349547741261'}, {lon: '-90.95964781372317', lat: '40.923712086319384'}, {lon: '-90.95024807711546', lat: '40.95719621922375'}, {lon: '-90.95906478159462', lat: '40.97717731823025'}, {lon: '-90.94115949661726', lat: '41.0299962795831'}, {lon: '-90.94617428367188', lat: '41.064056523914246'}, {lon: '-90.94630835669295', lat: '41.09726532525562'}, {lon: '-90.96354663833209', lat: '41.12401411281764'}, {lon: '-90.98000946694593', lat: '41.145677087130345'}, {lon: '-90.99463579888966', lat: '41.161369866802445'}, {lon: '-91.01460694248064', lat: '41.16377743494241'}, {lon: '-91.03573873532552', lat: '41.16539435267618'}, {lon: '-91.04400092600918', lat: '41.17580756096104'}, {lon: '-91.0669314191259', lat: '41.201884307467935'}, {lon: '-91.0944790365491', lat: '41.22642267824184'}, {lon: '-91.11251653214337', lat: '41.24139113531388'}, {lon: '-91.10922289836094', lat: '41.25810205295191'}, {lon: '-91.0907656924946', lat: '41.28436779916061'}, {lon: '-91.07591875662285', lat: '41.30655230888151'}, {lon: '-91.07005224341829', lat: '41.32821859768355'}, {lon: '-91.06886522193213', lat: '41.34668621815742'}, {lon: '-91.0621963775914', lat: '41.363272790240906'}, {lon: '-91.05201673591444', lat: '41.38225711352548'}, {lon: '-91.05393017395225', lat: '41.40504483193671'}, {lon: '-91.03818601066212', lat: '41.422984294462225'}, {lon: '-91.00543905493662', lat: '41.42599538989512'}, {lon: '-90.97802773596486', lat: '41.432526940314816'}, {lon: '-90.92928283873648', lat: '41.42314837537779'}, {lon: '-90.89677701085226', lat: '41.43546609779946'}, {lon: '-90.86582260290866', lat: '41.44681766157901'}, {lon: '-90.82873121768037', lat: '41.456380203355536'}, {lon: '-90.78933817517316', lat: '41.454851362087794'}, {lon: '-90.76053428161337', lat: '41.44987642960977'}, {lon: '-90.7001017442152', lat: '41.451439143424196'}, {lon: '-90.67251078204629', lat: '41.45899774066668'}, {lon: '-90.6492591734339', lat: '41.46431699077597'}, {lon: '-90.63719251590001', lat: '41.47319919788583'}, {lon: '-90.62381002899586', lat: '41.48593097407749'}, {lon: '-90.60556473565148', lat: '41.49380026901936'}, {lon: '-90.60391823384765', lat: '41.50232674780433'}, {lon: '-90.59063708753862', lat: '41.51351565521296'}, {lon: '-90.56097782991836', lat: '41.520917486198314'}, {lon: '-90.53683089624715', lat: '41.52381327561374'}, {lon: '-90.49144393291405', lat: '41.51805032582423'}, {lon: '-90.46083671970383', lat: '41.523809533228146'}, {lon: '-90.44205811989211', lat: '41.53863007801976'}, {lon: '-90.42528676933922', lat: '41.55430503946454'}, {lon: '-90.40134696240476', lat: '41.56811728601351'}, {lon: '-90.37153406088363', lat: '41.577017368120444'}, {lon: '-90.34706370723602', lat: '41.58378491435055'}, {lon: '-90.33858100358044', lat: '41.59979925747303'}, {lon: '-90.342256841766', lat: '41.635035082874'}, {lon: '-90.34196442281649', lat: '41.65215496347281'}, {lon: '-90.33285576071492', lat: '41.67592735003501'}, {lon: '-90.32064609336966', lat: '41.68554424229661'}, {lon: '-90.3148856571275', lat: '41.70634375333788'}, {lon: '-90.31298592337409', lat: '41.731206054598175'}, {lon: '-90.29417581932792', lat: '41.75847769176009'}, {lon: '-90.25085013095325', lat: '41.77769991063286'}, {lon: '-90.20551356505459', lat: '41.79526959579704'}, {lon: '-90.18310456192266', lat: '41.81381469264304'}, {lon: '-90.184929058253', lat: '41.83028514425187'}, {lon: '-90.17731775128388', lat: '41.84712326070075'}, {lon: '-90.16519134041076', lat: '41.87395108705045'}, {lon: '-90.15641255679742', lat: '41.89689607902946'}, {lon: '-90.15389677396219', lat: '41.92964738964308'}, {lon: '-90.16132311042213', lat: '41.95418275848141'}, {lon: '-90.144235142645', lat: '41.979359962575685'}, {lon: '-90.13784926799477', lat: '42.00154892735084'}, {lon: '-90.1523149641331', lat: '42.0272676440589'}, {lon: '-90.16203106250457', lat: '42.03806664951974'}, {lon: '-90.16690159414036', lat: '42.06243605601582'}, {lon: '-90.1583338736059', lat: '42.097480215317205'}, {lon: '-90.16794031432792', lat: '42.123803665253114'}, {lon: '-90.19222550438437', lat: '42.12657986750098'}, {lon: '-90.19887628004082', lat: '42.146721686929695'}, {lon: '-90.24605590379797', lat: '42.16945619992932'}, {lon: '-90.27843510420215', lat: '42.174258338502455'}, {lon: '-90.31278363348447', lat: '42.196431491542846'}, {lon: '-90.3540409888898', lat: '42.20591096227716'}, {lon: '-90.38561918256525', lat: '42.22015159712439'}, {lon: '-90.40746092592855', lat: '42.24585459275436'}, {lon: '-90.42431498409262', lat: '42.29061393783387'}, {lon: '-90.42530869800247', lat: '42.29554775622689'}, {lon: '-90.41654491468404', lat: '42.325506211477276'}, {lon: '-90.41639389038046', lat: '42.327455042922196'}, {lon: '-90.43919581642454', lat: '42.355755736975986'}, {lon: '-90.44435615874909', lat: '42.35890197104257'}, {lon: '-90.47046921266691', lat: '42.38538238455422'}, {lon: '-90.53415242846933', lat: '42.404549517467856'}, {lon: '-90.53910129734761', lat: '42.40865674060014'}, {lon: '-90.55995890433948', lat: '42.43486762786568'}, {lon: '-90.60973097861854', lat: '42.45930244857728'}, {lon: '-90.64346570823719', lat: '42.47133809792328'}, {lon: '-90.64858848073104', lat: '42.49011840383415'}, {lon: '-90.63667417780411', lat: '42.51013758488084'}, {lon: '-90.63706374440132', lat: '42.52477045026223'}, {lon: '-90.65130285068446', lat: '42.54682574258597'}, {lon: '-90.66480393631863', lat: '42.566799297532484'}, {lon: '-90.68207483777651', lat: '42.60596688250296'}, {lon: '-90.71244893595023', lat: '42.63316327449333'}, {lon: '-90.71540656621725', lat: '42.6355492191251'}, {lon: '-90.77334882238243', lat: '42.651441889382056'}, {lon: '-90.77934483271126', lat: '42.65393306282186'}, {lon: '-90.89645760540071', lat: '42.67528196132467'}, {lon: '-90.95427437330753', lat: '42.68645705612323'}, {lon: '-90.98696395779587', lat: '42.70345201776225'}, {lon: '-91.0106910846224', lat: '42.71787120124911'}, {lon: '-91.035913364817', lat: '42.73688838665952'}, {lon: '-91.05257386136078', lat: '42.737445016914606'}, {lon: '-91.05914338460859', lat: '42.758025219629175'}, {lon: '-91.08048554978946', lat: '42.82877142089324'}, {lon: '-91.09264599285774', lat: '42.831454624044525'}, {lon: '-91.09940979454457', lat: '42.872313681506476'}, {lon: '-91.14369701389042', lat: '42.90539492823871'}, {lon: '-91.15132619002308', lat: '42.98945999716813'}, {lon: '-91.17350777007611', lat: '43.077500469414815'}, {lon: '-91.17172344084895', lat: '43.1306287169839'}, {lon: '-91.14205679315967', lat: '43.157296560798414'}, {lon: '-91.11610102481777', lat: '43.20105764554891'}, {lon: '-91.06233494742928', lat: '43.25676666158574'}, {lon: '-91.11008955604088', lat: '43.31159282732139'}, {lon: '-91.18423133194506', lat: '43.34590502167606'}, {lon: '-91.21271118996754', lat: '43.35956900210062'}, {lon: '-91.20206060793639', lat: '43.38286129264998'}, {lon: '-91.19825651664385', lat: '43.41793359308133'}, {lon: '-91.23390724484767', lat: '43.45640913345449'}, {lon: '-91.21042497736147', lat: '43.48411111087115'}, {lon: '-91.21510338218798', lat: '43.500375537643556'}, {lon: '-91.60982628421108', lat: '43.49954969029722'}, {lon: '-91.61145301017024', lat: '43.34220809100384'}
      ],
    },
    {
      name: 'Group 5',
      fullName: 'Group 5 - Des Moines Metro',
      color: '#7CCFA9',
      centerPoint: { lat: '41.5817', lon: '-93.6' },
      zoom: 1,
      points: [
        {lon: '-92.76893728387178', lat: '42.20985907302296'}, {lon: '-94.16451740508361', lat: '42.209734177914896'}, {lon: '-94.16450424861354', lat: '41.86310062533248'}, {lon: '-94.74550417863333', lat: '41.862348585102154'}, {lon: '-94.74263911942433', lat: '41.600787309379875'}, {lon: '-94.70148041738524', lat: '41.59964313591131'}, {lon: '-94.69985517672342', lat: '41.16104291446739'}, {lon: '-94.9271123114423', lat: '41.15655831032653'}, {lon: '-94.92928220169081', lat: '40.72722832795034'}, {lon: '-94.91268591056448', lat: '40.72787028035713'}, {lon: '-94.9145288946329', lat: '40.5745611389728'}, {lon: '-94.46987547124854', lat: '40.570065829598576'}, {lon: '-93.0973265084008', lat: '40.586240539591394'}, {lon: '-93.09893788582126', lat: '41.159659911129665'}, {lon: '-92.86832022966364', lat: '41.16219212089268'}, {lon: '-92.86854277650099', lat: '41.50819530202354'}, {lon: '-92.75572568295969', lat: '41.508879764071125'}, {lon: '-92.75634428016664', lat: '41.600743118707356'}, {lon: '-92.76616745847944', lat: '41.60155288273543'}, {lon: '-92.76893728387178', lat: '42.20985907302296'}
      ],
    },
    {
      name: 'Group 6',
      fullName: 'Group 6 - Lincoln/Omaha Metro',
      color: '#4186f0',
      centerPoint: { lat: '41.23', lon: '-96.05' },
      zoom: 1,
      points: [
        {lon: '-96.12326664871688', lat: '41.8580734262198'}, {lon: '-96.11311818657398', lat: '41.85101455110815'}, {lon: '-96.10848702953125', lat: '41.84280237026611'}, {lon: '-96.10823591473758', lat: '41.824112255249304'}, {lon: '-96.10058656123535', lat: '41.815701950427695'}, {lon: '-96.08414370313969', lat: '41.811121134823914'}, {lon: '-96.07210155391908', lat: '41.80462213045076'}, {lon: '-96.06631833451964', lat: '41.794328565237706'}, {lon: '-96.06937875858033', lat: '41.78538277818426'}, {lon: '-96.0787189317504', lat: '41.774517428957815'}, {lon: '-96.07862139545979', lat: '41.764652100870144'}, {lon: '-96.08229326339784', lat: '41.75429576502114'}, {lon: '-96.09235839287052', lat: '41.75376227191914'}, {lon: '-96.10236002575243', lat: '41.74712195108645'}, {lon: '-96.10539600149652', lat: '41.73677158415256'}, {lon: '-96.09836047099684', lat: '41.72649014833424'}, {lon: '-96.08759790581315', lat: '41.72092819933514'}, {lon: '-96.07304215634322', lat: '41.71303947956234'}, {lon: '-96.0735815957992', lat: '41.7045861961161'}, {lon: '-96.08395284618526', lat: '41.69744959002461'}, {lon: '-96.08686847164753', lat: '41.69688668025078'}, {lon: '-96.10148860529057', lat: '41.69842133108253'}, {lon: '-96.11240816118244', lat: '41.69562787908454'}, {lon: '-96.12103283579582', lat: '41.683604595896924'}, {lon: '-96.44519740263793', lat: '41.683624471003945'}, {lon: '-96.44544822693773', lat: '41.74164837568649'}, {lon: '-96.9056166360738', lat: '41.742756363267596'}, {lon: '-96.91616830855904', lat: '40.00147860224919'}, {lon: '-95.30630277767561', lat: '39.999792944394464'}, {lon: '-95.30996615077851', lat: '40.007509653079275'}, {lon: '-95.32831003597266', lat: '40.0159644948266'}, {lon: '-95.3502749368128', lat: '40.029975824651984'}, {lon: '-95.36674946419369', lat: '40.03067089215048'}, {lon: '-95.39329177844131', lat: '40.02645975903016'}, {lon: '-95.40977888832616', lat: '40.039754996266694'}, {lon: '-95.42262426522922', lat: '40.0572844021387'}, {lon: '-95.41256507329524', lat: '40.06430510455723'}, {lon: '-95.39424898462943', lat: '40.07130510978335'}, {lon: '-95.39334532678103', lat: '40.08252049433144'}, {lon: '-95.39610336437714', lat: '40.09163036667163'}, {lon: '-95.39794972262268', lat: '40.104244756131294'}, {lon: '-95.39063054983085', lat: '40.11546244160202'}, {lon: '-95.40530895545798', lat: '40.12806829209745'}, {lon: '-95.4236496614642', lat: '40.131559776953736'}, {lon: '-95.42733154606108', lat: '40.144870548145'}, {lon: '-95.43743966103305', lat: '40.15887785582308'}, {lon: '-95.46404807891193', lat: '40.174242252828094'}, {lon: '-95.47968524807902', lat: '40.19245070335933'}, {lon: '-95.47331610128666', lat: '40.210698979256456'}, {lon: '-95.46877489448045', lat: '40.232434472879014'}, {lon: '-95.4765680024153', lat: '40.24165012654959'}, {lon: '-95.48973511094513', lat: '40.24862005934781'}, {lon: '-95.52180802060141', lat: '40.249100517375986'}, {lon: '-95.55208137561884', lat: '40.26121951647348'}, {lon: '-95.5549705497481', lat: '40.273405484445284'}, {lon: '-95.55102507330105', lat: '40.28866628520098'}, {lon: '-95.5619164093078', lat: '40.297800871395005'}, {lon: '-95.58020728459064', lat: '40.299509237271266'}, {lon: '-95.59566001173509', lat: '40.30601317333924'}, {lon: '-95.61397806167072', lat: '40.313816485419395'}, {lon: '-95.62824641996349', lat: '40.30986712921117'}, {lon: '-95.64537175664243', lat: '40.30679757282036'}, {lon: '-95.64822678644866', lat: '40.30678657411297'}, {lon: '-95.64937085462567', lat: '40.30721595788424'}, {lon: '-95.65968218901845', lat: '40.31372696273849'}, {lon: '-95.6602576133793', lat: '40.31459614732916'}, {lon: '-95.64830150919093', lat: '40.32246197805364'}, {lon: '-95.63404914270151', lat: '40.32902770814651'}, {lon: '-95.62323981452231', lat: '40.33994110168122'}, {lon: '-95.6267215268495', lat: '40.351693508537885'}, {lon: '-95.64107234767768', lat: '40.36472480851546'}, {lon: '-95.64289779713275', lat: '40.3873690615628'}, {lon: '-95.65028572095567', lat: '40.3982910074959'}, {lon: '-95.66098515096841', lat: '40.41654667075803'}, {lon: '-95.65601743458993', lat: '40.428481952602745'}, {lon: '-95.65888990840811', lat: '40.44462761254094'}, {lon: '-95.67516006986217', lat: '40.45862926381457'}, {lon: '-95.67684164534366', lat: '40.45990394699792'}, {lon: '-95.69254067062874', lat: '40.47005294723773'}, {lon: '-95.69430208186108', lat: '40.48491897964953'}, {lon: '-95.69319551661447', lat: '40.48704853439108'}, {lon: '-95.7000058885554', lat: '40.505732458594146'}, {lon: '-95.67320449592117', lat: '40.51261825280651'}, {lon: '-95.65814616307885', lat: '40.52031448807352'}, {lon: '-95.65208839634491', lat: '40.5394598081893'}, {lon: '-95.65885048553484', lat: '40.54964200864801'}, {lon: '-95.67177575421991', lat: '40.56108119748799'}, {lon: '-95.69078334271929', lat: '40.558048117007'}, {lon: '-95.6957646443911', lat: '40.54825559889045'}, {lon: '-95.69622260691713', lat: '40.52955041944473'}, {lon: '-95.71016753150808', lat: '40.52312896187335'}, {lon: '-95.7219346561643', lat: '40.527340699534136'}, {lon: '-95.74708868097085', lat: '40.52470100694377'}, {lon: '-95.74876962348526', lat: '40.5251198824788'}, {lon: '-95.76499106033417', lat: '40.52803754073068'}, {lon: '-95.7673092214297', lat: '40.54120501828596'}, {lon: '-95.76403532274179', lat: '40.55269368939684'}, {lon: '-95.77136042031312', lat: '40.564137442516696'}, {lon: '-95.77317036223388', lat: '40.57901485146109'}, {lon: '-95.7637051821155', lat: '40.58500623747094'}, {lon: '-94.9156599166971', lat: '40.57533134241496'}, {lon: '-94.91285783350123', lat: '40.727323056737696'}, {lon: '-94.92913748309756', lat: '40.72741261531543'}, {lon: '-94.92730513301295', lat: '41.15789831045167'}, {lon: '-94.70061249115292', lat: '41.15852383114234'}, {lon: '-94.70104133666946', lat: '41.602121431276444'}, {lon: '-94.74378504317774', lat: '41.60236932443911'}, {lon: '-94.74563776607025', lat: '41.86224059149811'}, {lon: '-96.13339438003248', lat: '41.864792822193166'}, {lon: '-96.12326664871688', lat: '41.8580734262198'}
      ],
    }
  ];

  groupsData.forEach((groupData) => {
    addRaidPolygon(mapLayer, groupData);
  });

  W.map.addLayer(mapLayer);
  mapLayer.setVisibility(localStorage[`MapRaid${abbreviation}Visible`] === 'true');

  createLayerToggler(
    document.getElementById('layer-switcher-group_display').parentNode.parentNode,
    localStorage[`MapRaid${abbreviation}Visible`] === 'true',
    localStorage[`MapRaid${abbreviation}Fill`] === 'true',
    mapRaidName,
    (checked) => {
      localStorage[`MapRaid${abbreviation}Visible`] = checked;
      let fillCheckBox                              = document.getElementById(`layer-switcher-group_${
        mapRaidName
          .toLowerCase()
          .replace(/\\s/g, '')
      }_fill`);
      if (fillCheckBox) fillCheckBox.disabled = !checked;
      let areaJumper              = document.getElementById(`${mapraidId}Dropdown`);
      areaJumper.style.width      = (checked ? '80%' : 0);
      areaJumper.style.visibility = (checked ? '' : 'hidden');
      if (areaJumper.parentNode) {
        areaJumper.parentNode.style.flexGrow = (checked ? '1' : '');
      }
      displayCurrentRaidLocation();
    },
    (checked) => {
      localStorage[`MapRaid${abbreviation}Fill`] = checked;
      const newFeatures                          = mapLayer.features.map((feature) => {
        let newFeature               = feature.clone();
        newFeature.style.fillOpacity = (checked ? overlayColorFill : 0);
        return newFeature;
      });
      mapLayer.destroyFeatures();
      mapLayer.addFeatures(newFeatures);
      displayCurrentRaidLocation();
    });

  let areaJumper = document.getElementById(`${mapraidId}Dropdown`);
  if (!areaJumper) {
    areaJumper                  = document.createElement('select');
    areaJumper.id               = `${mapraidId}Dropdown`;
    areaJumper.style.marginTop  = '4px';
    areaJumper.style.display    = 'block';
    let areaPlaceholder         = document.createElement('option');
    areaPlaceholder.textContent = 'Jump to..';
    areaJumper.appendChild(areaPlaceholder);
    areaJumper.addEventListener('change', () => {
      W.map.setCenter(areaJumper.selectedOptions[0].centroid);
      if (areaJumper.selectedOptions[0].zoom !== -1) W.map.zoomTo(areaJumper.selectedOptions[0].zoom);
      areaJumper.selectedIndex = 0;
      areaJumper.blur();
    });
  }
  let areaJumperRegion   = document.createElement('optgroup');
  areaJumperRegion.label = `${mapRaidName} Regions:`;
  mapLayer.features.forEach((feature) => {
    let area         = document.createElement('option');
    area.textContent = feature.attributes.name;
    area.centroid    = [feature.attributes.centerPoint.x, feature.attributes.centerPoint.y];
    area.zoom        = feature.attributes.zoom;
    areaJumperRegion.appendChild(area);
  });
  areaJumper.appendChild(areaJumperRegion);

  if (!document.getElementById(`${mapraidId}Dropdown`)) {
    if (window.getComputedStyle(document.getElementById('edit-buttons').parentNode).display === 'flex') {
      let areaJumperContainer              = document.createElement('div');
      areaJumperContainer.style.flexGrow   = (localStorage[`MapRaid${abbreviation}Visible`] === 'true' ? '1' : '');
      areaJumperContainer.style.paddingTop = '6px';
      areaJumperContainer.style.display    = 'flex';
      areaJumperContainer.style.alignItems = 'center';
      areaJumper.style.width               = (localStorage[`MapRaid${abbreviation}Visible`] === 'true' ? '80%' : 0);
      areaJumper.style.visibility          = (localStorage[`MapRaid${abbreviation}Visible`] === 'true' ? '' : 'hidden');
      areaJumper.style.margin              = '0 auto';
      areaJumperContainer.appendChild(areaJumper);
      document.getElementById('edit-buttons')
        .parentNode
        .insertBefore(areaJumperContainer, document.getElementById('edit-buttons'));
    } else {
      document.getElementById('edit-buttons')
        .parentNode
        .insertBefore(areaJumper, document.getElementById('edit-buttons'));
    }
  }

  displayCurrentRaidLocation();
  W.map.events.register('moveend', null, displayCurrentRaidLocation);
};

setTimeout(initMapRaidOverlay, 1000);