1. 程式人生 > >百度地圖、Google地圖的縮放比例

百度地圖、Google地圖的縮放比例


1、百度


        /// <summary> 通過縮放級別獲取百度地圖的縮放比例。
        /// </summary>
        public static double GetScale(int zoom)
        {
            switch (zoom)
            {
                case 1: return 131072;
                case 2: return 65536;
                case 3: return 32768;
                case 4: return 16384;
                case 5: return 8192;
                case 6: return 4096;
                case 7: return 2048;
                case 8: return 1024;
                case 9: return 512;
                case 10: return 256;
                case 11: return 128;
                case 12: return 64;
                case 13: return 32;
                case 14: return 16;
                case 15: return 8;
                case 16: return 4;
                case 17: return 2;
                case 18: return 1;
            }
            return 1;
        }


2、谷歌

        /// <summary> 通過縮放級別獲取Google地圖的縮放比例。
        /// </summary>
        public static double GetScale(int zoom)
        {
            #region Google map (in meters/pixel) 的比例值。scale =π R / (256 * 2^(z-1)),π = 3.1415926536, R = 6378137(地球半徑)。

            switch (zoom)
            {
                case 0: return 156543.03392;
                case 1: return 78271.51696;
                case 2: return 39135.75848;
                case 3: return 19567.87924;
                case 4: return 9783.93962;
                case 5: return 4891.96981;
                case 6: return 2445.98490;
                case 7: return 1222.99245;
                case 8: return 611.49622;
                case 9: return 305.74811;
                case 10: return 152.87405;
                case 11: return 76.43702;
                case 12: return 38.21851;
                case 13: return 19.10925;
                case 14: return 9.55462;
                case 15: return 4.77731;
                case 16: return 2.38865;
                case 17: return 1.19432;
                case 18: return 0.59716;
                case 19: return 0.29858;
                default: return 19.10925;//預設的話按13算
            }

            #endregion       
        }