public void CreateArcs(SeriesLocData[] allSeries)
    {
        SeriesLocData  seriesData = allSeries[0];
        ArcDrawer      Drawer     = GetComponent <ArcDrawer>();
        List <ArcData> arcData    = new List <ArcData>();

        //Debug.Log(seriesData.Data.Length / 3500);
        for (int j = 0; (j < seriesData.Data.Length) & (j < 7 * ArcLimit); j += 7)
        {
            string OSLIC    = seriesData.Data[j];
            float  latstart = float.Parse(seriesData.Data[j + 1]);
            float  lngstart = float.Parse(seriesData.Data[j + 2]);
            string DSLIC    = seriesData.Data[j + 3].ToString();
            float  latend   = float.Parse(seriesData.Data[j + 4]);
            float  lngend   = float.Parse(seriesData.Data[j + 5]);
            float  volume   = float.Parse(seriesData.Data[j + 6]);
            //Debug.Log(OSLIC);
            //Debug.Log(latstart + "," + lngstart + "," + latend + "," + lngend + "," + volume);
            //Debug.Log(OSLIC);
            Vector3 startpos = LatLongToVector3(latstart, lngstart);
            Vector3 endpos = LatLongToVector3(latend, lngend);
            string  ostate = " WA", dstate = " WA";
            //Debug.LogFormat("OSLIC:{0},DSLIC:{1},OSTATE:{2}", OSLIC, DSLIC, states[OSLIC]);
            if (states.ContainsKey(OSLIC))
            {
                ostate = states[OSLIC];
            }
            if (states.ContainsKey(DSLIC))
            {
                dstate = states[DSLIC];
            }
            arcData.Add(new ArcData(startpos, endpos, volume, ostate, dstate, OSLIC, DSLIC));
        }
        Drawer.CreateArcs(arcData);
    }
    public void InitialiseStates(SeriesLocData[] allSeries)
    {
        SeriesLocData seriesData = allSeries[0];

        for (int i = 0; i < seriesData.Data.Length; i += 2)
        {
            string state = seriesData.Data[i + 1];
            if (state == " DC")
            {
                state = " VA";
            }
            states[seriesData.Data[i]] = state;
        }
    }
    public void CreateCoordinates(SeriesLocData[] allSeries)
    {
        SeriesLocData seriesData = allSeries[0];

        for (int j = 0; j < seriesData.Data.Length; j += 3)
        {
            string  OSLIC     = seriesData.Data[j];
            float   latitude  = float.Parse(seriesData.Data[j + 1]);
            float   longitude = float.Parse(seriesData.Data[j + 2]);
            Vector3 pos       = LatLongToVector3(latitude, longitude);
            //Debug.Log(fac.SLIC);
            coordinates[OSLIC] = pos;
            if (buildings.ContainsKey(pos))
            {
                //Debug.Log(OSLIC + " == " + buildings[pos]);
                samebuilding[OSLIC] = buildings[pos];
            }
        }
    }
    public void CreateFacilities(SeriesLocData[] allSeries)
    {
        Facility.PointMaterial = PointMaterial;
        SeriesLocData seriesData = allSeries[0];
        Transform     folder     = new GameObject("Facilities").transform;

        folder.SetParent(transform, false);
        //Debug.Log(seriesData.Data.Length);
        for (int j = 0; j < seriesData.Data.Length; j += 9)
        {
            string SLIC      = seriesData.Data[j].ToString();
            float  latitude  = float.Parse(seriesData.Data[j + 1]);
            float  longitude = float.Parse(seriesData.Data[j + 2]);
            string CC        = seriesData.Data[j + 3].ToString();
            string SORT      = seriesData.Data[j + 4].ToString();
            string CAP       = seriesData.Data[j + 5].ToString();
            string SPAN      = seriesData.Data[j + 6].ToString();
            string STRT      = seriesData.Data[j + 7].ToString();
            string STATE     = seriesData.Data[j + 8].ToString();
            if (STATE == " DC")
            {
                STATE = " WA";
            }
            //if (STATE == " FL")
            //{
            //    Debug.Log("Florida Facility: " + SLIC);
            //}
            FacData fac = GetFacility(SLIC, latitude, longitude, CC, SORT, CAP, SPAN, STRT, STATE);

            if (!locations.ContainsKey(fac.SLIC))
            {
                List <FacData> loc = new List <FacData>();
                loc.Add(fac);
                locations.Add(fac.SLIC, loc);
            }
            else
            {
                locations[fac.SLIC].Add(fac);
            }

            //draw facility only once
            if (!buildings.ContainsKey(fac.pos))
            {
                buildings.Add(fac.pos, fac.SLIC);
                GameObject p = Instantiate(PointPrefab);
                p.transform.SetParent(folder, false);
                p.transform.localScale    = new Vector3(1, 1, 0.001f);
                p.transform.localPosition = fac.pos;
                p.transform.forward       = fac.pos; // make cube point outwards
                p.GetComponent <MeshRenderer>().material = PointMaterial;
                p.AddComponent <BoxCollider>().isTrigger = true;
                p.AddComponent <Facility>().SetFac(fac);
                //p.AddComponent<HelloWorld>();
                p.tag  = "Location";
                p.name = "Facility SLIC: " + fac.SLIC;
                points.Add(p);
            }
            //else
            //{
            //    //Debug.Log("adding facility" + fac.SLIC);
            //    //buildings[fac.pos].Add(fac);
            //}
        }
    }