JavaScript API | Справочник по API

Карты построены на основе библиотеки OpenLayers. За дополнительной информацией можно обратится к ресурсу http://dev.openlayers.org/apidocs/

Преобразования проекций

Картографическая проекция — математически определенный способ отображения поверхности эллипсоида на плоскости.
Суть проекций связана с тем, что фигуру Земли — эллипсоид (геоид), не развертываемый в плоскость, заменяют на другую фигуру, развёртываемую на плоскость. При этом с эллипсоида на другую фигуру переносят сетку параллелей и меридианов. Вид этой сетки бывает разный в зависимости от того, какой фигурой заменяется эллипсоид.
Для представления карты во вьюпорте используется проекция широта-долгота, она же EPSG:4326. Внутреннее представление объектов хранится в проекции "меркатор на сфере", она же EPSG:3857, она же EPSG:900913, она же EPSG:3785. Метрическая, а не в угловых координатах.
Для корректного отображения географических объектов на карте требуется преобразования между проекциями.
Для этого служат методы transform() объектов LonLat и Bounds.
Пример преобразования из географических координат в координаты карты:

var ll = new OpenLayers.LonLat(31.2, 48.5).transform(map.displayProjection, map.projection);

Пример обратного преобразования:

var ll2 = ll.clone().transform(map.projection, map.displayProjection);

См. также

Map

Конструктор

Конструктор Описание
MetaMapsOL.Map({DOMElement|String}: HTMLelement, Object: options) Создает новую карту внутри данного HTML элемента. HTMLelement - значение атрибута id или DOMElement

Методы

Метод Возвращаемое значение Описание
setOptions: function(Object: options) null Изменяет настройки карты
getLayersByName: function(String: match) Array(Layer) Получить список слоев с названиями, соответствующих указанным именам
addLayer: function(Layer: layer) null Добавить слой на карту
addLayers: function(Array(Layer): layers) null Добавить несколько слоёв на карту
removeLayer: function(Layer: layer) null Удаляет слой с карты
getNumLayers: function() Int Количество слоев карты
addControl: function(Control: control, Pixel: ?px) null Добавить элемент управления на карту
addControls: function(Array(Control): controls, Array(Pixel): ?pixels) null Добавить несколько элементов управления на карту
removeControl: function(Control: control) null Удалить элемент управления с карты
addPopup: function(Popup: popup, Boolean: exclusive) null Добавляет попап на карту. Если exclusive = true - удаляет другие попапы с карты
removePopup: function(Popup: popup) null Удалить попап с карты
getSize: function() Size Возвращает размер карты в пикселях
updateSize: function() null Эта функция должна быть вызвана любым внешним кодом, который динамически изменяет размер контейнера карты (потому что Mozilla не позволяет поймать "onresize" для элемента)
getCenter: function() LonLat Возвращает центр карты
getZoom: function() Integer Возвращает зум карты
pan: function(Integer: dx, Integer: dy, Object: options) null Позволяет переместить карту на указанное кол-во пикселей.
options = { animate: true, dragging:false}
panTo: function(Lonlat:lonlat) null Позволяет переместить карту к указанным lonlat
setCenter: function(LonLat: lonlat,
Integer: zoom, Boolean: dragging, Boolean: forceZoomChange)
null Устанавливает центр карты (и, опционально, масштаб). dragging - запускает событие movestart/end. forceZoomChange - запускает событие zoomend
getMaxExtent: function() Bounds Возвращает максимальные границы карты
getNumZoomLevels: function() Integer Возвращает кол-во уровней зума
getExtent: function() Bounds Возвращает lon/lat границы текущего вьюпорта
getZoomForExtent: function(Bounds: bounds, Boolean: closest) Integer Возвращает уровень зума для заданных границ. Если closest = true - ищет уровень зума, наиболее близко соответствующий указанным границам
zoomTo: function(Integer: zoom) null Установить указанный уровень зума
zoomIn: function() null Увеличить уровень зума
zoomOut: function() null Уменьшить уровень зума
zoomToExtent: function(Bounds: bounds, Boolean: closest) null Приблизить к указанным границам, центрировать
zoomToMaxExtent: function() null Установить уровень зума, который впишет maxExtent

Вверх

Свойства

Свойство Тип Описание
events Events Объект events, который обрабатывает все события карты
div DOMElement Элемент, который содержит карту
layers Array(Layer) Упорядоченный список слоев в карты
units String Единицы измерения карты (‘degrees’ или ‘dd’, ‘m’, ‘ft’, ‘km’, ‘mi’, ‘inches’). по умолчанию ‘m’
restrictedExtent Bounds Границы навигации карты
fallThrough Boolean Должна ли карта позволять событиям "проходить" сквозь неё. По умолчанию true
eventListeners Object Если передан в качестве опции конструктора, eventListener`ы будут зарегистрированы с помощью OpenLayers.Events.on
controls Array(Control) Массив элементов управления. Если передан в качестве опции конструктора, элементы управления будут добавлены на карту
enableKeyboard Boolean Если параметр равен true - картой можно управлять при помощи клавиатуры. Стрелками осуществляется перемещение карты, +/- управляет зумом. По умолчанию false
zoomWheelEnabled Boolean Должна ли карта менять масштаб при прокрутке колеса мыши. По умолчанию true
panEnabled Boolean Должна ли карта позволять перемещение мышью. По умолчанию true

Вверх

Элементы управления

Permalink

Элемент управления Permalink добавляет на карту ссылку с текущим положением и типом карты. По умолчанию отображается в нижнем правом углу карты. Ссылка автоматически обновляется при смене зума, перемещении смене типа карты (карта, спутник)

Конструктор

Конструктор Описание
OpenLayers.Control.Permalink() Создает новый элемент управления Permalink

Вверх

PanZoomBar

Элемент управления PanZoomBar добавляет на карту компас и шкалу зума

Конструктор

Конструктор Описание
MetaMapsOL.Control.PanZoomBar() Создает новый элемент управления PanZoomBar

Вверх

PanZoom

Элемент управления PanZoom добавляет на карту стрелки перемещения карты и кнопки изменения зума

Конструктор

Конструктор Описание
MetaMapsOL.Control.PanZoom() Создает новый элемент управления PanZoom

Вверх

ScaleLine

Элемент управления ScaleLine добавляет на карту линейку масштаба

Конструктор

Конструктор Описание
OpenLayers.Control.ScaleLine() Создает новый элемент управления ScaleLine

Вверх

LayerSwitcher

Элемент управления LayerSwitcher предназначен для переключения типа карты (карта, спутник) и управления слоями наложения

Конструктор

Конструктор Описание
MetaMapsOL.Control.LayerSwitcher(Object: options) Создает новый элемент управления LayerSwitcher

Свойства

Свойство Тип Описание
overlaysList String Текстовый ярлык для слоёв наложения. Показывается только в случае, если есть хотя бы один слой наложения

Вверх

OverviewMap

Элемент управления OverviewMap добавляет на карту окно просмотра карты с более крупным масштабом

Конструктор

Конструктор Описание
MetaMapsOL.Control.OverviewMap(Object: options) Создает новый элемент управления OverviewMap

Свойства

Свойство Тип Описание
size Size Размер контейнера
maxRatio Float Максимальный коэффициент уменьшения основной карты к карте предпросмотра
minRatio Float Минимальный коэффициент уменьшения основной карты к карте предпросмотра
maximized Boolean Стартовать открытым?

Вверх

Geocoder

Класс Geocoder служит для получения географических координат объекта по его адресу.

Конструктор

Конструктор Описание
MetaMapsOL.geoCoder() Создает новый объект Geocoder

Методы

Метод Возвращаемое значение Описание
search: function(String: addres, Function: func) Object Ищет объекты по запросу addres. По окончанию поиска вызывает функцию func и передаёт ей в качестве первого параметра результаты поиска.
point: function(String: addres, Function: func) LonLat Обёртка для метода search, которая передаёт в функцию обратного вызова первый найденный объект, преобразованный к LonLat. В случае, если не найдено ни одного объекта, возвращает false

Структура объекта результатов поиска:


Object = {
	array: [
		0: {
			item.type: "city",                                  // Тип объекта. Принимает значения: addr, city, street, railway или road. 
			item.detailed_type: "city1",                        // Важность объекта в пределах его родителя (карты страны или города) city[1..3], street[1..6]
			scale: 12,                                          // Оптимальный масштаб для позиционирования на данный объект
			title: "г. Харьков",                                // Название объекта
			subtitle: "Харьковская обл., Харьковский горсовет", // Дополняет название
			match: "exact",                                     // Совпадение со строкой поиска. Принимает значения: exact, near, normal, secondary или approximate
			ll: {                                               // Координаты центра объекта
				x: 36.2696301202,                               // X-координата (lon)
				y: 49.9822624738                                // Y-координата (lat)
			},
			ll1: {                                              // Присутствует у не точечных объектов (street или road). Верхний левый угол 
				x: {Float},                                     // X-координата (lon)
				y: {Float}                                      // Y-координата (lat)
			},
			ll2: {                                              // Присутствует у не точечных объектов (street или road). Нижний правый угол
				x: {Float},                                     // X-координата (lon)
				y: {Float}                                      // Y-координата (lat)
			},
		},
		1: ...
	],
	count: 6                                                    // Количество результатов
}
			

Расшифровка значений поля item.type:

Расшифровка значений поля match:

Слои наложения

Markers.Movable

Конструктор

Конструктор Описание
MetaMapsOL.Layer.Markers.Movable(String: name, Object: options,
String: movableClassName, String: selectableClassName,
String: activeClassName)
Наследует класс OpenLayers.Layer.Markers. Создает новый объект слоя Markers.Movable.
movableClassName - класс элемента DOM для маркеров, которые можно двигать
selectableClassName - класс элемента DOM для маркеров, которые можно выделять
activeClassName - класс элемента DOM для выделенного маркера

Методы

Метод Возвращаемое значение Описание
activate: function() null Активирует возможность выделения и перемещения маркеров на слое
deactivate: function() null Деактивирует возможность выделения и перемещения маркеров на слое
onDragStart: function(Event: evt, <Marker>: marker) Boolean Функция обратного вызова. Вызывается перед началом перетаскивания маркера. Если результат функции равен false - перетаскивание не происходит
onDragEnd: function(Event: evt, <Marker>: marker) null Функция обратного вызова. Вызывается в конце перетаскивания маркера
onSelect: function(Event: evt, <Marker>: marker) Boolean Функция обратного вызова. Вызывается перед выделением маркера. Если результат функции равен false - выделение не происходит
onUnselect: function(Event: evt, <Marker>: marker) Boolean Функция обратного вызова. Вызывается перед снятием выделения с маркера. Если результат функции равен false - снятие выделения не происходит
selectMarker: function(<Marker>: marker) Boolean Выделяет переданный маркер. Если удалось - возвращает true
unselectMarker: function(<Marker>: marker) Boolean Снимает выделение с переданного маркера. Если удалось - возвращает true

Вверх

Marker

Объект маркера. Добавляется на слой наложения.

Конструктор

Конструктор Описание
MetaMapsOL.Marker(LonLat: lonlat, Icon: icon, Boolean: isSelectable, Boolean: isMovable) Создает маркер в позиции lonlat с иконкой icon. Необязательные параметры isSelectable и isMovable по умолчанию равны false

Методы

Метод Возвращаемое значение Описание
destroy: function() null Уничтожить маркер
isDrawn: function() Boolean Маркер отрисован?
setMovable: function(Boolean: isMovable) null Устанавливает, можно ли перемещать маркер
setSelectable: function(Boolean: isSelectable) null Устанавливает можно ли выделять маркер
createPopup: function(Boolean: closeBox) null Создает попап для маркера. См. свойства. Если параметр closeBox передан и равен true - попап создаётся с кнопкой для его закрытия
destroyPopup: function() null Уничтожить попап маркера
setPopupOpacity: function(Float: opacity) null Устанавливает прозрачность попапа. Параметр opacity принимает значения от 0 (полностью прозрачен) до 1 (полностью непрозрачен)

Свойства

Свойство Тип Описание
selected Boolean Выделен ли маркер?
popupClass <popupClass> Класс попапа маркера. По умолчанию MetaMapsOL.Popup.FramedCloud
popupSize Size Размер в пикселях по умолчанию для открываемого попапа. Равен 200х200
popupContent String Содержимое для попапа. По умолчанию пусто
popupOverflow null | Sting Значение Overflow для попапа. По умолчанию null
title null | Sting Текст всплывающей подсказки. По умолчанию null

Вверх

Icon

Конструктор

Конструктор Описание
OpenLayers.Icon(url, size, offset) Создает иконкy размером size с изображением url. Параметр offset задаёт смещение центра.

Методы

Метод Возвращаемое значение Описание
isDrawn: function() Boolean Иконка отрисована?

Вверх

Popup

Конструктор

Конструктор Описание
MetaMapsOL.Popup.FramedCloud(String: id, LonLat: lonlat,
Size: contentSize, String: contentHTML, Object: anchor,
Boolean: closeBox, Function: closeBoxCallback)
Создает попап в точке lonlat с указателем в точке anchor. Если closeBox равен true - попап создаётся с кнопкой для его закрытия. closeBoxCallback будет вызвана при клике на closeBox

Методы

Метод Возвращаемое значение Описание
destroy: function() null Уничтожить попап
setSize:function(Size: contentSize) null Задаёт новый размер в пикселях для содержимого попапа.
show: function() null Отрисовывает попап на карте
updateSize: function() null Корректирует позицию попапа на карте согласно новым значениям lonlat и anchor

Свойства

Свойство Тип Описание
contentDisplayClass String Класс для дива с содержимым попапа. По умолчанию popupContent
autoSize Boolean Автоподстройка размера всплывающих окон под содержание
minSize Size Минимальный допустимый размер содержимого попапа
maxSize Size Максимально допустимый размер содержимого попапа
panMapIfOutOfView Boolean При отрисовке попапа сдвигает вьюпорт так, чтобы попап всегда находился внутри вьюпорта

Вверх

Events

Конструктор

Конструктор Описание
OpenLayers.Events(Object: object, DOMElement: element,
Array(String): eventTypes, Boolean: fallThrough, Object: options)
Создает объект events.
object - JS объект, к которому этот объект добавляется
element - Дом элемент для прослушивания событий браузера
eventTypes - Массив пользовательских событий
fallThrough - Должны ли события "проходить" сквозь element
options - Дополнительные опции

Методы

Метод Возвращаемое значение Описание
destroy: function() null Уничтожить объект events
addEventType: function(String: eventName) null Добавить новый тип события для этого объекта events
on: function(Object: object) null Простой метод для регистрации обработчиков с общей областью видимости
Примеры:
  • events.on({"loadstart", loadStartListener});
  • events.on({
    	"loadstart": loadStartListener,
    	"loadend": loadEndListener,
    	scope: object
    });
register: function (String: type, Object: obj, Function: func) null Зарегистрировать обработчик func для события type в контексте obj
registerPriority: function (String: type, Object: obj, Function: func) null То же, что и register(), но ставит обработчик события в начало очереди обработчиков
un: function(Object: object) null Простой метод для отмены регистрации обработчиков с общей областью видимости
Примеры:
  • events.un({"loadstart", loadStartListener});
  • events.un({
    	"loadstart": loadStartListener,
    	"loadend": loadEndListener,
    	scope: object
    });
unregister: function (String: type, Object: obj, Function: func) null Отменяет регистрацию обработчика
triggerEvent: function (String: type, Event: evt) Boolean Вызывает указанное событие. Возвращает результат последнего обработчика.
clearMouseCache: function() null Очищает информацию о позиции мыши

Свойства

Свойство Тип Описание
fallThrough Boolean
includeXY Boolean Должно ли .xy свойство автоматически создаваться для событий мыши?

Вверх

Базовые классы

LonLat

Конструктор

Конструктор Описание
OpenLayers.LonLat(Number: lon, Number: lat) Создает новый объект LonLat

Методы

Метод Возвращаемое значение Описание
toShortString:function() String Сокращенное String представление LonLat объекта
clone:function() LonLat Возвращает новый объект LonLat с такими же значениями lon и lat
add:function(Number: lon, Number: lat) LonLat Новый объект LonLat с добавленными lon и lat
equals:function(LonLat: ll) Boolean Проверяет равенство с переданным объектом LonLat
transform: function(Projection: source, Projection: dest) LonLat, инстанс на себя Преобразует себя из проекции source в проекцию dest. Если нужен новый LonLat - нужно сначала использовать clone()

Свойства

Свойство Тип Описание
lon Float X-координата в единицах карты
lat Float Y-координата в единицах карты

Вверх

Bounds

Конструктор

Конструктор Описание
OpenLayers.Bounds(Number: left, Number: bottom, Number: right, Number: top) Создает новый объект Bounds

Методы

Метод Возвращаемое значение Описание
clone:function() Bounds Возвращает новый объект Bounds с такими же значениями left, bottom, right, и top
toString:function() String Строковое представление границ
toArray: function(Boolean: reverseAxisOrder) Array Возвращает значение объекта, приведённое к типу Array
toGeometry: function() Geometry.Polygon Создаёт новый многоугольник с координатами этих границ
getWidth:function() Float Возвращает ширину границ
getHeight:function() Float Возвращает высоту границ
getSize:function() Size Возвращает размеры границ
getCenterPixel:function() Pixel Возвращает центральный пиксел границ
getCenterLonLat:function() LonLat Возвращает центральную точку границ
add:function(Float: x, Float: y) Bounds Возвращает новый объект границ, координаты которого смещены на значения x и y соответственно
extend:function(Object: object) null Расширяет объект границ, чтобы он содержал переданный в параметре объект (может быть LonLat, Point, или Bounds)
containsLonLat:function(LonLat: ll, Boolean: inclusive) Boolean Переданий LonLat находится в пределах границ? Параметр inclusive определяет нужно ли учитывать в вычислениях границы объекта. По умолчанию равен true
containsPixel:function(Pixel: px, Boolean: inclusive) Boolean То же, что containsLonLat(), но для пикселя
contains:function(Float: x, Float: y, Boolean: inclusive) Boolean То же, что containsLonLat(), но отдельных x и y
intersectsBounds:function(Bounds: bounds, Boolean: inclusive) Boolean Определяет, пересекает ли переданный объект границ текущий объект границ
containsBounds:function(Bounds: bounds, Boolean: partial, Boolean: inclusive) Boolean Определяет, содержит ли переданный объект границ текущий. Если параметр partial равен true - проверяет хотя бы частичное вхождение. По умолчанию равен false
transform: function(Projection: source, Projection: dest) Bounds Преобразует себя из проекции source в проекцию dest. Если нужен новый Bounds - нужно сначала использовать clone()

Вверх

Pixel

Конструктор

Конструктор Описание
OpenLayers.Pixel(Number: x, Number: y) Создает новый объект Pixel

Методы

Метод Возвращаемое значение Описание
clone:function() Pixel Возвращает новый объект Pixel с такими же значениями x и y
equals:function(Pixel: px) Boolean Проверяет равенство с переданным объектом Pixel
add:function(Integer: x, Integer: y) Pixel Новый объект Pixel с добавленными x и y
offset:function(Pixel: px) Pixel То же, что и add(), только для пикселя

Свойства

Свойство Тип Описание
x Number Х координата
y Number Y координата

Вверх

Size

Конструктор

Конструктор Описание
OpenLayers.Size(Number: w, Number: h) Создает новый объект Size

Методы

Метод Возвращаемое значение Описание
clone:function() Size Возвращает новый объект Size с такими же значениями w и h
equals:function(Size: sz) Boolean Проверяет равенство с переданным объектом Size

Свойства

Свойство Тип Описание
w Number ширина
h Number высота

Вверх



clear
Copyright © 2010 <META> Все права защищены.