我正在处理的应用程序应该允许用户在各种投影中显示图层(到目前为止我只尝试过WMS图层)(当前地图中的所有图层都具有相同的投影)。因此,我的目标是根据用户的选择动态设置现有地图对象上的投影,以避免每次都重新创建整个地图。
我已尝试在地图和基础图层上设置投影...
var newProjection = new OpenLayers.Projection(newEPSG);
map.baseLayer.projection = newProjection;
map.setOptions({
projection: newProjection,
displayProjection: newProjection
});
问题是GetMap WMS请求在原始投影中具有BBOX参数 - 因此它们会失败。我尝试调试OpenLayers代码,并将问题跟踪到queueTileDraw
类的TileManager
方法。该方法接收具有bounds
属性的事件对象。界限在原始投影中。
我的问题是:如何正确设置新投影?这样做甚至是个好主意吗?