Pages: 1
- Sujet précédent - [MapServer/OpenLayers]Affichage d'un layer de type LINE - Sujet suivant
#1 Mon 20 July 2009 10:27
- abir_rzg
- Participant occasionnel
- Date d'inscription: 20 Jul 2009
- Messages: 15
[MapServer/OpenLayers]Affichage d'un layer de type LINE
Bonjour Ă tous,
Je souhaite afficher le contenu d'un shapefile en utilisant MapServer avec Openlayers. J'ai rĂ©ussit Ă le faire dans le cas oĂč le type du layer est POLYGON mais je n'arrive pas Ă le faire quand le type du layer est LINE.
Voici les infos du fichier shape Ă afficher:
INFO: Open of `C:\ms4w\Apache\htdocs\my_shape_files\shape_ams\EXP_SEGMENT_FONCTIONNEL.shp'
using driver `ESRI Shapefile' successful.
Layer name: EXP_SEGMENT_FONCTIONNEL
Geometry: Line String
Feature Count: 6
Extent: (633527.743437, 2517184.387950) - (669562.958005, 2556945.272294)
Layer SRS WKT:
(unknown)
ID_SEGMENT: Real (24.5)
ID_RESEAU: Real (24.5)
TYPE_ETB_O: String (5.0)
ID_ETB_ORI: Real (24.5)
TYPE_ETB_E: String (5.0)
ID_ETB_EXT: Real (24.5)
CODE_OUVRA: String (30.0)
ID_RAMONAB: Real (24.5)
CLASSIFICA: String (80.0)
LONGUEUR_S: Real (24.5)
PME: Real (24.5)
EXPL_DEGS_: String (80.0)
COMMENTAIR: String (255.0)
PK_INIT: Real (24.5)
ID_ENTITE_: String (30.0)
STATUT_CON: String (1.0)
AUTEUR: String (80.0)
DATE_DERNI: Date (10.0)
Voici le contenu du mapfile que j'ai écrit:
Code:
MAP
IMAGETYPE PNG
EXTENT 633527.743437 2517184.387950 669562.958005 2556945.272294
SIZE 400 300
SHAPEPATH "/ms4w/Apache/htdocs/my_shape_files/shape_ams"
IMAGECOLOR 255 255 255
LAYER
NAME EXP_SEGMENT_FONCTIONNEL
DATA EXP_SEGMENT_FONCTIONNEL
TYPE Line
STATUS DEFAULT
CLASS
NAME "AMS Example"
STYLE
COLOR 232 232 232
OUTLINECOLOR 32 32 32
END
END
END
ENDet enfin voici le contenu du fichier .html cotenant le code javascript de openlayers:
Code:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>MapServer Layer: AMS Example</title>
<script src="../../lib/OpenLayers.js"></script>
<script type="text/javascript">
var map, layer, mybounds;
function init(){
map = new OpenLayers.Map("map");
layer = new OpenLayers.Layer.MapServer( "Exemple AMS", "http://localhost:8081/cgi-bin/mapserv.exe?map=/ms4w/Apache/htdocs/my_examples_MS/ams_exp.map", {layers: "EXP_SEGMENT_FONCTIONNEL", format: 'image/png', isBaseLayer: false, opacity: 1});
map.addLayer(layer);
mybounds = new OpenLayers.Bounds(633527.743437,2517184.387950,669562.958005,2556945.272294);
map.zoomToExtent(mybounds);
map.addControl( new OpenLayers.Control.LayerSwitcher() );
}
</script>
</head>
<body onload="init()">
<div id="title">MapServer Layer: AMS Example</div>
<div id="map"></div>
</body>
</html>Quelqu'un a-t-il une idée de ce qui ne va pas ici dans mon code?
Merci
Hors ligne
#2 Mon 20 July 2009 11:12
Re: [MapServer/OpenLayers]Affichage d'un layer de type LINE
Bonjour abir_rzg,
Pour dĂ©buguer, tu devrais tenter d'Ă©crire la requĂȘte MapServer pour visualiser ta couche afin de vois si le problĂšme vient de MapServer ou d'OpenLayers.
Par contre je te déconseille d'utiliser la classe OpenLayers.Layer.MapServer et t'invite à utiliser OpenLayers.Layer.WMS. Cela sera plus simple à utiliser et à débuguer à mon avis !
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 Mon 20 July 2009 13:38
- abir_rzg
- Participant occasionnel
- Date d'inscription: 20 Jul 2009
- Messages: 15
Re: [MapServer/OpenLayers]Affichage d'un layer de type LINE
Bonjour abir_rzg,
Pour dĂ©buguer, tu devrais tenter d'Ă©crire la requĂȘte MapServer pour visualiser ta couche afin de vois si le problĂšme vient de MapServer ou d'OpenLayers.
Par contre je te déconseille d'utiliser la classe OpenLayers.Layer.MapServer et t'invite à utiliser OpenLayers.Layer.WMS. Cela sera plus simple à utiliser et à débuguer à mon avis !
Y.
J'ai essayé de visualiser le layer en question avec la requÚte MapServer sans avoir recourt à OpenLayers et ça marche. Le problÚme est donc en relation avec OpenLayers.
Mais je ne comprend pas ou car avec le mĂȘme code (cĂ d en utilisant OpenLayers.Layer.MapServer) j'arrive Ă visualiser d'autres layers de TYPE POLYGON en utilisant OpenLayers mais j'ai toujours un problĂšme avec ce layer lĂ en particulier.
Hors ligne
#4 Mon 20 July 2009 13:53
Re: [MapServer/OpenLayers]Affichage d'un layer de type LINE
Bonjour,
Peut ĂȘtre peux tu essayer de retrouver la requĂȘte envoyĂ©e par OpenLayers Ă ton serveur MapServer pour voir si celle-ci est correcte ![]()
Je ne voie pas trop pour le moment de solution ou de piste.
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 Mon 20 July 2009 15:02
- abir_rzg
- Participant occasionnel
- Date d'inscription: 20 Jul 2009
- Messages: 15
Re: [MapServer/OpenLayers]Affichage d'un layer de type LINE
Bonjour,
Peut ĂȘtre peux tu essayer de retrouver la requĂȘte envoyĂ©e par OpenLayers Ă ton serveur MapServer pour voir si celle-ci est correcte
Je ne voie pas trop pour le moment de solution ou de piste.
Y.
Le requĂȘte en question c'est cele ci non? layer = new OpenLayers.Layer.MapServer( "Exemple AMS", "http://localhost:8081/cgi-bin/mapserv.exe?map=/ms4w/Apache/htdocs/my_examples_MS/ams_exp.map", {layers: "EXP_SEGMENT_FONCTIONNEL", format: 'image/png', isBaseLayer: false, opacity: 1});
Si c'est bien ça je ne voix pas ou est le problÚme! J'ai fait le débogage du code javascript et je n'ai pas eu d'erreur! Je ne comprend plus!
Dernière modification par abir_rzg (Mon 20 July 2009 15:03)
Hors ligne
#6 Mon 20 July 2009 15:07
Re: [MapServer/OpenLayers]Affichage d'un layer de type LINE
Non ca c'est du code javascript. Openlayers lance des requĂȘtes vers le serveur pour rĂ©cupĂ©rer l'image.
http://georezo.net/wiki/main:logiciels: … rs:firebug
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 Mon 20 July 2009 15:51
- abir_rzg
- Participant occasionnel
- Date d'inscription: 20 Jul 2009
- Messages: 15
Re: [MapServer/OpenLayers]Affichage d'un layer de type LINE
Openlayers lance des requĂȘtes vers le serveur pour rĂ©cupĂ©rer l'image.
Je ne comprend pas. explique stp.
J'ai utilisé Firebug et il ne donne aucune erreur au déboggage. J'ai aussi essayé de débuguer à la main et j'ai le mm résultat.
Hors ligne
#8 Mon 20 July 2009 16:08
Re: [MapServer/OpenLayers]Affichage d'un layer de type LINE
Bonjour
Et bien le rĂŽle d'OL est de gĂ©rer l'interface pour traduire la volontĂ© de l'utilisateur (zoome sur une zone, choix des couches) en requete http qu'il appel en AJAX. Normalement tu dois voir passer ces requĂȘtes dans l'onglet "console" de Firebug.
tu peux ainsi voir ces requĂȘtes et les lancer directement dans un nouvel onglet de ffox ce qui te permet gĂ©nĂ©ralement d'obtenir un message d'erreur que le serveur carto aura renvoyĂ©. Mais il permet aussi de vĂ©rifier que le contenu des paramĂštres est correcte et logique.
Si tu obtiens une image blanche, l'erreur la plus souvent commise est le systĂšme de projection incorrecte ou une mauvaise bbox.
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 Mon 20 July 2009 17:35
- abir_rzg
- Participant occasionnel
- Date d'inscription: 20 Jul 2009
- Messages: 15
Re: [MapServer/OpenLayers]Affichage d'un layer de type LINE
Normalement tu dois voir passer ces requĂȘtes dans l'onglet "console" de Firebug.
la console de firebug n'affiche rien quand je charge la page html en question.
Si tu obtiens une image blanche, l'erreur la plus souvent commise est le systĂšme de projection incorrecte ou une mauvaise bbox.
bbox c'est quoi?
effectivement le résultat affiché est une page contenant les boutons de zoom et le cadre de openlayers mais sans rien dedans. pour le systÚme de projection dans le cas d'un shape je n'arrive pas à le faire afficher dans les infos de OGR INFO. pour les rasters il s'affiche mais pas pour les shapfiles. alor si g pas les info de projections correspondant à mon fichiers d'ou je vais les avoir pour les utiliser? et autre chose, mon problÚme peut-il avoir un lien avec l'unité utilisée? (en mÚtre ou en degré ou en pixel par exp)
Dernière modification par abir_rzg (Mon 20 July 2009 17:36)
Hors ligne
#10 Tue 21 July 2009 11:24
- abir_rzg
- Participant occasionnel
- Date d'inscription: 20 Jul 2009
- Messages: 15
Re: [MapServer/OpenLayers]Affichage d'un layer de type LINE
Bonjour,
J'ai essayĂ© d'utiliser WMS au lieux de MapServer pour invoquer le serveur carto mais je n'arrive Ă rien afficher correctement avec ça. MĂȘme les exemples que j'ai fait qui marchaient avant ne marchent pas avec ça!
Voici le code:
Code:
var map, layer, mybounds;
function init(){
map = new OpenLayers.Map("map");
layer = new OpenLayers.Layer.WMS("Exemple AMS", "http://localhost:8081/cgi-bin/mapserv.exe?map=/ms4w/Apache/htdocs/my_examples_MS/ams_exp.map", {layers: "exp_ams", transparent: "true", format: "image/png", isBaseLayer: false, opacity: 1});
map.addLayer(layer);
mybounds = new OpenLayers.Bounds(633527.743437,2517184.387950,669562.958005,2556945.272294);
map.zoomToExtent(mybounds);
map.addControl( new OpenLayers.Control.LayerSwitcher() );
}Dernière modification par abir_rzg (Tue 21 July 2009 11:27)
Hors ligne
Pages: 1
- Sujet précédent - [MapServer/OpenLayers]Affichage d'un layer de type LINE - Sujet suivant

