Страница 1 из 1

OpenLayers: OpenLayers.ImgPath

Добавлено: 08 окт 2011, 20:12
Denis Rykov
Давным-давно, когда библиотека OpenLayers еще не использовала CSS для управления стилями контролов, а все настройки их внешнего вида были представлены внутри javascript кода, свойство OpenLayers.ImgPath использовалось для указания пути до того места, где находится каталог с изображениями кнопок контролов. Фактически данное свойство и по сей день не утратило своей значимости, так как один из таких old-style контролов - OpenLayers.Control.PanZoom - используется и по сей день в качестве дефолтного.

Посмотрим, как свойство OpenLayers.ImgPath используется на практике. Откроем исходный код контрола OpenLayers.Control.PanZoom, расположенный в файле PanZoom.js, видим:

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

_addButton:function(id, img, xy, sz) {
        var imgLocation = OpenLayers.Util.getImagesLocation() + img;
        ... 
Открываем файл Util.js и находим следующие строки:

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

OpenLayers.Util.getImagesLocation = function() {
    return OpenLayers.ImgPath || (OpenLayers._getScriptLocation() + "img/");
}; 
Из приведенных фрагментов кода назначение OpenLayers.ImgPath очевидно, кроме того, OpenLayer.ImgPath может указывать и на удаленный каталог, как в этом примере.

При создании современных преложений рекомендуется не использовать описанный выше тип контрлов, а опираться на современные. Так, в качестве замены PanZoom стоит воспользоваться кобинацией из двух контролов, а именно PanPanel и ZoomPanel.