#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


