OpenLayers: OpenLayers.Map.theme

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

OpenLayers: OpenLayers.Map.theme

Сообщение Denis Rykov » 09 окт 2011, 10:53

Очевидно, что при использовании 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 файл.
Spatial is now, more than ever, just another column- The Geometry Column.

Ответить

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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 6 гостей