使用openlayers3创建EPSG:28992地图

时间:2015-06-19 12:12:49

标签: jquery openlayers-3

我正在尝试使用eps:28992设置中的自定义wmts图层创建openlayers3地图。我之前使用过openlayers 2,但我没有成功。

我尝试将eps图层添加到proj,但它似乎没有做任何事情,有一个错误:Uncaught TypeError:无法读取属性' 0'为null。 并且没有要求任何瓷砖。

var projection = ol.proj.get('EPSG:28992');
var projectionExtent = projection.getExtent();
var resolutions = [3440.640, 1720.320, 860.160, 430.080, 215.040, 107.520, 53.760, 26.880, 13.440, 6.720, 3.360, 1.680, 0.840, 0.420, 0.210];
var matrixIds = new Array(26);
   for (var i=0; i<26; ++i) {
    matrixIds[i] = "EPSG:28992:" + i;
}

var attribution = new ol.Attribution({
  html: 'Tiles &copy; <a href="http://services.arcgisonline.com/arcgis/rest/' +
      'services/Demographics/USA_Population_Density/MapServer/">ArcGIS</a>'
});

lonlat = result.center.split(',');


var map = new ol.Map({


    view: new ol.View({
        center: [lonlat[0],lonlat[1]],
        zoom: result.zoom
    }),

    layers: [
         new ol.layer.Tile({
          opacity: 0.7,
          source: new ol.source.WMTS({
            attributions: [attribution],
            url: "http://geodata.nationaalgeoregister.nl/wmts/",
            name: "Basis Registratie Topografie",
            layer: "brtachtergrondkaart",
            matrixSet: "EPSG:28992",
            format: 'image/png',
            projection: projection,
            tileGrid: new ol.tilegrid.WMTS({
              origin: ol.extent.getTopLeft(projectionExtent),
              resolutions: resolutions,
              matrixIds: matrixIds
            }),
            style: 'default'
          })
        })
    ],
    target: target
});

分辨率en matrixIds在openlayers2中工作,所以我直接复制了它们,我想我错过了一些非常小的东西,有没有想法?

P.S。我使用以下行将epsg:28992添加到proj4.js:

proj4.defs("EPSG:28992","+proj=sterea +lat_0=52.15616055555555 +lon_0=5.38763888888889 +k=0.9999079 +x_0=155000 +y_0=463000 +ellps=bessel +towgs84=565.417,50.3319,465.552,-0.398957,0.343988,-1.8774,4.0725 +units=m +no_defs");

关于卡斯珀

1 个答案:

答案 0 :(得分:1)

此处的问题是,ol.proj.Projection#getExtent()将返回null,用于从Proj4js配置的投影。你不需要Proj4js来使你的地图工作,但是你需要正确的地块来源。配置WMTS层的最简单方法是请求功能(http://geodata.nationaalgeoregister.nl/wmts/?request=GetCapabilities)并使用ol.format.WMTSCapabilitiesol.source.WMTS.optionsFromCapabilitiesol.source.WMTS实例创建选项。但您也可以手动配置图层。查看GetCapabilities响应,我发现正确的来源是[-285401.92 903402.0]