Подтвердить что ты не робот

Как удалить стандартные элементы управления в OpenLayers-Map?

Я использую OpenLayers и хочу создать другое навигационное управление в верхней левой части. Я знаю, как добавлять элементы управления, но эта навигация добавляется по умолчанию при создании OpenLayers-Map. Поэтому я хочу удалить этот элемент управления, чтобы добавить его. Я уже знаю, что по умолчанию используется OpenLayers.Control.PanZoom.

4b9b3361

Ответ 1

Объект карты имеет свойство controls, которое представляет собой массив объектов OpenLayers.Control. Если это свойство явно не задано, OpenLayers предположит, что вам нужен набор управления по умолчанию, включая OpenLayers.Control.Navigation(), OpenLayers.Control.PanZoom(), OpenLayers.Control.ArgParser() и OpenLayers.Control.Attribution().

Чтобы удалить PanZoom или любой другой элемент управления по умолчанию, просто установите массив свойств controls при создании объекта Map. Вот пример кода:

var map = new OpenLayers.Map('map', {
    controls: [
        new OpenLayers.Control.Navigation(),
        new OpenLayers.Control.ArgParser(),
        new OpenLayers.Control.Attribution()
    ]
});

Вот живой example.

Обратите внимание, что, установив свойство controls, вы не получите никаких объектов Control по умолчанию. Любые элементы управления, которые вам нужны, должны быть добавлены вручную.

Вот ссылка на исходный код объекта Map, если вы хотите увидеть, как он работает для вас.

Ответ 2

Я бы ожидал, что map.removeControl(OpenLayers.Control.PanZoom) будет работать, но, по-видимому, нет.