Changeset 36433 in osm for applications/viewer/jmapviewer/src
- Timestamp:
- 2025-04-25T18:34:30+02:00 (7 months ago)
- Location:
- applications/viewer/jmapviewer
- Files:
-
- 2 edited
-
. (modified) (1 prop)
-
src/org/openstreetmap/gui/jmapviewer/tilesources/TemplatedTMSTileSource.java (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
applications/viewer/jmapviewer
-
Property ReleaseVersion
changed from
2.24to2.25
-
Property ReleaseVersion
changed from
-
applications/viewer/jmapviewer/src/org/openstreetmap/gui/jmapviewer/tilesources/TemplatedTMSTileSource.java
r36223 r36433 30 30 * <li>{!y} - substituted with Yahoo Y tile number</li> 31 31 * <li>{-y} - substituted with reversed Y tile number</li> 32 * <li>{quad} - Microsoft style quadkey</li> 32 33 * <li>{apikey} - substituted with API key retrieved for the imagery id</li> 33 34 * <li>{switch:VAL_A,VAL_B,VAL_C,...} - substituted with one of VAL_A, VAL_B, VAL_C. Usually … … 45 46 private static final Pattern PATTERN_Y_YAHOO = Pattern.compile("\\{!y}"); 46 47 private static final Pattern PATTERN_NEG_Y = Pattern.compile("\\{-y}"); 48 private static final Pattern PATTERN_QUAD = Pattern.compile("\\{quad}"); 47 49 private static final Pattern PATTERN_SWITCH = Pattern.compile("\\{switch:([^}]+)}"); 48 50 private static final Pattern PATTERN_HEADER = Pattern.compile("\\{header\\(([^,]+),([^}]+)\\)}"); 49 51 private static final Pattern PATTERN_API_KEY = Pattern.compile("\\{apikey}"); 50 private static final Pattern PATTERN_PARAM = Pattern.compile("\\{((?:\\d+-)?z(?:oom)?(:?[+-]\\d+)?|x|y|!y|-y|switch:([^}]+))}"); 52 private static final Pattern PATTERN_PARAM = Pattern.compile("\\{((?:\\d+-)?z(?:oom)?(:?[+-]\\d+)?|x|y|!y|-y|quad|switch:([^}]+))}"); 51 53 52 54 // CHECKSTYLE.ON: SingleSpaceSeparator 53 55 54 56 private static final Pattern[] ALL_PATTERNS = { 55 PATTERN_HEADER, PATTERN_ZOOM, PATTERN_X, PATTERN_Y, PATTERN_Y_YAHOO, PATTERN_NEG_Y, PATTERN_SWITCH, PATTERN_API_KEY 57 PATTERN_HEADER, PATTERN_ZOOM, PATTERN_X, PATTERN_Y, PATTERN_Y_YAHOO, PATTERN_NEG_Y, PATTERN_SWITCH, PATTERN_API_KEY, 58 PATTERN_QUAD 56 59 }; 57 60 … … 156 159 replacement = getRandomPart(randomParts); 157 160 break; 161 case "quad": // PATTERN_QUAD 162 replacement = xyzToQuadKey(tilex, tiley, zoom); 163 break; 158 164 default: 159 165 // handle switch/zoom here, as group will contain parameters and switch will not work … … 170 176 matcher.appendTail(url); 171 177 return url.toString().replace(" ", "%20"); 178 } 179 180 /** 181 * Convert an x y z coordinate to a quadkey 182 * @param x The x coordinate 183 * @param y The y coordinate 184 * @param z The z coordinate 185 * @return The quadkey 186 */ 187 private static String xyzToQuadKey(int x, int y, int z) { 188 final char[] string = new char[z]; 189 for (int i = z; i > 0; i--) { 190 char digit = '0'; 191 final int mask = 1 << (i - 1); 192 if ((x & mask) != 0) { 193 digit++; 194 } 195 if ((y & mask) != 0) { 196 digit += 2; 197 } 198 string[z - i] = digit; 199 } 200 return String.valueOf(string); 172 201 } 173 202
Note:
See TracChangeset
for help on using the changeset viewer.
