Настроить элемент управления OpenLayers - PullRequest
2 голосов
/ 01 ноября 2009

Как я могу легко настроить элементы управления картой OpenLayers? Или, по крайней мере, как я могу минимизировать высоту элементов управления?

Спасибо.

PS. Есть ли переопределение CSS?

Ответы [ 5 ]

5 голосов
/ 11 мая 2010

Вы можете создать подкласс любого элемента управления openLayers. Я только что сделал 'zoom-slider', подклассифицировав PanZoomBar (panZoomBar.js), переопределив метод draw () и закомментировав все элементы кнопки, просто оставив слайдер zoom .. как это:

function zoomSlider(options) {

    this.control = new OpenLayers.Control.PanZoomBar(options);

    OpenLayers.Util.extend(this.control,{
        draw: function(px) {
            // initialize our internal div
            OpenLayers.Control.prototype.draw.apply(this, arguments);
            px = this.position.clone();

            // place the controls
            this.buttons = [];

            var sz = new OpenLayers.Size(18,18);
            var centered = new OpenLayers.Pixel(px.x+sz.w/2, px.y);

            this._addButton("zoomin", "zoom-plus-mini.png", centered.add(0, 5), sz);
            centered = this._addZoomBar(centered.add(0, sz.h + 5));
            this._addButton("zoomout", "zoom-minus-mini.png", centered, sz);
            return this.div;
        }
    });
    return this.control;
}

var panel = new OpenLayers.Control.Panel();
panel.addControls([
    new zoomSlider({zoomStopHeight:11}),
    new OpenLayers.Control.LayerSwitcher({'ascending':false}),
]);
map.addControl(panel);
1 голос
/ 04 апреля 2010

Если вы говорите о PanZoomBar или ZoomBar, как уже упоминалось, вам нужно отредактировать zoomStopHeight. Однако вам не нужно редактировать OpenLayers.js.

new OpenLayers.Control.PanZoomBar({zoomStopHeight: 7})

Вы можете попробовать PanZoom, у которого нет панели.

1 голос
/ 24 февраля 2010

Существует CSS-файл, который может контролировать все команды CSS для openlayers, как правило .olZoombar {здесь} Вероятно, это самый простой способ отредактировать подобные вещи, иначе вы можете отредактировать фактический файл .js для элемента управления.

0 голосов
/ 19 ноября 2009

Взгляните сюда - http://geojavaflex.blogspot.com/ Я нахожусь в процессе показа, как сделать соответствующую настройку LayerSwitcher. Это может дать вам идеи о том, как делать то, что вы хотите.

На странице есть карта, показывающая, как работает элемент управления, и в последующих публикациях будет подробно обсуждаться код.

Если вас интересует только код, посмотрите исходный код страницы и найдите ссылку на CustomLayerSwitcher.js для настроенной версии переключателя.

0 голосов
/ 02 ноября 2009

Чтобы свернуть ZoomBar, найдите zoomStopHeight в OpenLayers.js и отредактируйте его, как хотите.

Дополнительная ссылка: Ссылка .

...