ymaps3 Circle класс

Хотим использовать кружок, для указания точности определения геолокации. Встроенного инструмента не нашли. класс Circle куда-то пропал в 3 версии АПИ. Как можно этого добиться?


Ответы (1 шт):

Автор решения: Kverty

Столкнулся с такой же необходимостью рисовать круг. К сожалению, в документации API 3 не заявлена такая фигура, удалось использовать только линии и полигоны. Не придумал ничего лучше, чем рисовать круги полигонами.

Параметры функции myCircle: координаты центра, радиус в километрах, число сегментов круга. Красиво работает при не очень больших радиусах (до 500 км).

function myCircle(lon, lat, r, n) {
  points = [];
  k = Math.cos(lat * Math.PI / 180);
  for (i = 0; i < n; i++) {
    points.push([
      lon + r / 111 / k  * Math.cos(2 * Math.PI / n * i),
      lat + r / 111 * Math.sin(2 * Math.PI / n * i)
    ]);
  }
  return [points];
}

const circle = new YMapFeature({
  geometry: {
    type: 'Polygon',
    coordinates: myCircle(87.5,56.0,100,16),
  },
  style: {stroke: [{color: '#006efc', width: 4, dash: [5, 10]}], fill: 'rgba(56, 56, 219, 0.5)'}
});
map.addChild(circle);
→ Ссылка