Skip to content

Instantly share code, notes, and snippets.

@ahmadwaliesipick
Created May 31, 2018 07:30
Show Gist options
  • Save ahmadwaliesipick/fbf84cbc8a39c86d8ab59b63f28ea9c2 to your computer and use it in GitHub Desktop.
Save ahmadwaliesipick/fbf84cbc8a39c86d8ab59b63f28ea9c2 to your computer and use it in GitHub Desktop.
replace urlsterin
function replaceURLString(level, row, column, finalFilterUrl) {
finalFilterUrl = finalFilterUrl.replace("{z}", level).replace("{x}", column).replace("{y}", row);
finalFilterUrl = finalFilterUrl.replace("${level}", level).replace("${col}", column).replace("${row}", row);
finalFilterUrl = finalFilterUrl.replace("{l}", level);
finalFilterUrl = finalFilterUrl.replace("{abc}", "a").replace("{SHASH}", "0").replace("{SHASHPLUSONE}", "1");
if (finalFilterUrl.indexOf("{nzy}") !== -1) {
var filterUrl = finalFilterUrl.replace("{z}", level).replace("{x}", column).replace("{y}", row);
var vData = ((1 << level) - 1 - row);
finalFilterUrl = filterUrl.replace("{nzy}", vData);
}
if (finalFilterUrl.indexOf("{quadtree}") !== -1) {
var quadtree = "";
row = ((1 << level) - 1) - row;
for (var i = level; i >= 1; i--) {
var digit = 0;
var mask = 1 << (i - 1);
if ((column & mask) != 0)
digit += 1;
if ((row & mask) != 0)
digit += 2;
quadtree += digit;
}
finalFilterUrl = finalFilterUrl.replace("{quadtree}", quadtree);
}
if (finalFilterUrl.indexOf("{MBBOX}") !== -1) {
var xMin, xMax, yMin, yMax;
var boundsmercator;
initialResolution = 2 * Math.PI * 6378137 / 256; // == 156543.0339
originShift = 2 * Math.PI * 6378137 / 2.0; // == 20037508.34
res = initialResolution / Math.pow(2, level);
row = ((1 << level) - row - 1); // TMS
xMin = Math.round((column * 256 * res - originShift));
xMax = Math.round(((column + 1) * 256 * res - originShift));
yMin = Math.round((row * 256 * res - originShift));
yMax = Math.round(((row + 1) * 256 * res - originShift));
if (xMin > xMax) {
xMax = Math.round((column * 256 * res - originShift));
xMin = Math.round(((column + 1) * 256 * res - originShift));
}
if (yMin > yMax) {
yMax = Math.round((row * 256 * res - originShift));
yMin = Math.round(((row + 1) * 256 * res - originShift));
}
boundsmercator = xMin + "," + yMin + "," + xMax + "," + yMax;
finalFilterUrl = finalFilterUrl.replace("{MBBOX}", boundsmercator);
}
return finalFilterUrl;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment