Annonce
Pour sécuriser votre compte sur les forums du GeoRezo, nous demandons de changer votre mot de passe.
Vous allez recevoir un message pour effectuer ce changement de mot de passe.
Merci de bien respecter les règles préconisées.
#1 Mon 18 May 2015 11:05
- Imanktb
- Participant occasionnel
- Date d'inscription: 17 Mar 2014
- Messages: 15
Définition base map Google Maps
Bonjour,
Je dois remplacer une couche basemap 'Global Imangery' avec une ocuche Google Maps.
Toutefois, si je la remplace par "Openlayers.Layer.Google" , ceci va prendre comme projection EPSG:3857 (900913) . Alors que moi j'utilise EPSG: 4326.
La couche 'Global Imagery' est définie ainsi :
Code:
layers: [ new OpenLayers.Layer.WMS("Global Imagery (OpenGeo) [Online]", "http://maps.opengeo.org/geowebcache/service/wms", { layers: "bluemarble" },{ isBaseLayer: true, visibility: false } ) ]
Y a-t-il un moyen de la remplacer par Google Maps avec EPSG:4326 , en gardant la même structure de définition de la couche ?
Merci d'avance
Hors ligne
#2 Tue 19 May 2015 11:10
Re: Définition base map Google Maps
Bonjour,
La réponse courte (il n'y aura pas de réponse longue de ma part ) est non ce n'est pas possible sauf à utiliser l'API Google Maps à 100 % sans passer par une API tiers (OpenLayers ou autre).
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 19 May 2015 12:23
- Imanktb
- Participant occasionnel
- Date d'inscription: 17 Mar 2014
- Messages: 15
Re: Définition base map Google Maps
Merci énormément Yves pour votre réponse. J'aimerais exploiter cette piste.
En fait, j'ai essayé dans ma page d'intégrer la balise : <script src="http://maps.google.com/maps/api/js?v=3&sensor=false"></script>
Et au niveau de la fonction GeoExplorer.js , la fonction createLayout fait appel à la couche "Google Satellite", définie ainsi :
Code:
createLayout:function(){ this.map=new OpenLayers.Map({ theme:null, allOverlays:false,controls:[ new OpenLayers.Control.PanPanel(), new OpenLayers.Control.ZoomPanel() ], projection:this.initialConfig.map.projection, units:this.initialConfig.map.units, maxResolution:this.initialConfig.map.maxResolution, maxExtent:this.initialConfig.map.maxExtent&&OpenLayers.Bounds.fromArray(this.initialConfig.map.maxExtent), numZoomLevels:this.initialConfig.map.numZoomLevels||20 }); this.createFeatureLayer(); this.map.addLayer(this.featureLayer); var mapConfig=this.initialConfig.map||{}; //=======Initiliasation couche "Google Satellite" var googleBaseMap = new OpenLayers.Layer.Google("Google Satellite", {'type' : google.maps.MapTypeId.HYBRID}); this.mapPanel=new GeoExt.MapPanel({ layout:"anchor",border:true,region:"center", map:this.map, center:mapConfig.center&&new OpenLayers.LonLat(mapConfig.center[0],mapConfig.center[1]), zoom:mapConfig.zoom, items:[{ xtype:"gx_zoomslider", vertical:true,height:100, plugins:new GeoExt.ZoomSliderTip({template:"<div>Zoom Level: {zoom}</div>"})}, this.createMapOverlay() ], //=======Ajout couche "Google Satellite" layers: [googleBaseMap]; });
Toutefois ce code ne fonctionne pas, je ne sais pas si c'est la définition de la couche n'est pas correcte.
Dernière modification par Imanktb (Tue 19 May 2015 12:23)
Hors ligne