Если вы передаете функцию в свойство 'style' слоя, она называется Style-function.Функция Style вызывается каждый раз, когда слой отображается.В вашем примере глобальная переменная indexPoint обновляет свое значение на каждом панораме, каждом увеличении и т. Д.
Я думаю, что у вас есть 2 варианта:
Вариант 1: Установите номер каждой точки каксвойство, и пусть styleFunction прочитает это свойство.У вас есть доступ к свойству features в style-функции, потому что он может принимать функцию и разрешение в качестве параметров, это может выглядеть примерно так:
style: function(feature, resolution) {
return new Style({
image: new ol.style.Circle({
radius: 7,
fill: new ol.style.Fill({
color: '#ffcc33'
})
}),
text: new Text({
text: feature.get('number'),
fill: new Fill({color: '#ffcc33'}),
});
});
}
Вы можете установить атрибут 'number' правильно, когдапользователь рисует точку, это может быть сделано таким образом .
Вариант 2: не устанавливайте функцию стиля на слое, а скорее устанавливайте стиль каждого объекта отдельно при его создании