// Documentation : http://randochartreuse.free.fr/mobac2.x/documentation/#bsh // Version : 24/04/2024 // Nom de la carte affiché dans MOBAC name = "Slovénie, Carte papier non Géolocalisable !"; // Nom du serveur String MyServer = ".geopedia.si"; // MyUserAgent correspond à celui créé notamment avec la clé IGN // Par défaut, on trouve souvent MyUserAgent = "Mozilla/5.0 Gecko/20100101 Firefox/49.0"; String MyUserAgent = "Mozilla/5.0 Gecko/20100101 Firefox/49.0"; // MyReferer peut être demandé String MyReferer = ""; // MyFolder au format "dossier" ou "dossier1/dossier2/etc" String MyFolder = "v1/AUTH_d7e1266c-6b4e-4629-91e6-17d4b370846d"; // Paramètre spécifique à certains serveurs (Google, 4umaps, etc.). Parfois "jpeg" au lieu de "jpg" String TileExt ="jpg"; tileType = "jpg"; // Type d’image fourni par le serveur tileSize = 256; // Facultatif : Supprimer la ligne dans le doute minZoom = 2; // Facultatif : Zoom minimal souhaité (et/ou fourni par le serveur) maxZoom = 18; // Facultatif : Zoom maximal souhaité (et/ou fourni par le serveur) -> Maximum 22 pour Mobac String getTileUrl(int Zoom, int X, int Y) { if (Zoom < 7) { // gestion Zoom < 7, on prend une carte générique Google pour voir le monde entier return "https://mt0.google.com/vt?lyrs=m&hl=fr&z=" + Zoom + "&x=" + X + "&y=" + Y; }else{ Num_Server = (X % 10); // 0 1 2 .. 9 String MySubFolder = ""; int id_Zoom = Zoom - 7; My_X_Max = 69; int My_X_int = X - My_X_Max * Math.pow(2, id_Zoom); My_X = Integer.toHexString(My_X_int); My_X = My_X.toUpperCase(); My_Y_Max = 45; int My_Y_int = My_Y_Max * Math.pow(2, id_Zoom) - Y + Math.pow(2, id_Zoom) -1; My_Y = Integer.toHexString(My_Y_int); My_Y = My_Y.toUpperCase(); String [] My_Zoom = {"S7", "S8", "S9", "SA", "SB", "SC", "SD", "SE", "SF", "SG", "SH", "SI"}; if (Zoom < 10) { MySubFolder = "gi.sigi1000.2011.epsg:3912/" + My_Zoom[id_Zoom]; }else if (Zoom < 12) { MySubFolder = "gi.sigi250.2011.epsg:3912/" + My_Zoom[id_Zoom]; }else if (Zoom < 13) { if (My_X.length() < 2) { My_X = "0" + My_X; } if (My_Y.length() < 2) { My_Y = "0" + My_Y; } MySubFolder = "gi.sigi250.2011.epsg:3912/" + My_Zoom[id_Zoom] + "/" + My_X ; }else if (Zoom < 16) { if (My_X.length() < 2) { My_X = "0" + My_X; } if (My_Y.length() < 2) { My_Y = "0" + My_Y; } MySubFolder = "gi.sigi50.2014.epsg:3912/" + My_Zoom[id_Zoom] + "/" + My_X ; }else{ // c est compliqué là ! if (My_X.length() == 1) { My_X = "00" + My_X; } else if (My_X.length() == 2){ My_X = "0" + My_X; } if (My_Y.length() ==1) { My_Y = "00" + My_Y; } else if (My_Y.length() == 2){ My_Y = "00" + My_Y; } String My_XY = My_X + My_Y; String [] My_tab = My_XY.split("(?<=\\G..)"); MySubFolder = "gi.sigi5.2011.epsg:3912/" + My_Zoom[id_Zoom] + "/" + My_tab[0] + "/" + My_tab[1]; } // urlX_de_test = "http://gpcl04.geopedia.si/v1/AUTH_d7e1266c-6b4e-4629-91e6-17d4b370846d/gi.sigi1000.2011.epsg:3912/S9/S901.jpg" return "http://gpcl0" + Num_Server + MyServer + "/" + MyFolder + "/" + MySubFolder + "/" + My_Zoom[id_Zoom] + My_X + My_Y + "." + TileExt; } } void addHeaders(java.net.HttpURLConnection conn) { conn.addRequestProperty("Referer",MyReferer); conn.addRequestProperty("User-Agent",MyUserAgent); }