代码之家  ›  专栏  ›  技术社区  ›  Qaisa

使用Openlayers 3和Geoserver-无法查看内容

  •  0
  • Qaisa  · 技术社区  · 9 年前

    我正在尝试使用Openlayers 3显示两个图层,一个是格陵兰岛的地图,另一个是感兴趣的区域。两层都是平铺的。

    它似乎在工作,但我得到的都是透明的瓷砖,所以不知怎么的,我把视图放在了一个什么都没有的区域。我使用的是UTM 24N投影(这是所涉及的层的原始投影,因此不需要转换)。

    这是我的代码:

    var utm24_projection = new ol.proj.Projection({
          code: 'EPSG:32624',
          extent: [-396882, 6394710, 1280839.6, 9750153.2], 
          units: 'm',
          axisOrientation: 'neu'
     });
    
     ol.proj.addProjection(utm24_projection);
    
    
     layer1 = new ol.layer.Tile({
          source: new ol.source.TileWMS({
            url: 'http://www.ourmapserver.gl/geoserver/wms',
            params: {'LAYERS': 'ourcompany:greenland', 'TILED': true},
            serverType: 'geoserver',
          })
        });
    
      layer2 =  new ol.layer.Tile({
          //extent: [-13884991, 2870341, -7455066, 6338219],
          source: new ol.source.TileWMS({
            url: 'http://www.ourmapserver.gl/geoserver/wms',
            params: {'LAYERS': 'ourcompany:interestarea', 'TILED': true},
            //projection = ol.proj.get('EPSG:32624');
            serverType: 'geoserver'
          })
        });
    
      var layers = [
        layer1,
        layer2
      ];
      var map = new ol.Map({
        layers: layers,
        target: 'map',
        view: new ol.View({
          projection: utm24_projection,
          center: [-48864, 7491452],
          zoom: 4
        })  
      });
    

    当使用Web Mercator时,它运行良好。

    1 回复  |  直到 9 年前
        1
  •  1
  •   Qaisa    9 年前

    所以我找到了一个解决方案。

    首先,我从我的预测中删除了范围:

      var utm24_projection = new ol.proj.Projection({
          code: 'EPSG:32624',
          units: 'm',
          axisOrientation: 'neu'
      });
    

    然后在定义视图时,我只配置投影,但不配置中心或缩放。

    最后,我根据地图大小和边界调整视图:

    map.getView().fit(bounds, map.getSize());
    

    地图显示正确。