我正在处理的应用程序应该允许用户在各种投影中显示图层(到目前为止我只尝试过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
属性的事件对象 . 边界在原始投影中 .
我的问题是:如何正确设置新投影?这样做甚至是个好主意吗?