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);