openlayers: облачный слой имеет немного другую проекцию, чем bing или osm

у меня есть карта openlayers с разными слоями, такими как bing или openstreetmap, а также облачный слой. bing и openstreetmap показывают одно и то же местоположение. если я переключу слой на облако, положение прыгнет примерно на 200 м.

есть идеи, как это изменить?

var map, options;

        function init(){

        map = new OpenLayers.Map('map', {
        controls: [
                new OpenLayers.Control.Navigation(),
                new OpenLayers.Control.ScaleLine(),
                new OpenLayers.Control.Attribution(),
                new OpenLayers.Control.LayerSwitcher(),
                new OpenLayers.Control.PanZoomBar({minZoom: 12})

            ],
            minZoom:12,
            maxZoom:19          });


    var osm = new OpenLayers.Layer.OSM();


var binghybrid = new OpenLayers.Layer.Bing({
key: "MYKEY",
type: "AerialWithLabels",
name: "Satellite"});

var cloudmade = new OpenLayers.Layer.CloudMade("cloudmade", {
key: 'MYKEY',
styleId: 57439});


             map.addLayers([cloudmade, binghybrid, osm]);
    var epsg4326 = new OpenLayers.Projection("EPSG:4326");
    var center = new OpenLayers.LonLat(14.290556,48.303056).transform(epsg4326, map.getProjectionObject());
    map.setCenter(center, 14);

person user1285411    schedule 22.03.2012    source источник


Ответы (1)


Вам следует изменить исходный класс OpenLayers.Layer.CloudMade: изменить OpenLayers.Layer .TMS в OpenLayers.Layer.XYZ. Вот рабочий пример.

person drnextgis    schedule 22.03.2012
comment
Большое спасибо! Вы спасли мой день! - person milovanderlinden; 21.11.2012