Страница 1 из 1
OpenLayers bbox
Добавлено: 04 окт 2014, 13:22
Stik
Можно ли в OpenLayers настроить отображение небольшой части карты, чтобы загружался (rendering) не весь мир, а город (область)? Кажется это осуществляется OpenLayers.Bounds. Локально index.htm и подключены OpenLayers и OSM.
Re: OpenLayers bbox
Добавлено: 04 окт 2014, 17:00
Denis Rykov
Можно, посмотрите свойства maxExtent и restrictedExtent
[ Сообщение с мобильного устройства ]
Re: OpenLayers bbox
Добавлено: 05 окт 2014, 02:39
Stik
Ограничил перемещение restrictedExtent, но при зуммировании половина России подгружается. Никакой экономии ресурсов и трафика. Хотелось бы, жесткого ограничения загружаемой территории. Грубо говоря, прямоугольник (box) и ничего лишнего.
Re: OpenLayers bbox
Добавлено: 05 окт 2014, 17:42
Denis Rykov
Если я вас правильно понял, то нужно что-то типа такого:
Код: Выделить всё
var cityBounds = [9309214.53507, 7036210.09355, 9330603.57335, 7058304.62827];
var map = new OpenLayers.Map({
div: "map",
restrictedExtent: cityBounds,
maxExtent: [-20037508.34, -20037508.34, 20037508.34, 20037508.34]
});
var base = new OpenLayers.Layer("", { isBaseLayer: true, displayInLayerSwitcher: false });
var osm = new OpenLayers.Layer.OSM("OSM", [
"http://a.tile.openstreetmap.org/${z}/${x}/${y}.png",
"http://b.tile.openstreetmap.org/${z}/${x}/${y}.png",
"http://c.tile.openstreetmap.org/${z}/${x}/${y}.png"
], {
tileOrigin: new OpenLayers.LonLat(-20037508.34, 20037508.34),
maxExtent: cityBounds,
maxResolution: 156543.03390625,
displayOutsideMaxExtent: false,
isBaseLayer: false
});
map.addLayers([base, osm]);
map.zoomToExtent(cityBounds);