Геообъекты Яндекс.Карт
API Яндекс.Карт позволяет размещать на картах произвольное количество визуальных объектов (Геообъектов). (Геообъекты указывают и описывают объекты реального мира).
К геообъектам относятся: метки, круги, ломаные, прямоугольники, многоугольники, а также их коллекции. Геообъект характеризуется своей геометрией, которая определяется геометрическим типом (точка, круг, ломаная и пр.) и координатами географического объекта.
Базовым классом, реализующим геообъект является класс GeoObject. Экземпляр карты размещает геообъекты в собственном хранилище, реализованном в виде коллекции, ссылка на которую находится в поле geoObjects. Добавление геообъекта на карту, его изменение и удаление производится с помощью обращения к этой коллекции.
Тип геометрии присваивается геообъекту в момент его создания и не может быть изменен в дальнейшем. При этом координаты геометрии могут быть изменены как программно, так и пользователем с помощью визуального редактора.
Если геообъект был инициализирован без указания геометрии, то он не будет отображаться на карте. Присвоить тип геометрии такому геообъекту также будет невозможно.
Создадим геообъект и добавим его на карту
Создадим геообъект с помощью класса GeoObject и добавим геообъект на карту, с помощью обращения к коллекции GeoObjects:
// создадим геообъект
var myGeoObject = new ymaps.GeoObject({
// Тип геометрии - точка.
type: 'Point',
// Координаты точки.
coordinates: [55.8, 37.8]
});
// добавим геообъект на карту
myMap.geoObjects.add(myGeoObject);
Для каждого типа геометрии определен вспомогательный класс, позволяющий использовать для создания геообъекта сокращенный синтаксис.
// создадим геообъект с типом геометрии "точка" (type: "Point") var myPlacemark = new ymaps.Placemark([55.8, 37.6]); // добавим геообъект на карту myMap.geoObjects.add(myPlacemark);
Cписок геообъектов
Рассмотрим список геообъектов используемых в классе GeoObject и соответствующих вспомогательных классов, предоставляющих упрощенный синтаксис для создания геообъекта.
Placemark
создадим геообъект типа геометрии "точка" двумя способами:
- с помощью класса GeoObject
- с помощью вспомогательного класса Placemark
// создадим геообъект с помощью класса - GeoObject
var myPlacemark = new ymaps.GeoObject({
geometry: {
type: "Point", // Тип - точка
coordinates: [55.75396, 37.620393], // географические координаты
}
});
// или создадим геообъект с помощью вспомогательного класса - Placemark
var myPlacemark = new ymaps.Placemark([55.75396, 37.620393]);
// добавим геообъект на карту
myMap.geoObjects.add(myPlacemark);
Circle
создадим геообъект типа геометрии "круг" двумя способами:
- с помощью класса GeoObject
- с помощью вспомогательного класса Circle
// создадим геообъект с помощью класса - GeoObject
var myCircle = new ymaps.GeoObject({
geometry: {
type: "Circle", // Тип - круг
coordinates: [55.75396, 37.620393], // географические координаты
radius: 15000 // радиус
}
});
// или создадим геообъект с помощью вспомогательного класса - Circle
var myCircle = new ymaps.Circle([
coordinates: [55.75396, 37.620393], // географические координаты
radius: 15000 // радиус
]);
// добавим геообъект на карту
myMap.geoObjects.add(myCircle);
Polyline
создадим геообъект типа геометрии "ломаная" двумя способами:
- с помощью класса GeoObject
- с помощью вспомогательного класса Polyline
// создадим геообъект с помощью класса - GeoObject
var myPolyline = new ymaps.GeoObject({
geometry: {
type: "LineString", // Тип - ломаная
coordinates: [
[55.75396, 37.620393],
[56.1, 37.620393],
[55.75396, 37.1],
[55.45, 37.4],
[55.8, 37.9],
]
}
});
// или создадим геообъект с помощью вспомогательного класса - Polyline
var myPolyline = new ymaps.Polyline(
[ [55.75396, 37.620393], [56.1, 37.620393], [55.75396, 37.1], [55.45, 37.4], [55.8, 37.9], ]
);
// добавим геообъект на карту
myMap.geoObjects.add(myPolyline);
Rectangle
создадим геообъект типа геометрии "прямоугольник" двумя способами:
- с помощью класса GeoObject
- с помощью вспомогательного класса Rectangle
// создадим геообъект с помощью класса - GeoObject
var myRectangle = new ymaps.GeoObject({
geometry: {
type: "Rectangle",
coordinates: [
[55.75396, 37.620393],
[55.5, 38.1],
]
}
});
// или создадим геообъект с помощью вспомогательного класса - Rectangle
var myRectangle = new ymaps.Rectangle(
[ [55.75396, 37.620393], [55.5, 38.1], ]
);
// добавим геообъект на карту
myMap.geoObjects.add(myRectangle);