Esempio n. 1
0
        private void AddPOIToMap(MapPoint mp)
        {
            var newPic = new PictureBox();
            newPic.SizeMode = PictureBoxSizeMode.AutoSize;
            newPic.Parent = pictureBox1;
            newPic.BackColor = Color.Transparent;

            //calc the upper left corner of the map square
            int picX = 0;
            int picY = 0;

            if (!mp.IsX_East)
            {
                picX = 2066 - 20 - (40 * mp.X);
            }
            else
            {
                picX = 2066 - 20 + (40 * mp.X);
            }

            if (!mp.IsY_South)
            {
                picY = 2066 - 20 - (40 * mp.Y);
            }
            else
            {
                picY = 2066 - 20 + (40 * mp.Y);
            }

            newPic.Location = new Point(picX, picY + 3);
            newPic.Image = imgListPOI.Images[(int)mp.PoiType];
            newPic.BringToFront();
            newPic.Tag = mp;
            newPic.ContextMenuStrip = mnuWaypointRightClick;
            newPic.Click += newPic_Click;
            newPic.MouseDown += newPic_MouseDown;
            if (pictureBoxes == null)
                pictureBoxes = new List<PictureBox>();

            pictureBoxes.Add(newPic);
        }
Esempio n. 2
0
        private MapPoint CalulateMapPosition(int x, int y)
        {
            var mp = new MapPoint();

            //calc east/west
            int xVal = 0;
            if (x < 2066)
            {
                mp.IsX_East = false;
                int val1 = 2066 - x - 20;
                if (val1 < 0)
                    val1 = 0;
                else
                    xVal = val1 / 40 + 1;
            }
            else
            {
                int val1 = x - 2066 - 20;
                if (val1 < 0)
                    val1 = 0;
                else
                    xVal = val1 / 40 + 1;
            }

            //calc north south
            int yVal = 0;
            if (y < 2066)
            {
                mp.IsY_South = false;
                int val1 = 2066 - y - 20;
                if (val1 < 0)
                    val1 = 0;
                else
                    yVal = val1 / 40 + 1;
            }
            else
            {
                int val1 = y - 2066 - 20;
                if (val1 < 0)
                    val1 = 0;
                else
                    yVal = val1 / 40 + 1;
            }
            mp.X = xVal;
            mp.Y = yVal;
            return mp;
        }