FIG web arcgis engine known number acquisition dimensions

We have no such demand, a known sub-image map sheet number is XXXXXXX, provided that this number must map sheet framing is set in accordance with national standards. According to this Mapsheet number required to return scale. How the code to achieve it?

/// <summary>
        /// 通过图幅号获取比例尺字母
        /// </summary>
        /// <param name="newMapnumber"></param>
        /// <returns></returns>
        public int getScaleDenominatorNumberByMapNumber(string newMapnumber)
        {
            string[] newMapnumberInfo = GetInfoFromNewMapnumber(newMapnumber);
            if (newMapnumberInfo == null)
            {
                return -1;
            }
            string nScaleStr = newMapnumberInfo[2];
            int scaleNumber = NewMapnumber_GetScaleDenominatorNumberByScaleStr(nScaleStr);
            if (scaleNumber == -1)
            {
                return -1;
            }
            return scaleNumber;
        }
/// <summary>
        /// Get 100W Row/100W Column/ScaleStr/Rownum/Columnnum from new  mapnumber
        /// 从新图号获得比例尺、行列号信息([0]:百万行;[1]:百万咧;[2]:比例尺代码;[3]:行号;[4]:列号)
        /// </summary>
        /// <param name="newMapnumber"></param>
        /// <returns></returns>
        public string[] GetInfoFromNewMapnumber(string newMapnumber)
        {
            try
            {
                string[] strs = new string[5];
                if (!NewMapnumber_Check(newMapnumber))
                {
                    return null;
                }
                int length = newMapnumber.Length;
                string n100WR = "";
                string n100WC = "";
                string nScaleStr = "";
                string nR = "";
                string nC = "";
                if (length == 3)
                {
                    n100WR = newMapnumber.Substring(0, 1);
                    n100WC = newMapnumber.Substring(1, 2);
                }
                else
                {
                    n100WR = newMapnumber.Substring(0, 1);
                    n100WC = newMapnumber.Substring(1, 2);
                    nScaleStr = newMapnumber.Substring(3, 1);
                    if (length == 10)
                    {
                        nR = newMapnumber.Substring(4, 3);
                        nC = newMapnumber.Substring(7, 3);
                    }
                    else
                    {
                        nR = newMapnumber.Substring(4, 4);
                        nC = newMapnumber.Substring(8, 4);
                    }
                }
                if (!string.IsNullOrEmpty(n100WR) && !string.IsNullOrEmpty(n100WC))
                {
                    strs[0] = n100WR;
                    strs[1] = n100WC;
                    strs[2] = nScaleStr;
                    strs[3] = nR;
                    strs[4] = nC;
                    return strs;
                }
                return null;
            }
            catch
            {
                throw;
            }
        }



 /// <summary>
        /// Newmapnumber get scale denominator number by scale string
        /// 通过比例尺字符串获取新图幅号的比例分母数
        /// </summary>
        /// <param name="scaleStr"></param>
        /// <returns></returns>
        private int NewMapnumber_GetScaleDenominatorNumberByScaleStr(string scaleStr)
        {
            switch (scaleStr)
            {
                case "":
                    return 1000000;
                case null:
                    return 1000000;
                case "B":
                    return 500000;
                case "C":
                    return 250000;
                case "D":
                    return 100000;
                case "E":
                    return 50000;
                case "F":
                    return 25000;
                case "G":
                    return 10000;
                case "H":
                    return 5000;
                case "I":
                    return 2000;
                case "J":
                    return 1000;
                case "K":
                    return 500;
                default:
                    return -1;
            }
        }
Published 14 original articles · won praise 15 · views 335

Guess you like

Origin blog.csdn.net/weixin_42970847/article/details/102992611