Разработка моего комментария:
Вам необходимо обновить / изменить геометрию «прямоугольника» (я полагаю, многоугольника), чтобы он выглядел «измененным», в конце любой операции, которая показывает что-то накарта, в которой используются экстенты, указывающие OL, где размещать объекты (по существу).
Я сделал небольшой пример, демонстрирующий, как использовать метод .scale
для объекта Geometry
объекта.
CodePen
Объяснение:
draw.on("drawend", function(e){
var iterations = 0;
var interval = setInterval(function(){
if(iterations == 10){
clearInterval(interval);
}
iterations++;
var feature = e.feature;
var coords = feature.getGeometry();
coords.scale(0.9, 0.9);
}, 300)
Этот код я использую для масштабирования нарисованного многоугольника, когда многоугольник нарисован на карте.Я всегда масштабирую его на 0,9 (что уменьшает его (базовое масштабирование)).
- 1 = тот же самый размер
- 0. * = меньше
- 1. * = Больше
Вам необходимо использовать логику, аналогичную приведенной выше, чтобы изменить размеры полигонов.Вам нужен объект объекта, затем извлеките объект Geometry и используйте метод .scale
.
Аргументы метода scale(sx, yx)
следующие:
- sx = Коэффициент масштабирования внаправление x.
- yx = коэффициент масштабирования в направлении y (по умолчанию sx).
Для получения дополнительной информации Класс геометрии в документах OL