#1 Tue 01 May 2012 14:19
- diouckk
- Juste Inscrit !
- Date d'inscription: 30 Apr 2012
- Messages: 5
Openlayers Pop Up
Bonjour
Je suis debutant dans le webmapping. Je voudrai afficher des pop up sur openlayers j ai pas d erreur mais ca m affiche rien quand je click sur la carte. Est ce que quelqu un pourrait m aider svp?
j'ai peu t etre un code qui beug
voici le code
Code:
<head>
<style type="text/css">
#map {
width: 800px;
height: 475px;
border: 1px solid black;
}
</style>
<title>OpenLayers opup</title>
<script src="../lib/OpenLayers-2.11/OpenLayers.js"></script>
<script type="text/javascript">
//============================================================================
// <!--Debut du code JS-->
//Fonctionnalités de la carte : Ajout des contrôles classiques---->
// options graph, zoom + apercu
//============================================================================
var map, layer;
function load() {
map = new OpenLayers.Map("map", {
controls:[
new OpenLayers.Control.Navigation(),
new OpenLayers.Control.PanZoomBar(),
new OpenLayers.Control.Permalink(),
new OpenLayers.Control.ScaleLine({geodesic: true}),
new OpenLayers.Control.Permalink('permalink'),
new OpenLayers.Control.MousePosition(),
new OpenLayers.Control.Attribution(),
new OpenLayers.Control.PanZoomBar(),
new OpenLayers.Control.OverviewMap(),
new OpenLayers.Control.MousePosition(),
new OpenLayers.Control.LayerSwitcher()],
projection: 'EPSG:4326',
displayProjection: new OpenLayers.Projection("EPSG:2154"),
maxExtent: new OpenLayers.Bounds(257408.019880,6696351.951313,437613.880120,6838856.848687),
maxResolution: 'auto',
units: 'm'
//numZoomLevels: 12,
});
//============================================================================
// Choix des couches & servers
//============================================================================
//var osmLayer = new OpenLayers.Layer.OSM("OpenStreetMap");
//map.addLayer(osmLayer);
commune = new OpenLayers.Layer.MapServer("commune", "http://localhost/cgi-bin/mapserv?map=/var/www/mapserver/mapfile/commune1.map&",
{layers:"commune",
projection: new OpenLayers.Projection("EPSG:2154"),
"transparent": false,
visibility: true});
map.addLayer(commune);
//============================================================================
// Fonction POP UP
//============================================================================
info = new OpenLayers.Control.WMSGetFeatureInfo({
url: "/cgi-bin/mapserv",
maxFeatures: 1,
title: 'Identify features by clicking',
queryVisible: true,
layers: [commune],
vendorParams: {
map: "commune.map",
},
eventListeners: {
getfeatureinfo: function(event) {
map.addPopup(new OpenLayers.Popup.FramedCloud(
"chicken",
map.getLonLatFromPixel(event.xy),
null,
event.text,
null,
true
)); //map.addPopup
} // getfeatureinfo
} // eventListeners
});
map.addControl(info);
info.activate();
//============================================================================
// ZOOM initial de l'étendue de la carte
//============================================================================
//map.setCenter(new OpenLayers.LonLat(-1,47), 8);
map.zoomToMaxExtent();
//============================================================================
// FIN du init
//============================================================================
};
</script>
</head>
<body onload="load()">
<div id='map' style='width: 50%; height: 75%;'>
</body>
</html>Dernière modification par diouckk (Tue 01 May 2012 14:21)
Hors ligne
#2 Thu 10 May 2012 22:45
- gallab
- Participant occasionnel
- Lieu: Marseille
- Date d'inscription: 28 May 2010
- Messages: 19
Re: Openlayers Pop Up
Salut,
le post date un peu..mais je vais essayer de t'apporter mon aide.
Pour les popups, une piste: regarde le code des exemples présent dans le zip d'openlayers
(examples/popups.html)
Sinon je viens de tester ton code, il affichait rien alors j'ai changé par rapport à ce que j'utilise moi :
ds les paramètres de la map..
-> si tu utilises OpenStreetMap alors il faut utilisé le sys. de proj google mercator (900913) :
Code:
projection: 'EPSG:900913', // pas 4326 si t'utilises le fond OSM
displayProjection: new OpenLayers.Projection("EPSG:2154"),
maxExtent: new OpenLayers.Bounds(257408.019880,6696351.951313,437613.880120,6838856.848687),sinon bizarrement il semble que tu veuilles zoomer sur la Somalie..
Code:
//map.setCenter(new OpenLayers.LonLat(-1,47), 8);
map.zoomToMaxExtent();pour pouvoir utiliser des coordonnées normaux en WGS84 (EPSG:4326) voilà le code:
Code:
map.zoomToMaxExtent(); // ici j'ai inversé l'ordre d'appels des fonctions maxextent et setcenter
map.setCenter( new OpenLayers.LonLat(-71.147, 42.472).transform( new OpenLayers.Projection("EPSG:4326"), new OpenLayers.Projection("EPSG:900913") ), 12 );à+
Gallien
Hors ligne


