#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