Страница 1 из 1

OpenLayers: подобрать resolutions и maxExtent

Добавлено: 30 ноя 2012, 13:43
delirivm
Здравствуйте. Я все пытаюсь подобрать нужные значения параметров resolutions и maxExtent. Задача состоит вот в чем: существует картинка 5000x5000 пикселей, с помощью скрипта я разрезал ее на тайлы. Тайлы хранятся в статичных файлах (их размер стандартный, 256x256 пикселей). Суть вот в чем: число 5000 на 256 делится с остатком, поэтому тайлы в самой правой «колонке» получились как бы обрезанными («лишние» области остались залиты черным цветом).

Уровней (или зумов) я сделал 4 штуки, умножая размер картинки соответственно на 1, 0.8, 0.6 и 0.4. В итоге получилась следующая таблица:
  • 5000 x 1 = 5000 (вся картинка приближена максимально, колонок 19, строк 19)
  • 5000 x 0.8 = 4000 (картинка чуть отдалена, колонок 15, строк 15)
  • 5000 x 0.6 = 3000 (картинка отдалена еще сильнее, колонок 11, строк 11)
  • 5000 x 0.4 = 2000 (картинка отдалена максимально, колонок 7, строк 7)
Под «строками» и «колонками» я подразумевал кол-во тайлов, которое необходимо отобразить на колонку или строку, если вообразить, что тайлы образуют собой таблицу. Еще надо учесть, что «крайние» тайлы залиты черным цветом, поэтому эти черные области нужно как-нибудь закрыть или выдвинуть за viewport.

Следующий кусок кода более менее работает только на первом (1 = 5000) и последнем (0.4 = 2000) уровнях, на остальных он почему-то не работает как положено:

Код: Выделить всё

var extend = [0, 0, 5000, 5000]; // или [0, 0, 2000, 2000]
var map = new OpenLayers.Map ({
div: 'map',
layers: [
new OpenLayers.Layer.XYZ ('New Layer', '/tiles/${z}/${x}/${y}.png', {
resolutions: [2.5, 2, 1.5, 1] // или [1, 0.8, 0.6, 0.4]
})
],
maxExtent: new OpenLayers.Bounds (extend),
restrictedExtent: new OpenLayers.Bounds (extend)
});
complexMap.zoomToMaxExtent ();

Проверьте пожалуйста, правильно ли я указал resolutions и maxExtent. Если необходимы скриншоты, опубликую.

Re: OpenLayers: подобрать resolutions и maxExtent

Добавлено: 01 дек 2012, 14:44
delirivm
Помогите, пожалуйста, у меня вся работа из-за этого встала.

Re: OpenLayers: подобрать resolutions и maxExtent

Добавлено: 02 дек 2012, 14:30
delirivm
Проблема все еще актуальна.