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é ?

Annonce

GEODATA DAYS 2024

#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&amp;v=2&amp;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

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9860
Site web

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

René-Luc D'Hont a écrit:

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

 

Pied de page des forums

Powered by FluxBB