public void loadMapData(List<string> p, DataAccessLayer d)
        {
            TtUtils.ShowWaitCursor();

            m_DelegateGotBurst = new DelegateGotBurst(getLoc);

            polyCNs = p;
            DAL = d;

            font = new Font(FontFamily.GenericSansSerif, 8, FontStyle.Regular);
            brushLabel = new SolidBrush(Color.Black);
            brushAdjPoint = new SolidBrush(Color.Black);
            brushUnAdjPoint = new SolidBrush(Color.Gray);
            brushWayPoint = new SolidBrush(Color.Blue);

            penPoints = new Pen(Color.Black, 3);

            penAdjNav = new Pen(Color.Teal, 4);
            penAdjBound = new Pen(Color.Red, 2);

            penUnAdjNav = new Pen(Color.Lime, 4);
            penUnAdjBound = new Pen(Color.DarkGreen, 2);

            penGrid = new Pen(Color.LightGray);
            penMyPos = new Pen(Color.Red, 5);

            brushAdjMiscPoint = new SolidBrush(Color.Green);
            brushUnadjMiscPoint = new SolidBrush(Color.LightGreen);

            polys = new List<PolyWPoints>();
            foreach (string pCN in polyCNs)
            {
                polys.Add(new PolyWPoints(DAL.GetPolygonByCn(pCN), DAL));
            }

            allPolyPoints = DAL.getPointsByCNs(polyCNs);

            for (int i = 0; i < allPolyPoints.Count; i++)
            {
                allPolyPoints[i] = InvertPoint(allPolyPoints[i]);
            }

            if (MapValues.mapHasBackground)
            {
                if (System.IO.File.Exists(MapValues.mapBackgroundCoordsFile))
                {
                    try
                    {
                        using (System.IO.StreamReader sr = new System.IO.StreamReader(MapValues.mapBackgroundCoordsFile))
                        {
                            string pos = string.Empty;
                            for (int i = 0; i < 5; i++)
                            {
                                pos = sr.ReadLine();
                            }

                            if (pos.IsDouble())
                            {
                                double x = pos.ToDouble();
                                pos = sr.ReadLine();
                                double y = pos.ToDouble();

                                MapValues.mapBackgroundCoords = new Point((int)x, (int)y);

                            #if (PocketPC || WindowsCE || Mobile)
                                Bitmap bmp = new Bitmap(MapValues.mapBackground);
                                _MapBackgroud = Image.FromHbitmap(bmp.GetHbitmap());
                            #else
                                _MapBackgroud = Image.FromFile(MapValues.mapBackground);
                            #endif
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        MapValues.mapHasBackground = false;
                        TtUtils.WriteError(ex.Message, "MapForm:InitValues:MapBackground", ex.StackTrace);
                        MessageBox.Show("Map Background Error, see log for details.");
                    }
                }
                else
                    MapValues.mapHasBackground = false;
            }

            loaded = true;

            TtUtils.HideWaitCursor();
        }