Есть полигон
myZone = new ymaps.Polygon([[[5.5,-2],
myMap.geoObjects.add(myZone)
var myPol=new ymaps.GeoObjectCollection()
myMap.geoObjects.add(myPol)
есть функция, которая генерирует 10 случайных окружностей, лежащих в пределах этого полигона
function GenCircle(R){
//var bounds=myZone.geometry.getBounds();
var bounds=myMap.getBounds();
var Xm=bounds[0][1], Xx=bounds[1][1]
var Ym=bounds[0][0], Yx=bounds[1][0]
for (j=0; j<10; j++){
k=0;
while (k<100){
Xc=Math.floor(Math.random()*Xx)+Xm
Yc=Math.floor(Math.random()*Yx)+Ym
vertex=[Yc,Xc]
k++;
if (myZone.geometry.contains(vertex)){
var myCircle = new ymaps.Circle([vertex,R])
myPol.add(myCircle)
break;
}
}
}
}
Под api 2.0.18 все работает отлично, центры окружностей генерятся в пределах полигона, учитывают и вложенные контуры
Под api 2.0.20 окружности генерятся по всей видимой части карты (на самом деле я границы беру все-таки по полигону, но проблемы это не решает, центы рисуются в пределах всей области getBounds, игрорируя и вложенные контуры, если таковые имеются)