#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