Bílý vrch
icon TrekBuddy
www.trekbuddy.net
Outdoor companion.
  • internal / bluetooth / simulator GPS
  • offline raster maps
  • smart GPX / raw NMEA logs
  • waypoints and simple navigation
  • custom views
  • MIDP and Symbian phones
  • Blackberry
  • Android
Visit wiki to see all features, guides and howtos. Project tracker.
Trekbuddy is on Github now

Partners:    (Polish/Polski)(Polski) Compass mapy      (Polish/Polski)(Polski) Galileos mapy      (Polish/Polski)(Polski) CartoMedia      (Czech/Èesky)(Èesky) Eaglesoft trasy      (Polish/Polski)(Polski) ExpressMap     

 FAQFAQ   SearchSearch   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 
Cartes portugaises

 
Post new topic   Reply to topic    TrekBuddy Forum Index -> Français
View previous topic :: View next topic  
Author Message
guest



Joined: 08 Oct 2006
Posts: 5027

PostPosted: Fri Feb 23, 2018 1:58 pm    Post subject: Cartes portugaises Reply with quote

Bonjour à tous,

Je ne suis pas doué pour construire des fichiers xml ou bsh. Aussi pouvez-vous m'aider à obtenir les cartes du Portugal à partir de l'adresse :
http://mapas.sapo.pt/?ll=41.149530%2C-8.612438&z=13&t=m&theme=Map&mks=-9.245825%2C41.302041%2C0%2C%2C

Merci.
Back to top
View user's profile Send private message Visit poster's website
Nicolas PAOUR



Joined: 25 May 2014
Posts: 6
Location: France

PostPosted: Fri Oct 11, 2019 3:00 pm    Post subject: Reply with quote

Je déterre ce post pour relancer le débat.
Code:

// Nom de la carte affiché dans MOBAC
   name = "Portugal, Sapo-Z(19)-2019";
   
// Nom du serveur
   String MyServer = ".mapas.sapo.pt";
   
// Key au format "/blabla"
   String MyKey = "";      
   
// MyUserAgent correspond à celui créé notemment 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 "/blabla"
   String MyFolder = "/wms_mapas";

// Paramètres communs
   String MyService = "WMS";      // Service : le type de service (ici : “WMTS”)
   String MyVersion = "1.1.1";      // Version : la version du service utilisée (1.0.0)
   String MyRequest = "GetMap";   // Request : la requête adressée au serveur (GetCapabilities, GetTile ou GetFeatureInfo)

// Paramètres spécifiques GetMap
   String MyFormat = "image/png";                        // Format : le format de sortie - type-mime - du fichier image (“image/png”, “image/jpg”, …)
   String MyLayers = "MapBase";                        // Layers : la ou les ressources séparées par une "," à utiliser pour calculer l’image. C’est le nom technique de la ressource qui est utilisé
   String MyStyles = "";                              // Styles : le style de rendu des couches
   String Mycrs = "";                                 // Crs : indique le système de coordonnées utilisé en WMS 1.3 (ex :900913, 3857)
   String Mysrs = "EPSG:900913";                        // Srs : indique le système de coordonnées utilisé en WMS version < 1.3
   String Mywidth = "256";                              // Width : largeur de l’image finale en pixels
   String Myheight = "256";                           // Height : hauteur de l’image finale en pixels
   String Mymap = "";                                 // Map : Spécifique au serveur "wms.pcn.minambiente.it". Si vide et inutile, peut générer l’erreur : Regular expression error. MS_DEFAULT_MAPFILE_PATTERN
   String Myexeptions = "INIMAGE";                        // Exeptions : Texte dans une image décrivant la nature de l’erreur

tileType = "png";   // Type d’image fourni par le serveur (png, jpg or gif)
tileSize = 256;      // Facultatif : Supprimer la ligne dans le doute
minZoom = 2;      // Facultatif : Zoom minimal souhaité (et/ou fourni par le serveur)
maxZoom = 19;      // Facultatif : Zoom maximal souhaité (et/ou fourni par le serveur) -> Maximum 22 pour Mobac

String getTileUrl(int Zoom, int X, int Y) {
// Autres paramètres spécifiques GetTile
//      TileMatrix = Zoom : Le nom de la matrice qui contient la tuile
//      TileCol = X : Le numéro de colonne du coin supérieur gauche de la tuile
//      TileRow = Y : Le numéro de ligne du coin supérieur gauche de la tuile
   if (Zoom < 7) {
      // gestion Zoom < 7, on prend une carte générique Google pour voir le monde entier
      return "http://mt0.google.com/vt/lyrs=m@176103410&hl=fr&s=Galileo&scale=1&z=" + Zoom + "&x=" + X + "&y=" + Y;
   }else{
      Num_Server = (X % 8) + 1;   // 1 2 3 4 ... 8
      // url = "http://map1.mapas.sapo.pt/wms_mapas?EXCEPTIONS=INIMAGE&LAYERS=MapBase&Styles=&Service=WMS&Request=GetMap&version=1.1.1&Format=image/png&srs=EPSG:900913&crs=&bbox=-968610.0222949218,5044843.866119386,-967387.0298425293,5046066.858571777&width=256&height=256"
      // Remarque : Pour cette carte, LAYERS en Majuscule et Width=256&Height=256 après BBOX !
      return "http://map" + Num_Server + MyServer + MyKey + MyFolder + "?EXCEPTIONS=" + Myexeptions + "&LAYERS=" + MyLayers + "&Styles=" + MyStyles + "&Service=" + MyService + "&Request=" + MyRequest + "&version=" + MyVersion + "&Format=" + MyFormat + "&srs=" + Mysrs + "&crs=" + Mycrs + "&bbox=" + mercatorTileEdges(X,Y,Zoom) + "&width=" + Mywidth + "&height=" + Myheight ;
   }
}

void addHeaders(java.net.HttpURLConnection conn) {
   conn.addRequestProperty("Referer",MyReferer);
   conn.addRequestProperty("User-Agent",MyUserAgent);   
}

//
// Fonction projecion de Mercator
//
   static import java.lang.Math.*;

   numTiles(Z){
      return abs(pow(2,Z));
   }
   mercatorToLat(mercatorY){
      return(toDegrees(atan(sinh(mercatorY))));
   }
   latEdges1(Y,Z){
      n = numTiles(Z);
      unit = 1 / n;
      relY1 = Y * unit;
      lat1 = mercatorToLat(PI * (1 - 2 * relY1));
      return lat1;
   }
   latEdges2(Y,Z){
      n = numTiles(Z);
      unit = 1 / n;
      relY1 = Y * unit;
      relY2 = relY1 + unit;
      lat2 = mercatorToLat(PI * (1 - 2 * relY2));
      return lat2;
   }
   lonEdges1(X,Z){
      n = numTiles(Z);
      unit = 360 / n;
      lon1 = -180 + X * unit;
      return lon1;
   }
   lonEdges2(X,Z){
      n = numTiles(Z);
      unit = 360 / n;
      lon1 = -180 + X * unit;
      lon2 = lon1 + unit;
      return lon2;
   }
   tileEdges(X,Y,Z){
      return (latEdges2(Y,Z)+","+
            lonEdges1(X,Z)+","+
            latEdges1(Y,Z)+","+
            lonEdges2(X,Z));
   }
   lon2mercator(l){
      return (l * 20037508.34 / 180);
   }
   lat2mercator(l){
      r = toRadians(l);
      lat = log((1+sin(r)) / (1-sin(r)));
      return (lat * 20037508.34 / 2 / PI);
   }
   mercatorTileEdges(X,Y,Z){
      return (lon2mercator(lonEdges1(X,Z))+","+
            lat2mercator(latEdges2(Y,Z))+","+
            lon2mercator(lonEdges2(X,Z))+","+
            lat2mercator(latEdges1(Y,Z)));
   }
//
// FIN Mercator
//

Par contre, je n'arrive pas à afficher la couche LAYERS=MapPOIs des noms villes/routes.
En effet, celle-ci est en 768 (au lieu de 256). Je sèche Rolling Eyes

_________________
Nicolas (de Chartreuse)
Back to top
View user's profile Send private message Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic    TrekBuddy Forum Index -> Français All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You cannot download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group