Ломаная
Ломаная состоит из набора вершин, последовательно соединенных отрезками прямой. Ломаная может иметь самопересечения.
Добавление ломаной на карту
Чтобы добавить ломаную на карту создайте объект класса YMaps.Polyline и передайте ему массив вершин ломаной, а затем с помощью метода карты addOverlay() добавьте созданный объект на карту.
Например:
var pl = new YMaps.Polyline([
new YMaps.GeoPoint(37.7,55.7),
new YMaps.GeoPoint(37.7,55.8),
new YMaps.GeoPoint(37.8,55.8),
new YMaps.GeoPoint(37.8,55.7),
new YMaps.GeoPoint(37.7,55.7)
]);
map.addOverlay(pl);
В режиме редактирования пользователю дается возможность изменять положение вершин ломаной, удалять имеющиеся вершины и добавлять новые.
Задание стиля ломаной
По умолчанию ломаная отображается линией красного цвета (ff0000ff
), толщиной 1 пиксел, без прозрачности.
Чтобы изменить стиль ломаной задайте следующие параметры объекта YMaps.LineStyle:
- strokeColor - цвет и прозрачность линии (в системе RGBA);
- strokeWidth - толщину линии.
Например:
var s = new YMaps.Style();
s.lineStyle = new YMaps.LineStyle();
s.lineStyle.strokeColor = '0000FF55';
s.lineStyle.strokeWidth = '5';
YMaps.Styles.add("example#CustomLine", s);
var pl = new YMaps.Polyline([
new YMaps.GeoPoint(37.7,55.7),
new YMaps.GeoPoint(37.7,55.8),
new YMaps.GeoPoint(37.8,55.8),
new YMaps.GeoPoint(37.8,55.7),
new YMaps.GeoPoint(37.7,55.7)
]);
pl.setStyle("example#CustomLine");
map.addOverlay(pl);
Кодирование вершин ломаной
С помощью метода fromEncodedPoints() вершины ломаной (и многоугольника) можно задавать закодированной строкой.
Метод принимает два обязательных параметра:
- encodedPoints - описание вершин;
- levels - строка кодов уровней видимости вершин.
В описании вершин закодированы координаты всех вершин ломаной или многоугольника. Строка кодов уровней указывает минимальный уровень масштаба, на котором вершина видна на карте.
Строго говоря, описание вершин представляет собой URL&FILE-safe base64-кодированный бинарный массив 32-битных знаковых целых чисел. Размер массива соотвествует двухкратному количеству вершин, то есть по два числа для каждой точки.
Первая пара чисел массива – это долгота и широта первой вершины, умноженные на 1 000 000. Последующие точки задаются смещениями по долготе и широте от предыдущей, также умноженными на 1 000 000. Таким образом, координаты задаются с точностью до 6-го знака.
Строка кодов уровней представляет собой набор символов, по одному для каждой точки. Для каждой вершины указывается уровень масштаба, начиная с которого она становится не видна.
Все уровни кодируются заглавными символами латинского алфавита от A
до Z
.
Символ A
соответствует наименее детальному уровню масштаба, то есть точки, помеченные этим уровнем, видны всегда. Таким образом символ A
соответствует коэффициенту масштабирования 1, символ B
- 2 и т.д.
Пример ниже демонстрирует алгоритм кодирования вершин ломаной для отображения пешеходного маршрута от станции метро "Парк Культуры" до офиса Яндекса: