¿Cómo agrego una capa base con dos proyecciones diferentes?
He agregado una capa superpuesta con una proyección diferente (EPSG: 4326), pero necesito agregar una capa base con varias proyecciones
- mapas de Google
- Mi capa vectorial con EPSG: proyección 4326
Puedo ver que todo está bien con Google Maps, pero cuando cambio la capa base a EPSG: 4326 capa, todo es blanco.
window.onload = function init(){
var lon = 84;
var lat = 28;
var zoom = 8;
var url = "http://10.6.7.6/geoserver/wms";
var mapControls = [
new OpenLayers.Control.Navigation(),
new OpenLayers.Control.PanZoomBar(),
new OpenLayers.Control.LayerSwitcher({'ascending':false}),
new OpenLayers.Control.ScaleLine(),
new OpenLayers.Control.MousePosition(),
new OpenLayers.Control.OverviewMap(),
new OpenLayers.Control.KeyboardDefaults()
];
var map = new OpenLayers.Map(
'map',
{
numZoomLevels: 21,
projection: new OpenLayers.Projection("EPSG:900913"),
displayProjection: new OpenLayers.Projection("EPSG:4326"),
controls: mapControls
});
var dsb = new OpenLayers.Layer.WMS(
"Nepal Border",
url,
{layers: 'GisData:IR'}
);
var gmap_gs = new OpenLayers.Layer.Google(
"Google Streets",// the default
{'sphericalMercator': true}
);
var dG = new OpenLayers.Layer.WMS(
"2G Down Sites",
url,
{layers: 'GisData:dG', transparent: "true",format: "image/png"},
{
isBaseLayer: false,
buffer: 0
});
map.addLayers([dsb, dG,gmap_gs]);
var proj = new OpenLayers.Projection("EPSG:4326");
var point = new OpenLayers.LonLat(lon,lat);
point.transform(proj, map.getProjectionObject());
map.setCenter(point, zoom);
}
fuente
Configure su capa WMS sin ninguna referencia a 900913 (suponiendo que sus datos estén en 4326). Luego, cuando agregue la capa a OpenLayers, asegúrese de haber configurado la proyección del mapa en 900913 (o simplemente asegúrese de agregar Google Maps primero). Luego, cuando agrega la capa WMS, OpenLayers solicitará los datos en la proyección del mapa (900913) y GeoServer reproyectará de 4326 a 900913 sobre la marcha.
fuente
En general, esto no es posible ya que OpenLayers establece la proyección del mapa desde la capa base.
Una posible solución es usar un WMS en cascada como GeoServer para reproyectar una de las capas base de una a otra proyección.
fuente
Acabo de aplicar el parche a ol 2.13.1 (de la etiqueta)
El último archivo de parche de trac no funcionó cuando no se proporcionó el contenido restringido, así que también lo arreglé.
Puede obtenerlo aquí, junto con un ejemplo de texto:
https://github.com/glferri/ol2-reproj-2.13.1/blob/master/OL.Reproject_2.13.1_fixRestrictedExtent.patch
fuente