OpenLayers: подобрать resolutions и maxExtent
Добавлено: 30 ноя 2012, 13:43
Здравствуйте. Я все пытаюсь подобрать нужные значения параметров resolutions и maxExtent. Задача состоит вот в чем: существует картинка 5000x5000 пикселей, с помощью скрипта я разрезал ее на тайлы. Тайлы хранятся в статичных файлах (их размер стандартный, 256x256 пикселей). Суть вот в чем: число 5000 на 256 делится с остатком, поэтому тайлы в самой правой «колонке» получились как бы обрезанными («лишние» области остались залиты черным цветом).
Уровней (или зумов) я сделал 4 штуки, умножая размер картинки соответственно на 1, 0.8, 0.6 и 0.4. В итоге получилась следующая таблица:
Следующий кусок кода более менее работает только на первом (1 = 5000) и последнем (0.4 = 2000) уровнях, на остальных он почему-то не работает как положено:
Проверьте пожалуйста, правильно ли я указал resolutions и maxExtent. Если необходимы скриншоты, опубликую.
Уровней (или зумов) я сделал 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. Если необходимы скриншоты, опубликую.