Вопрос:
Допустим, мой сервер плиток имеет только изображения плиток для масштабов 8, 9 и 10.
Когда клиент начинает с масштабирования 11, я хочу, чтобы Openlayers получал масштаб 10 (максимально доступный зум на сервере) и растянуть плитку в клиенте. Итак, я хочу, чтобы пользователь увидел что-то, хотя и с более низким качеством, даже при увеличении 11.
Возможно ли это?
Более подробное объяснение:
(Более подробное объяснение следует в если вопрос не имеет смысла)
По умолчанию, если Javascript клиент запускает fre sh с zoom 11, ничего не отображается (плохо), но если клиент запускается с zoom 10, и затем увеличивает до 11 уже извлеченные плитки масштаба 10 растягивается и отображается (намного лучше), все еще пытаясь получить плитки 11 увеличения и получая 404 с сервера.
Мой лучший была попытка установить опцию tileLoadFunction , поскольку она имеет значения [z, x, y] и, по-видимому, может установить sr c изображения плитки. Я говорю «по-видимому», потому что я не пробовал это. Проблема в том, что уменьшения значения z недостаточно, я должен также рассчитать [x, y] для нового z, что сложно, и я думаю, что мне следует избегать делать это вручную.
Здесь код для слоя:
let heatmapLayer = new TileLayer({
visible: true,
opacity: 0.75,
source: new XYZ({
tileSize: [512, 512],
url: "http://myserver/heatmap-z{z}-x{x}-y{y}.png",
}),
});