Страницы

Поиск по вопросам

понедельник, 18 февраля 2019 г.

Нарисовать полукруг / сектор круга на карте

Можно ли с помощью 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/

Комментариев нет:

Отправить комментарий