#1 Thu 20 August 2009 08:52
- Sanby
- Juste Inscrit !
- Lieu: Aurons
- Date d'inscription: 10 Aug 2009
- Messages: 9
[Mapserver] Tuilage pyramidale
Bonjour,
Je possède des cartes d'un même endroit mais avec des échelles différentes.
Je désirerais créer un layer qui selon le niveau de zoom demandé affiche la carte qui conviens le mieux au niveau de zoom demander. Je suppose que cela doit bien évidement se configurer dans le layer, mais comment ?
Pour information les images étant trop grosse, je les ais découpées et indexées à l'aide d'un script .bat qui utilise gdal_translate et gdaltindex (mis en pièce jointe pour les intéressés). Il faudrait donc que selon le niveaux de zoom Mapserver choisisse le bon fichier d'index (a moins que sa se fasse dans le fichier d'index mais j'en doute).
J'ai déjà pas mal chercher mais je n'ai pas trouvé d'aide clair pour le faire.
Merci de votre attention.
Hors ligne
#2 Thu 20 August 2009 09:26
Re: [Mapserver] Tuilage pyramidale
Bonjour,
Regarde pour chaque LAYER les paramètres MAXSCALEDENOM et MINSCALEDENOM.
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne
#3 Thu 20 August 2009 10:32
- Sanby
- Juste Inscrit !
- Lieu: Aurons
- Date d'inscription: 10 Aug 2009
- Messages: 9
Re: [Mapserver] Tuilage pyramidale
Bonjour,
Merci de ta réponse.
J'ai rajouté MAXSCALEDENOM dans mon layer de test.
Pour les zoom maximum (0 à 6) in n'affiche pas la carte (normal), mais une fois ce niveau de zoom passer les tuiles comporte soit la carte du raster soit ma belle couleur de font par défaut ...
J'utilise mon serveur dans un application Java avec "tilemode=gmap" dans le cgi.
J'ai donc maintenant des tuiles qui sont générés correctement et d'autre qui ne le sont pas.
Pourriez-vous me dire pourquoi j'ai cette mosaïque de tuiles avec carte et sans carte. Et surtout comment faire pour éviter sa.
Merci de votre attention.
Dernière modification par Sanby (Thu 20 August 2009 10:33)
Hors ligne
#4 Thu 20 August 2009 10:58
Re: [Mapserver] Tuilage pyramidale
Bonjour,
Une copie d'écran serait plus parlante ?
Merci,
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne
#5 Thu 20 August 2009 13:08
- Sanby
- Juste Inscrit !
- Lieu: Aurons
- Date d'inscription: 10 Aug 2009
- Messages: 9
Re: [Mapserver] Tuilage pyramidale
Bonjour,
En effet sans illustrations c'est pas pratique.
Voici ce que je visionne dans mon appli :
[img]http://imgshare.free.fr/uploads/10c73b0211.jpg[/img]
et
[img]http://imgshare.free.fr/uploads/bb74c8b3ab.jpg[/img]
Il faut admettre que c'est quelque peu dérangeant comme carte.
Mon .map est le suivant :
Code:
MAP NAME "test" IMAGETYPE PNG24 STATUS ON EXTENT -180 -90 180 90 # Geographic SIZE 800 400 IMAGECOLOR 128 128 255 SHAPEPATH "../data/" SYMBOLSET "../etc/symbols.txt" # # Start of web interface definition # WEB IMAGEPATH "C:\OSGeo4W/tmp/ms_tmp/" IMAGEURL "/ms_tmp/" END PROJECTION "init=epsg:900913" END OUTPUTFORMAT NAME jpegfull DRIVER "GD/JPEG" MIMETYPE "image/jpeg" IMAGEMODE RGB EXTENSION "jpg" FORMATOPTION "QUALITY=100" END # # Start of layer definitions # END LAYER NAME tiledProv TYPE RASTER STATUS ON TILEINDEX "ProvTiled.shp" TILEITEM "LOCATION" MAXSCALEDENOM 600000 MINSCALEDENOM 1 METADATA "ows_srs" "EPSG:4326" END PROJECTION "init=epsg:4326" END END END
Merci de votre attention.
Hors ligne
#6 Thu 20 August 2009 13:29
Re: [Mapserver] Tuilage pyramidale
Ok, ton serveur n'est pas assez rapide et MapServer a du mal à fournir les tuiles aussi rapidement. L'astuce est de créer plusieurs url factice qui pointe sur le même serveur. En effet à chaque requête (et pour un même sous nom de domaine) il faut que le serveur envoie la tuile pour passer à la suivante. Si tu multiplies les sous nom de domaines cela sera plus rapide (un peu) et surtout tu auras toutes les tuiles.
Code:
var wmsUrl = ["http://www1.monserver?","http://www2.monserver?","http://www3.monserver?"]; var wms = new OpenLayers.Layer.WMS( "maCouche", wmsUrl, options );
Autres possibilités, tu peux aussi définir OpenLayers pour qu'il demande plusieurs fois la tuile si celle-ci n'est pas renvoyé. rajoutes ceci dans ton code :
Code:
OpenLayers.IMAGE_RELOAD_ATTEMPTS = 3;
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne
#7 Thu 20 August 2009 15:15
- Sanby
- Juste Inscrit !
- Lieu: Aurons
- Date d'inscription: 10 Aug 2009
- Messages: 9
Re: [Mapserver] Tuilage pyramidale
Bonjour,
Merci pour la remarque mais j'ai trouver le problème.
Le problème ne pouvait pas venir de la lenteur de mon serveur car c'est une bête de course. C'est une telle bête de course qu'il gardait presque toutes les tuiles en mémoire...
Bref un vrai serveur et un novice sa peut être incompatible ... (heureusement que le novice est pas si bête que sa)
Toujours est-il qu'en obligeant le serveur à regénérer les tuiles. Sa marche donc impeccablement.
Merci beaucoup pour ton aide Yves.
Dernière modification par Sanby (Thu 20 August 2009 15:16)
Hors ligne