Я использую OpenLayers и хочу создать другое управление навигации в верхней левой стороне. Я знаю, как добавить Средства управления, но эта навигация добавляется в значении по умолчанию при создании OpenLayers-карты. Таким образом, я хочу удалить то Управление, добавить собственное. Я уже знаю, что управлением по умолчанию является OpenLayers. Управление. PanZoom.
Объект map имеет свойство 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
, если вы хотите посмотреть, как это работает.