我正在处理的应用程序应该允许用户在各种投影中显示图层(到目前为止我只尝试过WMS图层)(当前 Map 中的所有图层都具有相同的投影) . 所以我的目标是动态地在现有 Map 对象上设置投影 - 取决于用户的选择 - 以避免每次都重新创建整个 Map .

我试过在 Map 和基础层上设置投影...

var newProjection = new OpenLayers.Projection(newEPSG);
map.baseLayer.projection = newProjection;
map.setOptions({
   projection: newProjection,
   displayProjection: newProjection
});

问题是GetMap WMS请求在原始投影中具有BBOX参数 - 因此它们会失败 . 我试图调试OpenLayers代码,并将问题跟踪到 TileManager 类的 queueTileDraw 方法 . 该方法接收具有 bounds 属性的事件对象 . 边界在原始投影中 .

我的问题是:如何正确设置新投影?这样做甚至是个好主意吗?