Jak dodać podkładkę z dwoma różnymi rzutami?
Dodałem nakładkę z inną projekcją (EPSG: 4326), ale muszę dodać warstwę podstawową z różnymi projekcjami
- mapy Google
- Moja warstwa wektorowa z projekcją EPSG: 4326
Widzę, że wszystko jest w porządku z Mapami Google, ale po zmianie warstwy podstawowej na EPSG: 4326 wszystko jest białe.
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);
}
źródło
Skonfiguruj warstwę WMS bez żadnego odniesienia do 900913 (zakładając, że Twoje dane to 4326). Następnie, gdy dodajesz warstwę do OpenLayers, upewnij się, że ustawiłeś rzut mapy na 900913 (lub po prostu pamiętaj, aby najpierw dodać Mapy Google). Następnie, gdy dodasz warstwę WMS, OpenLayers zażąda danych w odwzorowaniu mapy (900913), a GeoServer przerzuci w locie od 4326 do 900913.
źródło
Zasadniczo nie jest to możliwe, ponieważ OpenLayers ustawia rzut mapy z warstwy podstawowej.
Jednym z możliwych obejść jest zastosowanie kaskadowego WMS, takiego jak GeoServer, do ponownego rzutowania jednej z warstw podstawowych z jednej na drugą projekcję.
źródło
Właśnie nałożyłem łatkę na OL 2.13.1 (z tagu)
Ostatni plik łaty ze śledzenia nie działał, gdy nie podano żadnego ograniczeniaExtent, więc również go naprawiłem.
Możesz go pobrać tutaj wraz z przykładem tekstowym:
https://github.com/glferri/ol2-reproj-2.13.1/blob/master/OL.Reproject_2.13.1_fixRestrictedExtent.patch
źródło