#1 Wed 03 October 2007 14:18
- Tiassma
- Participant occasionnel
- Date d'inscription: 4 Dec 2006
- Messages: 39
Carte de référence
Bonjour à tous,
Loin de moi l'idée de déranger qui que ce soit sur un sujet déjà vu
mais un certain Robin m'a encouragé à vous faire part de mon problème sur ce forum.
En effet, je sèche vraiment sur une carte de référence sous Mapserver (V 4.8.3)
J'ai une image gif qui correspond à ma carte en terme d'extent et de
proportion pixel (cad que ma carte fait 275*550 et mon overview 50*100), je remplis l'ensemble des attributs du bloc référence
comme il se doit mais rien à faire, l'overview ne s'affiche pas avec la carte!! D'ailleurs il ne s'affiche nulle part...
ci joint mon code mapfile:
REFERENCE
IMAGE "/images/img.gif"
SIZE 50 100
EXTENT 177310 2267310 209750 2332190
STATUS ON
COLOR -1 -1 -1
OUTLINECOLOR 255 255 255
MINBOXSIZE 12
MAXBOXSIZE 300
MARKER 0
MARKERSIZE 10
END
J'ai vu tout ce que je pouvais sur la carte de référence, parcouru les
forums, les docs et je n'ai pas réglé mon problème.
Quel est le principe de l'affichage de cette référence par rapport à la
carte? Faut-il expliciter son affichage quelque part ou le seul code du
mapfile suffit-il?
Merci de votre aide et désolé si c'est du rabachage
--
Hors ligne
#2 Wed 03 October 2007 15:31
Re: Carte de référence
Bonjour,
Quel OS ? Si c'est du linux, il doit aller chercher l'image à la racine du système dans le répertoire image. Est ce que ce répertoire exite bien ? Il semble pour le moins étrange de mettre un répertoire image à la racine du système. La logique serait plutot de le mettre dans /var/www/.../images/
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 Wed 03 October 2007 17:46
- Guillaume Sueur
- Participant assidu
- Lieu: Toulouse
- Date d'inscription: 23 Sep 2005
- Messages: 331
- Site web
Re: Carte de référence
il faut spécifier que l'on veut créer cette image de référence :
en cgi :
mode=reference
ce qui retourne l'url de l'image créée
en mapscript:
$img = $pMap->drawReferenceMap();
$url = $img->saveWebImage();
$url contient alors l'url de l'image créée
Hors ligne
#4 Wed 03 October 2007 18:05
- Tiassma
- Participant occasionnel
- Date d'inscription: 4 Dec 2006
- Messages: 39
Re: Carte de référence
Merci de ces réponses rapides.
Pour Yves: Effectivement, c'est du Linux. A priori c'est bien un chemin relatif au mapfile que je lui indique (enfin dans mon esprit c'est comme ça que je le vois).... En fait j'ai aussi tenté avec le chemin "en dur" mais le résultat n'a pas été meilleur. Ceci dit, la piste du chemin me semble aussi une cause possible de ce "bug".
Pour Guillaume: J'ai ecrit mon mapfile en direct, sans phpmapscript. Du coup, je me posais effectivement la question de savoir si Mapserver interprétait directement le code pour générer l'image dans ma carte ou s'il fallait quelque chose de mieux. J'essaie demain en mapscript pour voir si ça marche.
Merci à tous les deux, je vous tiens au courant. Ca fait plaisir de ne pas se sentir tout seul!!!
Hors ligne
#5 Thu 04 October 2007 09:21
Re: Carte de référence
Bonjour,
Vous avez mis une url absolue. Il faut soit mettre un point devant l'url : ./images/images.jpg soit mettre le chemin complet. D'autre part est ce que l'image est crée dans le répertoire temporaire ?
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
#6 Thu 04 October 2007 09:32
- Guillaume Sueur
- Participant assidu
- Lieu: Toulouse
- Date d'inscription: 23 Sep 2005
- Messages: 331
- Site web
Re: Carte de référence
attention, la manière dont tu as écrit le mapfile n'a rien à voir.
C'est la manière dont tu génères les cartes qui importe. Si tu les génères en cgi, change simplement la paramètre mode=browse en mode=reference pour générer la carte de référence.
--
Guillaume SUEUR
Expert SIG et OpenSource
Hors ligne
#7 Thu 04 October 2007 10:20
- Tiassma
- Participant occasionnel
- Date d'inscription: 4 Dec 2006
- Messages: 39
Re: Carte de référence
Bonjour,
J'ai donc suivi vos justes conseils ce matin et j'ai découvert:
1. que sous Linux, effectivement, le chemin relatif pour l'image renvoyait à la racine, où evidemment il n'y a pas le dossier images puisqu'il se trouve dans mon var/www/...temp/images
2. qu'il fallait demander à mapserver de générer la carte de référence via php, le mapfile ne contenant que sa définition, comme pour une map. Ca me parait tellement évident après coup que je me demande comment j'ai pu passer à côté...;D
Donc j'obtiens à présent l'affichage de ma carte de référence et pour celà un grand merci à tous les deux, je vais désormais vous solliciter à mort!!
Bonne journée
Hors ligne
#8 Thu 04 October 2007 10:30
Re: Carte de référence
1. que sous Linux, effectivement, le chemin relatif pour l'image renvoyait à la racine, où evidemment il n'y a pas le dossier images puisqu'il se trouve dans mon var/www/...temp/images
Non, vous n'avez pas fait un chemin relatif mais absolu. CQFP (Ce Qu'il Faut Préciser). Tatillons, restons tatillons svp.
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
#9 Thu 04 October 2007 16:05
- Tiassma
- Participant occasionnel
- Date d'inscription: 4 Dec 2006
- Messages: 39
Re: Carte de référence
Bonjour,
Vu que vous êtes très serviables, j'en profite pour solliciter à nouveau vos éclairages sur ladite carte de référence.
D'après ce que je comprend dans les docs, cette fameuse carte de référence permet d'afficher l'extent actuel de la carte principale afin d'avoir une vue de situation quelle que soit l'échelle de visualisation. Je comprend aussi qu'elle hérite de la carte principale ce qui permet à Mapserver d'effectuer les calculs par rapport aux extents pour cet affichage. Bref, du gâteau!
Mais, ô stupeur!! rien n'est jamais acquis et j'ai le sentiment que, si cette fonctionnalité magique est simplissime en CGI, elle requiert un certain développement en phpmapscript. Je m'explique: et d'une il faut dessiner cette carte de référence, et de deux il faut l'afficher (alors que certaines docs expliquent qu'elle est embed, ce qui pour moi correspondait à la même chose que la barre d'échelle et la légende, qui elles, s'affichent dans la map sans qu'on ai plus besoin de code php!) et de trois elle ne présente aucune interactivité à priori avec la map.
Qu'en est il vraiment? ou je m'emmêle inexorablement ou les docs sont parfois contradictoires!
Merci de vos lanternes!
Hors ligne
#10 Thu 04 October 2007 17:29
- Guillaume Sueur
- Participant assidu
- Lieu: Toulouse
- Date d'inscription: 23 Sep 2005
- Messages: 331
- Site web
Re: Carte de référence
C'est qu'il a fallu s'y mettre à deux quand-même !!!
Hors ligne
#11 Thu 04 October 2007 17:53
Re: Carte de référence
Guillaume,
C'est la répartition des taches, une chacune, aah le travail de groupe ^^
Tiassma,
En phpMapsCript, il y a une méthode pour définir le mode de l'image (reference, scalebar ou principale) lors de la sauvegarde de l'image. Pour l'affichage simple les méthodes sont drawLegend(), drawReferenceMap(), draw(), drawScaleBar(), ...
A chaque changement de la carte principale, il faut vérifier si le zomm,ou l'étendu a été modifié et changer la carte de réference en conséquance. Donc, non il n'y a pas plus de développement à faire pour la carte de référence que pour la carte principale.
Je ne sais pas s'il est possible de rajouter la carte de référence dans la carte principale. À priori seul la légende et l'échelle graphique peuvent être incluses.
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
#12 Thu 04 October 2007 18:45
- Guillaume Sueur
- Participant assidu
- Lieu: Toulouse
- Date d'inscription: 23 Sep 2005
- Messages: 331
- Site web
Re: Carte de référence
je vais essayer de réponse point par point...
en mapscript, il faut créer la carte avec drawReferenceMap() à partir d'un objet map. En cela c'est pareil qu'en cgi.
Il faut l'afficher : OUI, l'option EMBED n'existe pas pour l'attribut STATUS de réferenceMap (cf
http://mapserver.gis.umn.edu/docs/refer … eference). Donc tu renvoies l'url à ton avigateur.
Aucune interactivité avec la map : elle correspond (dans son dessin) à l'état de la map par rapport à l'extent spécifié dans REFERENCE au moment du drawReferenceMap(). Si entre le $pMap->draw() et le
$pMap->drawReferenceMap() tu as manipulé ton objet $pMap (changement d'extent ou autre) le résultat ne sera pas celui attendu. Dans le cas contraire ce sera cohérent.
Si par interactivité avec la map tu veux parler des images côté client, en effet il n'y a pas d'interactivité (modification de la carte principale lors du clic sur extent par ex.). Celle-ci doit se bâtir en javascript. L'idéal étant en fait de se passer de la referenceMap de MapServer (désolé !), mais de construire un petit widget comprenant une image de la carte en full extent, et d'un DIV par dessus correspondant à
l'extent en cours. Ce div pouvant évidemment être déplacé ou redimensionné. Cela t'obligera à récupérer les coordonnées de la carte, les transformer dans le référentiel pixel de ton DIV pour mettre
celui-ci à jour, mais sera nettement plus classe (voir par exemple http://plu.rouen.fr/rouen_plu2/map.phtml) !
Hors ligne
#13 Fri 05 October 2007 12:11
- Tiassma
- Participant occasionnel
- Date d'inscription: 4 Dec 2006
- Messages: 39
Re: Carte de référence
OK, merci beaucoup à tous les deux, vous vous complétez vachement bien (je préconise un numéro de duettiste!!) :p
Donc en fin de compte, la carte de ref sous mapserver, c'est un peu de la blague par rapport à l'idée que je m'en faisait. Je sais pas si je vais me mettre au js mais mes collègues me dépanneront bien là-dessus en attendant.
Merci encore et bon WE
Hors ligne
#14 Fri 05 October 2007 18:56
- Guillaume Sueur
- Participant assidu
- Lieu: Toulouse
- Date d'inscription: 23 Sep 2005
- Messages: 331
- Site web
Re: Carte de référence
ce n'est pas de la blague, car ça donne une idée juste de l'emplacement
de la vue par rapport à une extent générale. Mais disons simplement que
l'ergonomie est dépassée.
--
Guillaume SUEUR
Hors ligne
#15 Thu 15 November 2007 17:38
- Tiassma
- Participant occasionnel
- Date d'inscription: 4 Dec 2006
- Messages: 39
Re: Carte de référence
Bonjour,
Je poursuis ce topic (initié par moi-même, je ne me permettrai pas!) vu que j'ai une nouvelle question concernant cette fameuse carte de référence et ça ne vaut peut-être pas la peine de rouvrir une nouvelle discussion.
Voilà, est-il normal que l'affichage de ma map avec sa carte de référence (via php) dans mon navigateur soit significativement beaucoup longue (4 à 5 fois à vue de nez) que la même carte sans la référence??
C'est embetant....
Merci d'avance
Hors ligne
#16 Fri 16 November 2007 09:39
- Tiassma
- Participant occasionnel
- Date d'inscription: 4 Dec 2006
- Messages: 39
Re: Carte de référence
Bonjour,
Pas de réponse...? quelqu'un m'a t-il lu? Dois-je reposter sur un nouveau sujet? je m'interroge!!
Hors ligne
#17 Fri 16 November 2007 10:37
- tbonfort
- Participant actif
- Date d'inscription: 11 Oct 2007
- Messages: 87
Re: Carte de référence
Voilà, est-il normal que l'affichage de ma map avec sa carte de référence (via php) dans mon navigateur soit significativement beaucoup longue (4 à 5 fois à vue de nez) que la même carte sans la référence??
non c'est pas normal. pour en savoir plus il faudrait que tu postes l'extrait de mapfile avec le bloc REFERENCE, et l'extrait de code php où tu genere et renvoie l'image de reference
thomas
Hors ligne
#18 Fri 16 November 2007 10:54
- Guillaume Sueur
- Participant assidu
- Lieu: Toulouse
- Date d'inscription: 23 Sep 2005
- Messages: 331
- Site web
Re: Carte de référence
Non, c'est anormal. D'autant que tu ne peux raisonnablement pas
"afficher ta carte avec sa carte de référence", tu affiches ta carte ET
la carte de référence, car ce sont deux images séparées.
Sachant que le dessin de la carte de référence n'est qu'une image
préexistance sur laquelle mapserver ajoute un rectangle, le coût devrait
être très faible. D'où question : quel fichier utilises-tu comme fond
pour la carte de référence ? Je pense qu'il peut être soit trop lourd
soit trop grand. Vérifie qu'il fait bien la taille utilisée pour la
carte de référence, afin que Mapserver n'ait pas à le redimensionner ni
à faire des calculs complexes pour déterminer l'emprise en cours.
Vérifie aussi sur ton serveur la taille que font les images de
références générées. Le sourcout en temps vient aussi peut-être en
partie de là...
Bonne chance !
Hors ligne
#19 Fri 16 November 2007 12:00
- Guillaume Sueur
- Participant assidu
- Lieu: Toulouse
- Date d'inscription: 23 Sep 2005
- Messages: 331
- Site web
Re: Carte de référence
j'ai répondu hier à 22 h pourtant. Bizarre que ce post (de 9 h 39 ce
matin) soit publié avant non ?
Hors ligne
#20 Fri 16 November 2007 12:03
Re: Carte de référence
Guillaume,
Lorsque tu réponds par e-mail, ton post passe par la console de modération et nécessite donc une action manuelle de modération. En revanche, si tu passes directement par le forum, il n'y a pas de modération manuelle. Si tu souhaites donc apporter une réponse rapide, utilise le forum en web.
Ton message d'hier soir, je ne l'ai moderé que ca matin. CQFD.
Hors ligne
#21 Fri 16 November 2007 13:47
- Guillaume Sueur
- Participant assidu
- Lieu: Toulouse
- Date d'inscription: 23 Sep 2005
- Messages: 331
- Site web
Re: Carte de référence
Ah bon, tu ne modères pas la nuit ?
Hors ligne
#22 Fri 16 November 2007 13:47
Re: Carte de référence
Pas cette nuit ...
Hors ligne
#23 Fri 16 November 2007 14:58
- Tiassma
- Participant occasionnel
- Date d'inscription: 4 Dec 2006
- Messages: 39
Re: Carte de référence
Merci à Guillaume et Thomas,
Donc l'image de ref pèse 3 ko
l'appel php c'est ça:
Code:
//Dessin de l'image de référence $image_ref=$map->drawReferenceMap(); $image_ref_url=$image_ref->saveWebImage(); echo "<IMG BORDER=0 SRC='".$image_ref_url."' /> <BR>";
et le mapfile:
Code:
# Création et paramétrage de la carte de référence __________________________ REFERENCE IMAGE "img.gif" SIZE 200 400 EXTENT 177310 2267310 209750 2332190 STATUS ON COLOR -1 -1 -1 #245 226 15 OUTLINECOLOR 227 11 15 #MINBOXSIZE 12 #MAXBOXSIZE 300 MARKER 0 #numero de symbole qui s'affiche si la carte de ref est trop petite MARKERSIZE 10 # taille du symbole qui s'affiche si la carte de ref est trop petite END
Normalement ça devrait pas lui compliquer la tâche!
Alors, qu'en pensez-vous?
Hors ligne
#24 Sat 17 November 2007 13:28
- Guillaume Sueur
- Participant assidu
- Lieu: Toulouse
- Date d'inscription: 23 Sep 2005
- Messages: 331
- Site web
Re: Carte de référence
Bon, si tu calcules le temps que prends de DrawReference et le
SaveWebImage (en mettant un timer avant et après), ça te donne quoi ?
Hors ligne
#25 Mon 19 November 2007 15:26
- Tiassma
- Participant occasionnel
- Date d'inscription: 4 Dec 2006
- Messages: 39
Re: Carte de référence
Heu....
en réessayant d'afficher ma carte de référence aujourd'hui, il s'avère que c'est beaucoup plus rapide que la semaine passée....du coup, j'ai bien l'impression que cette lenteur tenait d'avantage au réseau qu'au serveur.....désolé.
Merci quand même, je sais maintenant faire un timer php!!
Hors ligne