banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

#1 Wed 31 March 2010 19:31

mafilek
Juste Inscrit !
Date d'inscription: 10 Mar 2010
Messages: 8

probléme openlayers n'affiche pas ma carte

bonjour
j'utilise mapserver +openlayers avec connexion a ma base postgis
le probleme c'est que openlayers me sort un carre rose sans afficher la carte je sais pas si j"ai fait une erreur au niveau de mon mapfile ou au niveau du script javascript

lorsque je tape l'url directemen dans le navigateur mapserver genere ma carte mais avec openlayers rien
voici mon mapfile

MAP
NAME "WMSRABAT"
IMAGETYPE      agg
   EXTENT         -772345.720000 4018029.800000 -748484.060000 4040464.060000
   SIZE           800 800
   MAXSIZE 4000
   IMAGECOLOR     255 255 255
   UNITS meters
   IMAGECOLOR "#F5F5F5"
  OUTPUTFORMAT
    NAME agg
    DRIVER AGG/PNG
    IMAGEMODE RGB
    FORMATOPTION "INTERLACE=false"
    MIMETYPE "image/png"
END

WEB
    METADATA
     "wms_title" "osm rabat"
     "wms_onlineresource" "localhost/cgi-bin/mapserv?map=C:/ms4w/apps/tutorial/htdocs/rabat.map&"
     wms_srs "epsg:900913"
     labelcache_map_edge_buffer "-10"
     "wms_format" "image/png"
    END

END
CONFIG "MS_ERRORFILE" "c:\ms_error.txt"



LAYER
        CONNECTIONTYPE postgis
        CONNECTION "host=localhost dbname=rabat user=postgres password=pass port=5432"
        DATA "way FROM planet_osm_polygon using unique osm_id using srid=900913"
    NAME "polygon"
    TYPE POLYGON
    STATUS ON
    METADATA
     "wms_title" "A" ##required
    END
    PROJECTION
     "init=epsg:4326" ##recommended
    END
    CLASS
      STYLE
        COLOR        200 200 200
        OUTLINECOLOR 100 100 100
        SYMBOL 0
      END
    END
END

LAYER
        CONNECTIONTYPE postgis
        CONNECTION "host=localhost dbname=rabat user=postgres password=pass port=5432"
        DATA "way FROM planet_osm_line using unique osm_id using srid=900913"
    NAME "line"
    TYPE LINE
    STATUS ON
    METADATA
     "wms_title" "B" ##required
    END
    PROJECTION
     "init=epsg:4326" ##recommended
    END
    CLASS
      STYLE
        COLOR        25 150 200
        OUTLINECOLOR 100 100 100
        SYMBOL 0
      END
    END
END
LAYER
        CONNECTIONTYPE postgis
        CONNECTION "host=localhost dbname=rabat user=postgres password=pass port=5432"
        DATA "way FROM planet_osm_point using unique osm_id using srid=900913"
    NAME "point"
    TYPE POINT
    STATUS ON
    METADATA
     "wms_title" "C" ##required
    END
    PROJECTION
     "init=epsg:4326" ##recommended
    END
    CLASS
      STYLE
        COLOR        255 0 0
        SIZE 5
       END
    END
END

LAYER
        CONNECTIONTYPE postgis
        CONNECTION "host=localhost dbname=rabat user=postgres password=pass port=5432"
        DATA "way FROM planet_osm_roads using unique osm_id using srid=900913"
    NAME "road"
    TYPE LINE
    STATUS ON
    METADATA
     "wms_title" "D" ##required
    END
    PROJECTION
     "init=epsg:4326" ##recommended
    END
    CLASS
      STYLE
        COLOR        255 0 0
        OUTLINECOLOR 154 100 100
        SIZE 50
       END
    END
END


END

mon scripte est :


<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script src="OpenLayers.js"></script>
<script type="text/javascript">

var map = null;

function init(){
            map = new OpenLayers.Map( 'map' );
            layer = new OpenLayers.Layer.MapServer( "OpenLayers WMS",
                    "http://localhost/cgi-bin/mapserv?", {map: 'C:\ms4w\apps\tutorial\htdocs\rabat.map'} );
            map.addLayer(layer);
            map.zoomToMaxExtent();
           
        }
</script>
</head>

<body onload="init()">
<div id="map" style="width: 600px; height: 300px"></div>
</body>
</html>




merci pour votre aide

Hors ligne

 

#2 Wed 31 March 2010 21:45

Delu
Participant actif
Lieu: Briançon
Date d'inscription: 29 Apr 2008
Messages: 76

Re: probléme openlayers n'affiche pas ma carte

bonjour,

Si la carte s'affiche dans un appel directement depuis le navigateur c'est que le .map fonctionne.
Ce qui m'étonne c'est que ça fonctionne sans les deux clauses obligatoires dans le section WEB du mapfile :
  IMAGEPATH "/chemin/vers/repertoire/tmp/"
  IMAGEURL "http://localhost/monappli/tmp"

Si le pb ne vient pas de là, puisque le mapfile sert du wms, on peut l'utiliser dans le javascript et donc plutôt que :
layer = new OpenLayers.Layer.MapServer(...
à remplacer par layer = new OpenLayers.Layer.WMS(
Exemple de code pour créer une layer wms

Code:

    var layer = new OpenLayers.Layer.WMS(
            "nom de ma layer"
            ,"http://localhost/cgi-bin/mapserv?"
            ,{layers: "A", format: "image/png",transparent:"TRUE" }
            ,{projection: "EPSG:4326", isBaseLayer: false}
        );

isBaseLayer: false ou true, c'est selon...

Merci de poster le code entre balises code /code

Hors ligne

 

#3 Thu 01 April 2010 11:33

mafilek
Juste Inscrit !
Date d'inscription: 10 Mar 2010
Messages: 8

Re: probléme openlayers n'affiche pas ma carte

bonjour et merci pour votre reponse

l'url que je utilse nutilse pas le wms

voici l'url http://localhost/cgi-bin/mapserv.exe?map=/ms4w/apps/tutorial/htdocs/rabat.map&layer=polygon&layer=line&layer=point&layer=road&mode=map

pour les changement que vous m'avais conseillez je les testes et je vous repond

merci

Hors ligne

 

#4 Thu 01 April 2010 14:43

mafilek
Juste Inscrit !
Date d'inscription: 10 Mar 2010
Messages: 8

Re: probléme openlayers n'affiche pas ma carte

bonjour j'ai fait tout les changement mais toujours rien   openlayer me sort des carré rose je sias pas si le probleme vien des paramétrer de projection dans le mapfile

j'ai ajouté dans le mapfile bloc web
IMAGEPATH "C:\TEMP\"
IMAGEURL "http://localhost/tmp"

j'ai changé le script java

<script type="text/javascript">
      var lon = 16831422;
      var lat=-4012608;
    var zoom = 3;
    var map, layer;
   
       

        function init(){
            map = new OpenLayers.Map( 'map' );
       
       var layer = new OpenLayers.Layer.WMS(
            "WMS"
            ,"http://localhost/cgi-bin/mapserv?"
            ,{layers: "polygon", format: "image/png",transparent:"true" }
            ,{projection: "EPSG:4326", isBaseLayer: true}
        );


            map.addLayers([layer]);
            if(!map.getCenter())
                map.setCenter(new OpenLayers.LonLat(lon, lat), zoom);
            map.addControl(new OpenLayers.Control.Scale('scale'));
            map.addControl(new OpenLayers.Control.Permalink('permalink'));
            map.addControl(new OpenLayers.Control.MousePosition());
        }
    </script>


mais toujours rien aidez moi SVP

Hors ligne

 

#5 Thu 01 April 2010 16:32

mafilek
Juste Inscrit !
Date d'inscription: 10 Mar 2010
Messages: 8

Re: probléme openlayers n'affiche pas ma carte

bonjour mon probleme ete le chemin de fichier map dans le scripte

une fois corrigé openlayers me sort une erreur

WMS server error. Cannot set new SRS on a map that doesn't have any projection set. Please make sure your mapfile has a projection defined at the top level.


heureusement il me parle maintenant

merci de m'aider

Hors ligne

 

#6 Fri 02 April 2010 11:40

Delu
Participant actif
Lieu: Briançon
Date d'inscription: 29 Apr 2008
Messages: 76

Re: probléme openlayers n'affiche pas ma carte

Effectivement il parle et c'est assez précis : il demande la projection de la carte.
Il faut donc ajoute ceci dans la partie MAP du mapfile (avant la section WEB par exemple)

Code:

  
PROJECTION
    "init=epsg:4326"
END

Hors ligne

 

#7 Fri 02 April 2010 18:11

mafilek
Juste Inscrit !
Date d'inscription: 10 Mar 2010
Messages: 8

Re: probléme openlayers n'affiche pas ma carte

effectivement vous avez raison et merci pour votre reponse mais j'ai une projection

"init=epsg:900913" qu'elle est la diference entre les deux

Hors ligne

 

#8 Mon 05 April 2010 21:12

Delu
Participant actif
Lieu: Briançon
Date d'inscription: 29 Apr 2008
Messages: 76

Re: probléme openlayers n'affiche pas ma carte

j'ai mis 4326 car c'est la projection qui est dans les layers de votre mapfile dans le premier post de cette discussion. mais vous pouvez choisir celle qui convient le mieux à votre projet.
Il est évidemment plus simple que toutes vos couches soient dans la même projection, peu importe laquelle. Le mieux est de prendre celle de vos rasters.

Hors ligne

 

#9 Thu 08 April 2010 14:30

mafilek
Juste Inscrit !
Date d'inscription: 10 Mar 2010
Messages: 8

Re: probléme openlayers n'affiche pas ma carte

ok j'ai compris le principe est ça marche merci beaucoup

Hors ligne

 

Pied de page des forums

Powered by FluxBB