Уровней (или зумов) я сделал 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)
Следующий кусок кода более менее работает только на первом (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. Если необходимы скриншоты, опубликую.