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. Если необходимы скриншоты, опубликую.