#1 Thu 23 May 2013 07:51
- watiss
- Juste Inscrit !
- Date d'inscription: 23 May 2013
- Messages: 1
Ajouter des markers ET Google Map bg avec OpenLayers
Bonjour à tous.
J'ai un problème fort embêtant que je n'arrive vraiment pas à résoudre :
En effet, je dois utiliser OpenLayers pour réaliser une carte sur laquelle je dois mettre des picto (des markers en fait) dans quelques différents endroits et lorsqu'on passe la souris sur ces pictos ça doit générer un pop up avec un url cliquable.
Le problème c'est que je voudrais mettre un Google Map Background dans mon OpenLayers et quand je fais ça, tant que j'ai pas ajouté mes markers avec leur fenêtre pop up, ça va. Mais dès que je crée une instance de layers, que j'y colle des markers et que j'attache le layer à ma carte, eh bien rien n’apparaît :'( J'ai passée énormément de temps dessus à regarder partout dans tous les forums, mais sans résultat satisfaisant et j'en a vraiment besoin en plus!!
Quelqu’un sur ce forum aurait-il une idée?
Merci d'avance.
PS : Voici mon code :
Code:
<html> <head> <!-- OpenLayers core js --> <script src="http://www.openlayers.org/dev/OpenLayers.js"></script> <script src="http://openlayers.org/api/OpenLayers.js"></script> <!-- OpenStreetMap base layer js --> <script src="http://www.openstreetmap.org/openlayers/OpenStreetMap.js"></script> <!-- Google Maps --> <script src="http://maps.google.com/maps/api/js?sensor=false"> </script> <script type="text/javascript"> function init() { //set up projections // World Geodetic System 1984 projection var WGS84 = new OpenLayers.Projection("EPSG:4326"); // WGS84 Google Mercator projection var WGS84_google_mercator = new OpenLayers.Projection("EPSG:900913"); //Initialize the map //creates a new openlayers map in the <div> html element id map var map = new OpenLayers.Map ("map", { controls:[ //allows the user pan ability new OpenLayers.Control.Navigation(), //displays the pan/zoom tools new OpenLayers.Control.PanZoom(), //displays a layer switcher new OpenLayers.Control.LayerSwitcher(), //displays the mouse position's coordinates in a <div> html element with new OpenLayers.Control.MousePosition({ div:document.getElementById("coordinates") }) ], projection: WGS84_google_mercator, displayProjection: WGS84 } ); //base layers var openstreetmap = new OpenLayers.Layer.OSM(); var google_maps = new OpenLayers.Layer.Google( "Google Maps", { numZoomLevels: 20 } ); var google_satellite = new OpenLayers.Layer.Google( "Google Satellite", { type: google.maps.MapTypeId.SATELLITE, numZoomLevels: 20 } ); //wfs overlay var wfs_layer = new OpenLayers.Layer.Vector("Blocks", { strategies: [new OpenLayers.Strategy.BBOX()], projection: WGS84, protocol: new OpenLayers.Protocol.WFS({ version: "1.1.0", url: "http://hazardmapping.com/geoserver/wfs", featureNS : "http://www.opengeospatial.net/cite", featureType: "testblocks", }) }); map.addLayers([openstreetmap, google_maps, google_satellite, wfs_layer]); //add markers var couche_markers = new OpenLayers.Layer.Markers("Markers"); var dimension_icon = new OpenLayers.Size(24,24); var offset_icon = new OpenLayers.Pixel(-(dimension_icon.w/2), -dimension_icon.h); var icon = new OpenLayers.Icon('10.jpg', size, offset); lonlat=new OpenLayers.LonLat(2.44834,48.87729).transform( new OpenLayers.Projection("EPSG:4326"), // transform from WGS 1984 new OpenLayers.Projection("EPSG:900913") // to Spherical Mercator Projection ); var mon_marker=new OpenLayers.Marker(lonlat, icon); markers.addMarker(mon_marker); map.addLayer(markers); // map extent var mapextent = new OpenLayers.Bounds(-123.17341, 49.24343, -123.06183, 49.29899).transform(WGS84, map.getProjectionObject()); map.zoomToExtent(mapextent); } </script> </head> <body onload="init()"> <div id="map" style="width:500px; height:500px;"></div> <div id="coordinates"></div> </body> </html>
Hors ligne
#2 Thu 23 May 2013 09:03
- Pasquinel
- Juste Inscrit !
- Date d'inscription: 23 May 2013
- Messages: 1
Re: Ajouter des markers ET Google Map bg avec OpenLayers
Bonjour,
je pense qu'il y a deux problèmes dans votre code:
1- spécifier que la propriéte isBaseLayer de Google Map Background est à "true", et que celle de vos marqueurs est à "false".
2- Dès qu'on ajoute un layer GoogleMap, la projection de la carte sera 900913. Si vous essayer d'afficher des points en WGS84, ils seront mal placés (très proche du point 0,0 en fait)
J'espère que ça pourra vous aider.
Hors ligne
#3 Tue 28 May 2013 12:20
- 13gilles
- Participant occasionnel
- Date d'inscription: 12 Aug 2010
- Messages: 43
Re: Ajouter des markers ET Google Map bg avec OpenLayers
Il me semble que Google interdit d'utiliser ses données cartographiques en dehors de ses logiciels (les API GoogleMaps, Google Earth et autres)
voir https://developers.google.com/maps/terms?hl=en
Hors ligne