|
1 | 1 | /* |
2 | | - * Copyright (C) 2014 Stichting Mapcode Foundation (http://www.mapcode.com) |
| 2 | + * Copyright (C) 2014-2015 Stichting Mapcode Foundation (http://www.mapcode.com) |
3 | 3 | * |
4 | 4 | * Licensed under the Apache License, Version 2.0 (the "License"); |
5 | 5 | * you may not use this file except in compliance with the License. |
@@ -92,39 +92,62 @@ static int smartDiv(final int i) { |
92 | 92 | return asUnsignedByte((i * 20) + 18) + (asUnsignedByte((i * 20) + 19) * 256); |
93 | 93 | } |
94 | 94 |
|
95 | | - private static final int[] DATA_START = { |
96 | | - 0, 3, 6, 9, 13, 16, 18, 19, 30, 31, 33, 35, 37, 42, 44, 47, 51, 54, 56, 58, 60, 62, 64, 68, 71, 79, 81, 116, |
97 | | - 121, 131, 133, 135, 138, 143, 155, 159, 165, 167, 169, 173, 176, 183, 185, 187, 189, 193, 195, 202, 208, 212, |
98 | | - 216, 219, 221, 223, 250, 252, 259, 261, 266, 284, 288, 292, 296, 298, 303, 311, 315, 325, 327, 332, 336, |
99 | | - 342, 356, 360, 365, 369, 385, 391, 396, 404, 412, 428, 432, 436, 443, 454, 491, 495, 521, 527, 545, 557, |
100 | | - 593, 659, 694, 733, 745, 754, 782, 798, 832, 848, 882, 918, 932, 956, 967, 1022, 1080, 1094, 1155, 1179, |
101 | | - 1208, 1276, 1353, 1405, 1484, 1569, 1621, 1696, 1772, 1833, 1875, 1900, 1948, 1991, 2036, 2097, 2183, 2270, |
102 | | - 2319, 2382, 2467, 2558, 2643, 2702, 2815, 2912, 3004, 3088, 3186, 3248, 3350, 3416, 3511, 3602, 3688, 3776, |
103 | | - 3866, 3973, 4119, 4221, 4325, 4356, 4393, 4468, 4504, 4538, 4574, 4626, 4690, 4741, 4756, 4791, 4931, 5017, |
104 | | - 5067, 5143, 5168, 5236, 5293, 5328, 5408, 5459, 5530, 5623, 5658, 5736, 5795, 5861, 5918, 5971, 6028, 6065, |
105 | | - 6156, 6285, 6335, 6365, 6417, 6513, 6546, 6627, 6675, 6755, 6798, 6892, 6926, 6971, 7078, 7083, 7155, 7199, |
106 | | - 7283, 7323, 7347, 7404, 7490, 7564, 7603, 7690, 7766, 7874, 7952, 8026, 8096, 8153, 8235, 8317, 8376, 8403, |
107 | | - 8441, 8495, 8571, 8681, 8761, 8825, 8882, 8936, 9014, 9085, 9171, 9221, 9282, 9426, 9430, 9435, 9440, 9445, |
108 | | - 9451, 9456, 9464, 9472, 9483, 9491, 9506, 9515, 9526, 9559, 9568, 9576, 9591, 9601, 9611, 9619, 9627, 9643, |
109 | | - 9651, 9661, 9672, 9682, 9692, 9701, 9710, 9721, 9762, 9803, 9821, 9918, 10069, 10160, 10242, 10437, 10440, |
110 | | - 10443, 10446, 10456, 10461, 10464, 10476, 10489, 10500, 10516, 10525, 10531, 10565, 10593, 10612, 10680, |
111 | | - 10772, 10787, 10791, 10827, 10914, 10925, 10943, 10960, 11024, 11056, 11097, 11117, 11222, 11302, 11366, |
112 | | - 11425, 11481, 11541, 11547, 11589, 11593, 11596, 11606, 11621, 11632, 11670, 11733, 11779, 11784, 11791, |
113 | | - 11796, 11815, 11825, 11832, 11840, 11854, 11870, 11877, 11885, 11893, 11941, 11950, 11961, 12011, 12022, |
114 | | - 12032, 12051, 12067, 12080, 12092, 12111, 12145, 12154, 12166, 12178, 12182, 12188, 12194, 12206, 12217, |
115 | | - 12226, 12232, 12246, 12264, 12275, 12317, 12368, 12418, 12474, 12487, 12500, 12563, 12623, 12684, 12749, |
116 | | - 12820, 12885, 12954, 13029, 13096, 13175, 13249, 13263, 13278, 13323, 13336, 13364, 13378, 13391, 13407, |
117 | | - 13423, 13435, 13477, 13489, 13500, 13535, 13550, 13562, 13579, 13587, 13625, 13638, 13653, 13773, 13819, |
118 | | - 13863, 13903, 13927, 13968, 14007, 14027, 14043, 14061, 14073, 14087, 14095, 14106, 14123, 14136, 14191, |
119 | | - 14192, 14193, 14194, 14233, 14239, 14244, 14249, 14254, 14260, 14267, 14273, 14282, 14288, 14296, 14302, |
120 | | - 14309, 14318, 14326, 14335, 14347, 14356, 14364, 14375, 14386, 14395, 14405, 14412, 14462, 14496, 14505, |
121 | | - 14517, 14528, 14567, 14578, 14592, 14609, 14621, 14634, 14648, 14663, 14676, 14697, 14705, 14724, 14733, |
122 | | - 14745, 14756, 14770, 14785, 14798, 14812, 14825, 14839, 14854, 14872, 14892, 14904, 14924, 14937, 14952, |
123 | | - 14966, 14984, 15000, 15014, 15027, 15044, 15064, 15081, 15099, 15114, 15128, 15144, 15155, 15171, 15184, |
124 | | - 15199, 15214, 15260, 15274, 15283, 15293, 15306, 15320, 15331, 15344, 15360, 15375, 15376, 15403, 15409, |
125 | | - 15417, 15423, 15439, 15476, 15493, 15517, 15540, 15557, 15577, 15603, 15629, 15648, 15665, 15718, 15759, |
126 | | - 15781, 15808, 15828, 15849, 15867, 15897, 15923, 15943, 15964, 15982, 16000, 16019, 16035, 16051, 16079, |
127 | | - 16105, 16112, 16114, 16115, 16117, 16118, 16120, 16122, 16124, 16126, 16128, 16129, 16130, 16162}; |
| 95 | + private final static int[] DATA_START = { |
| 96 | + 0, 3, 6, 9, 13, 16, 18, 19, 30, 31, |
| 97 | + 33, 35, 37, 42, 44, 47, 51, 54, 56, 58, |
| 98 | + 60, 62, 64, 68, 71, 79, 81, 116, 121, 131, |
| 99 | + 133, 135, 138, 143, 155, 159, 165, 167, 169, 173, |
| 100 | + 176, 183, 185, 187, 189, 193, 195, 202, 208, 212, |
| 101 | + 216, 219, 221, 223, 250, 252, 259, 261, 266, 284, |
| 102 | + 288, 292, 296, 298, 303, 311, 315, 325, 327, 332, |
| 103 | + 336, 342, 356, 360, 365, 369, 385, 391, 396, 404, |
| 104 | + 412, 428, 432, 436, 443, 454, 491, 495, 521, 527, |
| 105 | + 545, 557, 593, 659, 694, 733, 745, 754, 782, 798, |
| 106 | + 832, 848, 882, 918, 932, 956, 967, 1022, 1080, 1094, |
| 107 | + 1155, 1179, 1208, 1276, 1353, 1405, 1484, 1569, 1621, 1696, |
| 108 | + 1772, 1833, 1875, 1900, 1948, 1991, 2036, 2097, 2183, 2270, |
| 109 | + 2319, 2382, 2467, 2558, 2643, 2702, 2815, 2912, 3004, 3088, |
| 110 | + 3186, 3248, 3350, 3416, 3511, 3602, 3688, 3776, 3866, 3973, |
| 111 | + 4119, 4221, 4325, 4356, 4393, 4468, 4504, 4538, 4574, 4626, |
| 112 | + 4690, 4741, 4756, 4791, 4931, 5017, 5067, 5143, 5168, 5236, |
| 113 | + 5293, 5328, 5408, 5459, 5530, 5623, 5658, 5736, 5795, 5861, |
| 114 | + 5918, 5971, 6028, 6065, 6156, 6285, 6335, 6365, 6417, 6513, |
| 115 | + 6546, 6627, 6675, 6755, 6798, 6892, 6926, 6971, 7078, 7083, |
| 116 | + 7155, 7199, 7283, 7323, 7347, 7404, 7490, 7564, 7603, 7690, |
| 117 | + 7766, 7874, 7952, 8026, 8096, 8153, 8235, 8317, 8376, 8403, |
| 118 | + 8441, 8495, 8571, 8681, 8761, 8825, 8882, 8936, 9014, 9085, |
| 119 | + 9171, 9221, 9282, 9426, 9430, 9435, 9440, 9445, 9451, 9456, |
| 120 | + 9464, 9472, 9483, 9491, 9506, 9515, 9526, 9559, 9568, 9576, |
| 121 | + 9591, 9601, 9611, 9619, 9627, 9643, 9651, 9661, 9672, 9682, |
| 122 | + 9692, 9701, 9710, 9721, 9762, 9803, 9821, 9918, 10069, 10160, |
| 123 | + 10242, 10437, 10440, 10443, 10446, 10456, 10461, 10464, 10476, 10489, |
| 124 | + 10500, 10516, 10525, 10531, 10565, 10593, 10612, 10680, 10772, 10787, |
| 125 | + 10791, 10827, 10914, 10925, 10943, 10960, 11024, 11056, 11097, 11117, |
| 126 | + 11222, 11302, 11366, 11420, 11479, 11535, 11595, 11601, 11643, 11647, |
| 127 | + 11650, 11660, 11675, 11686, 11724, 11787, 11833, 11838, 11845, 11850, |
| 128 | + 11869, 11879, 11886, 11894, 11908, 11924, 11931, 11939, 11947, 11995, |
| 129 | + 12004, 12015, 12065, 12076, 12086, 12105, 12121, 12134, 12146, 12165, |
| 130 | + 12199, 12208, 12220, 12232, 12236, 12242, 12248, 12260, 12271, 12280, |
| 131 | + 12286, 12300, 12318, 12329, 12371, 12422, 12472, 12528, 12541, 12554, |
| 132 | + 12617, 12677, 12738, 12803, 12874, 12939, 13008, 13083, 13150, 13229, |
| 133 | + 13303, 13317, 13332, 13377, 13390, 13418, 13432, 13445, 13461, 13477, |
| 134 | + 13489, 13531, 13543, 13554, 13589, 13604, 13616, 13633, 13641, 13679, |
| 135 | + 13692, 13707, 13827, 13873, 13917, 13957, 13981, 14022, 14061, 14081, |
| 136 | + 14097, 14115, 14127, 14141, 14149, 14160, 14177, 14190, 14245, 14246, |
| 137 | + 14247, 14248, 14287, 14293, 14298, 14303, 14308, 14314, 14321, 14327, |
| 138 | + 14336, 14342, 14350, 14356, 14363, 14372, 14380, 14389, 14401, 14410, |
| 139 | + 14418, 14429, 14440, 14449, 14459, 14466, 14516, 14550, 14559, 14571, |
| 140 | + 14582, 14621, 14632, 14646, 14663, 14675, 14688, 14702, 14717, 14730, |
| 141 | + 14751, 14759, 14778, 14787, 14799, 14810, 14824, 14839, 14852, 14866, |
| 142 | + 14879, 14893, 14908, 14926, 14946, 14958, 14978, 14991, 15006, 15020, |
| 143 | + 15038, 15054, 15068, 15081, 15098, 15118, 15135, 15153, 15168, 15182, |
| 144 | + 15198, 15209, 15225, 15238, 15253, 15268, 15314, 15328, 15337, 15347, |
| 145 | + 15360, 15374, 15385, 15398, 15414, 15429, 15430, 15457, 15463, 15471, |
| 146 | + 15477, 15493, 15530, 15547, 15571, 15594, 15611, 15631, 15657, 15683, |
| 147 | + 15702, 15719, 15772, 15813, 15835, 15862, 15882, 15903, 15921, 15951, |
| 148 | + 15977, 15997, 16018, 16036, 16054, 16073, 16089, 16105, 16133, 16159, |
| 149 | + 16166, 16168, 16169, 16171, 16172, 16174, 16176, 16178, 16180, 16182, |
| 150 | + 16183, 16184, 16216}; |
128 | 151 |
|
129 | 152 | // / low-level routines for data access |
130 | 153 | static int dataFirstRecord(final int ccode) { |
|
0 commit comments