Клуб API Карт

Как отключить рисование circle через canvas?

Пост в архиве.

Здравствуйте!

 

Необходимо было вокруг координаты обозначить область в форме круга, только граница области (окружность) должна быть по дизайну нарисована большими круглыми точками.

 

Сначала сварганил какую-то функцию которая через sin/cos расставляет кружочки, но потом понял, что сделал явно не то, ведь можно просто нарисовать круг с dotted outline'ом.

 

Но из-за того, что окружность рисуется через Canvas её обводку невозможно сделать dot'овой, а очень нужно.

Обыскал всю справку, но так и не нашёл, как можно отключить рисование Canvas'ом.

Собственно, как? )

 

Заранее спасибо.

4 комментария

нужно указать геообъекту правильную опцию overlayFactory

http://api.yandex.ru/maps/doc/jsapi/2.x/ref/reference/geoObject.overlayFactory.storage.xml

Автор Комментария
28 января 2016, 02:00

var myCircle = new ymaps.Circle([
[59.93671,30.342009],
5000
], {}, {
fillColor: "#FF000000",
strokeColor: "#FF0000",
strokeOpacity: 1,
strokeWidth: 10,
overlayFactory: "default#staticGraphics",
strokeStyle:"dot" /* */
});


В качестве параметра overlayFactory пробовал все четыре предложенных варианта, однако они отображаются одинаково за исключением последнего который отключает обводку и делает область активную. (

 

Но спасибо за направление.

1. Надо вернуть себе поддержку SVG - добавить модуль graphics.render.detect.all

2. кругу добавить опцию renderType:'SVG'

В таком режиме возможно нарисовать круг с обводкой.

см. http://thekashey.github.io/solar/ и работу кнопочки в top-left



а не проще сделать свой макет и туда поставить div с border-radius: 50%;
border: 4px dotted; ???

правда, dotted - не круглые точки)