OpenLayers: OpenLayers.ImgPath

Решенные задачи, первая запись - описание решения.
Ответить
Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3321
Зарегистрирован: 11 апр 2008, 21:09
Статьи: 33
Проекты: 9
Репутация: 494
Ваше звание: Author
Контактная информация:

OpenLayers: OpenLayers.ImgPath

Сообщение Denis Rykov » 08 окт 2011, 20:12

Давным-давно, когда библиотека 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.
Spatial is now, more than ever, just another column- The Geometry Column.

Ответить

Вернуться в «Рецепты»