首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >指定tilegrid时,Openlayers 4贴图模糊

指定tilegrid时,Openlayers 4贴图模糊
EN

Stack Overflow用户
提问于 2017-07-18 19:30:07
回答 1查看 970关注 0票数 0

我正在从OL2升级到OL4。vegkart.no上运行的是OL2版本。

我遇到了一个问题,当指定tileGrid时,映射变得模糊。如果没有tileGrid,地图看起来很清晰,但绘制的要素会发生偏移。

Here是一个带有比较的最小版本。

代码语言:javascript
复制
ol.proj.setProj4(proj4);
proj4.defs('EPSG:25833', '+proj=utm +zone=33 +ellps=GRS80 +units=m +no_defs');
const EPSG25833 = new ol.proj.Projection({
    code: 'EPSG:25833',
    extent: [-25e5, 35e5, 3045984, 9045984]
});

var map = new ol.Map({
    target: 'map',
    layers: [
        new ol.layer.Tile({
            source: new ol.source.XYZ({
                projection: EPSG25833,
                url: 'https://m{1-9}-nvdbcache.geodataonline.no/arcgis/rest/services/Trafikkportalen/GeocacheTrafikkJPG/MapServer/tile/{z}/{y}/{x}',
                maxZoom: 16,
                minZoom: 3,
                tileGrid: new ol.tilegrid.TileGrid({
                    extent: [-3438648.9692659, -2500000, 9984632.9692659, 9045984],
                    resolutions: [21674.7100160867, 10837.35500804335, 5418.677504021675, 2709.3387520108377, 1354.6693760054188, 677.3346880027094, 338.6673440013547, 169.33367200067735, 84.66683600033868, 42.33341800016934, 21.16670900008467, 10.583354500042335, 5.291677250021167, 2.6458386250105836, 1.3229193125052918, 0.6614596562526459, 0.33072982812632296],
                    origin: [-2500000, 9045984]
                })
            })
        })
    ],
    view: new ol.View({
        projection: EPSG25833,
        center: [600000,7225000],
        zoom: 3
    })
});

Here是磁贴的概述。

我找到了一个计算分辨率的例子。

代码语言:javascript
复制
const projectionExtent = EPSG25833.getExtent();
const size = ol.extent.getWidth(projectionExtent) / 256;
const resolutions = new Array(17);
const matrixIds = new Array(17);
for (let z = 0; z < 17; ++z) {
    // generate resolutions and matrixIds arrays for this WMTS
    resolutions[z] = size / Math.pow(2, z);
    matrixIds[z] = z;
}

当使用它时,地图是清晰的,但发生了变化。https://jsfiddle.net/computerlove/t3afh9v9/

是我漏掉了什么,还是这是个bug?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-27 15:07:41

与v2不同,v4中的视图分辨率不是从基本层获取的。如果希望视图使用与切片图层相同的分辨率,则必须使用配置视图

代码语言:javascript
复制
new ol.View({
  resolutions: tileSource.getTileGrid().getResolutions()
})
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45165564

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档