Геообъекты Яндекс.Карт
Если Вам понравился данный материал, поделитесь им с вашими друзьями в соц сетях
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);