Можно ли с помощью API создать полуокружность на карте или сектор (не в виде треугольника, а чтобы на конце была дуга), посоветуйте как это сделать.
В качестве известных данных. Радиус, Направление, угол ф, начальная точка. Знаю что есть прямая и обратная геодезическая задача, но у меня нет конечной точки, только расстояние и направление. По большому счёту интересует вопрос отрисовки секторов на карте.
Ответ
Можно просто нарисовать полигон нужной формы.
Самое простое решение выглядит так: http://jsfiddle.net/tLs0d51u/
Но там получился не совсем круг, поскольку круг формируется в сферических координатах (в широте и долготе), а не в декартовых.
Чтобы нарисовать нормальный круг, нужно работать с глобальными пиксельными координатами, а затем перевести их в сферические.
Это можно сделать так:
var zoom = map.getZoom();
var projection = map.options.get('projection');
// широта и долгота -> пиксели
projection.toGlobalPixels([55.73, 37.75], zoom);
// пиксели -> широта и долгота
projection.fromGlobalPixels([158560.7111111111, 82211.42703728657], zoom);
Сектор нормального круга: http://jsfiddle.net/tLs0d51u/1/
Комментариев нет:
Отправить комментарий