#1 Mon 22 September 2008 18:26
- icadedt
- Participant assidu
- Lieu: ici et là
- Date d'inscription: 21 Jul 2006
- Messages: 478
OpenLayers et Google Maps
Bonjour, voici le code de la page html openlayers / donnees googleMaps
est il possible de determiner la projection, forcer les donnees googlemaps à etre projetees en lambert 2 par exemple ?
merci d'avance
Code:
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>OpenLayers Google Layer Example</title> <link rel="stylesheet" href="../theme/default/style.css" type="text/css" /> <style type="text/css"> #map { width: 512px; height: 512px; border: 1px solid black; } </style> <!-- this gmaps key generated for http://openlayers.org/dev/ --> <script src='http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAjpkAC9ePGem0lIq5XcMiuhR_wWLPFku8Ix9i2SXYRVK3e45q1BQUd_beF8dtzKET_EteAjPdGDwqpQ'></script> <script src="../lib/OpenLayers.js"></script> <script type="text/javascript"> var map; function init() { map = new OpenLayers.Map('map'); map.addControl(new OpenLayers.Control.LayerSwitcher()); var gphy = new OpenLayers.Layer.Google( "Google Physical", {type: G_PHYSICAL_MAP} ); var gmap = new OpenLayers.Layer.Google( "Google Streets" // the default ); var ghyb = new OpenLayers.Layer.Google( "Google Hybrid", {type: G_HYBRID_MAP} ); var gsat = new OpenLayers.Layer.Google( "Google Satellite", {type: G_SATELLITE_MAP} ); map.addLayers([gphy, gmap, ghyb, gsat]); map.setCenter(new OpenLayers.LonLat(10.2, 48.9), 5); } </script> </head> <body onload="init()"> <h1 id="title">Google Layer Example</h1> <div id="tags"></div> <p id="shortdesc"> Demonstrate use of the various types of Google layers. </p> <div id="map"></div> <div id="docs"> For best performance, you must be using a version of the Google Maps API which is v2.93 or higher. In order to use this version of the API, it is best to simply set your application to use the string "v=2" in the request, rather than tying your application to an explicit version. </div> </body> </html>
Hors ligne
#2 Mon 22 September 2008 19:06
Re: OpenLayers et Google Maps
Bonsoir,
Non il n'est pas possible de reprojeter les données Google Map au sein d'OL. Vous devez pour une bonne utilisation reprojeter vos données en Google Mercator et ne pas utiliser du WGS 84. Auquel cas vous aurez un décalage entre vos couches et le fond google.
Notez que si vous utilisez du KML le standard implique que vos données géographique doivent être en WGS84.
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 Tue 23 September 2008 10:22
- René-Luc D'Hont
- Participant assidu
- Date d'inscription: 7 Nov 2006
- Messages: 328
- Site web
Re: OpenLayers et Google Maps
Bonjour,
Il est envisageable de reprojeter des données au sein du navigateur, c'est à dire en JavaScript avec OpenLayers, à l'aide de Proj4JS. Par contre la reprojection ne peut se faire que sur des données vectorielles. Mais pour cela, il faudrait que vous soyez plus précis dans votre demande :
Quel fond de carte souhaitez vous utiliser Google Maps ou le votre ?
Dans quel système de projection souhaiter vous afficher votre carte, spherical mercator ou lambert 2 ?
Hors ligne
#4 Tue 23 September 2008 18:55
- icadedt
- Participant assidu
- Lieu: ici et là
- Date d'inscription: 21 Jul 2006
- Messages: 478
Re: OpenLayers et Google Maps
Bonjour,
Il est envisageable de reprojeter des données au sein du navigateur, c'est à dire en JavaScript avec OpenLayers, à l'aide de Proj4JS. Par contre la reprojection ne peut se faire que sur des données vectorielles. Mais pour cela, il faudrait que vous soyez plus précis dans votre demande :
Quel fond de carte souhaitez vous utiliser Google Maps ou le votre ?
Dans quel système de projection souhaiter vous afficher votre carte, spherical mercator ou lambert 2 ?
les fonds de cartes de google maps
Hors ligne
#5 Wed 24 September 2008 09:15
- René-Luc D'Hont
- Participant assidu
- Date d'inscription: 7 Nov 2006
- Messages: 328
- Site web
Re: OpenLayers et Google Maps
Donc il est tout à fait possible de faire de l'affichage de données par dessus. Si ce sont des données vectoriels c'est assez simples, si c'est du wms ça relève du hack.
Donc pour commencer, il faut télécharger Proj4JS disponible ici : http://proj4js.org/
Il faut télécharger l'ensemble des fichiers de la lib, un par un, ou alors utiliser un client svn comme TortoiseSVN.
Ensuite vous pouvez récupérer les définitions de projections non-incluses sur spatialreference.org. Par exemple: la définition de la projection RGF 93 / Lambert 93 a pour code EPSG:2154 et sa définition Proj4JS est ici.
Ensuite il faut dans OpenLayers maîtriser la création de Format OpenLayers en définissant la projection de départ et la projection de sortie.
Et donc pour la carte, il faut utiliser la projection spherical mercator (EPSG:900913) dont voici l'exemple.
Bon courage et vous pouvez me contacter directement.
Hors ligne