Example #1
0
        private static IPen SetPenForGameTile(StylePaint tpe)
        {
            //These pens are saved with a fixed drawing width to match game tiles.
            int imgX = 0, imgY = 0;

            MapTileSupport.GetPlusCodeImagePixelSize("22334455", out imgX, out imgY);
            var info = new ImageStats(OpenLocationCode.DecodeValid("22334455"), imgX, imgY);

            var widthMod = resolutionCell11Lon * IMapTiles.GameTileScale;

            string htmlColor = tpe.HtmlColorCode;

            if (htmlColor.Length == 8)
            {
                htmlColor = htmlColor.Substring(2, 6) + htmlColor.Substring(0, 2);
            }

            Pen p;

            if (String.IsNullOrWhiteSpace(tpe.LinePattern) || tpe.LinePattern == "solid")
            {
                p = new Pen(Rgba32.ParseHex(htmlColor), tpe.LineWidthDegrees * (float)info.pixelsPerDegreeX);
            }
            else
            {
                float[] linesAndGaps = tpe.LinePattern.Split('|').Select(t => float.Parse(t)).ToArray();
                p = new Pen(Rgba32.ParseHex(htmlColor), tpe.LineWidthDegrees * (float)info.pixelsPerDegreeX, linesAndGaps);
            }

            return(p);
        }