Как я могу удалить стандартные элементы управления в OpenLayers-Map? - PullRequest
10 голосов
/ 09 августа 2010

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

Ответы [ 3 ]

20 голосов
/ 09 августа 2010

У объекта карты есть свойство с именем 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()
    ]
});

Вот пример в реальном времени .

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

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

3 голосов
/ 14 марта 2011

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

0 голосов
/ 21 сентября 2018

Обойдите массив элементов управления и затем удалите элемент управления масштабированием

map.getControls().forEach(function(control) {
  if (control instanceof ol.control.Zoom) {
    map.removeControl(control);
  }
}, this);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...