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

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

3 ответов


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

удалить PanZoom или любой другой элемент управления по умолчанию, просто выберите controls массив свойств во время построения


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


пересечь массив элементов управления, а затем удалить элемент управления масштабированием

map.getControls().forEach(function(control) {
  if (control instanceof ol.control.Zoom) {
    map.removeControl(control);
  }
}, this);