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

OpenLayers: OpenLayers.Map.theme

Добавлено: 09 окт 2011, 10:53
Denis Rykov
Очевидно, что при использовании CSS в качестве инструмента управления символикой контролов - ссылки на изображения, соответствующие контролам, должны быть прописаны в *.css файле. Однако, даже не указывая ссылку в html-файле на CSS-файл, OpenLayers корректно отображает контролы, использующие CSS. Возникает вопрос - как? На самом деле всё очень просто, у класса OpenLayers.Map есть свойство theme, которое хранит ссылку на css файл, автоматически загружаемый в проект. Открываем файл Map.js и внутри метода initialize находим следующий код:

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

this.theme = OpenLayers._getScriptLocation() + 'theme/default/style.css'; 
OpenLayers.Util.extend(this, options); 
Таким образом, если при создании объекта OpenLayers.Map свойство theme было не определено, то оно задаётся принудительно способом указанным выше. Если вы не хотите использовать дефолтный файл *.css, то необходимо при создании объекта OpenLayers.Map определить свойство OpenLayers.Map.theme следующим способом:

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

theme: null
и прописать в заголовке *.html-страницы ссылку на необходимый *.css файл.