OpenLayers bbox

Не знаете, где задать вопрос? Задавайте здесь.
Ответить
Stik
Новоприбывший
Сообщения: 8
Зарегистрирован: 04 окт 2014, 13:02
Репутация: 0

OpenLayers bbox

Сообщение Stik » 04 окт 2014, 13:22

Можно ли в OpenLayers настроить отображение небольшой части карты, чтобы загружался (rendering) не весь мир, а город (область)? Кажется это осуществляется OpenLayers.Bounds. Локально index.htm и подключены OpenLayers и OSM.

Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

Re: OpenLayers bbox

Сообщение Denis Rykov » 04 окт 2014, 17:00

Можно, посмотрите свойства maxExtent и restrictedExtent

[ Сообщение с мобильного устройства ]
Spatial is now, more than ever, just another column- The Geometry Column.

Stik
Новоприбывший
Сообщения: 8
Зарегистрирован: 04 окт 2014, 13:02
Репутация: 0

Re: OpenLayers bbox

Сообщение Stik » 05 окт 2014, 02:39

Ограничил перемещение restrictedExtent, но при зуммировании половина России подгружается. Никакой экономии ресурсов и трафика. Хотелось бы, жесткого ограничения загружаемой территории. Грубо говоря, прямоугольник (box) и ничего лишнего.

Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

Re: OpenLayers bbox

Сообщение Denis Rykov » 05 окт 2014, 17:42

Если я вас правильно понял, то нужно что-то типа такого:

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

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);
Spatial is now, more than ever, just another column- The Geometry Column.

Ответить

Вернуться в «Я новичок!»

Кто сейчас на конференции

Сейчас этот форум просматривают: Ahrefs [Bot], Bing [Bot] и 1 гость