Как вы можете установить экстент XYZ-источника, используя openlayers 6 - PullRequest
0 голосов
/ 06 февраля 2020

У меня есть карта с фоновым слоем Европы и другим (XYZ) слоем, отображающим гораздо меньшую площадь. Как можно избежать сообщения об ошибке 404 из слоя XYZ для плиток, которые не выходят, я попытался передать экстент: [-0,795668404302292, -0,7049491016945445,48.78018752203186,48,83999044180076], но это не работает.

1 Ответ

0 голосов
/ 06 февраля 2020

В большинстве случаев проще установить экстент на слое.

Чтобы ограничить экстент источника, вы должны предоставить ему собственную сетку плиток, например

var defaultTileGrid = createXYZ();

var source = new XYZ({
  url: .... ,
  tileGrid: new TileGrid({
    origin: defaultTileGrid.getOrigin(0),
    resolutions: defaultTileGrid.getResolutions(),
    extent: extent
  })
});

Границы должны быть в той же проекции, что и источник

Так что для EPSG: 4326 вам потребуется

var defaultTileGrid = createXYZ({extent: getProjection('EPSG:4326').getExtent()});

var source = new XYZ({
  url: .... ,
  tileGrid: new TileGrid({
    origin: defaultTileGrid.getOrigin(0),
    resolutions: defaultTileGrid.getResolutions(),
    extent: [-0.795668404302292, 48.78018752203186, -0.7037491016945445, 48.83999044180076] 
  })
});
...