javascript - 停止在 openlayers 中覆盖特征
问题描述
我有一个矢量图层,我正在向它添加多边形几何的多个特征。向图层添加功能的代码如下所述:
let recentPointStyle = new Style({
stroke: new Stroke({
color: '#1c568f',
}),
fill: new Fill({
color: 'rgba(28, 86, 143, 0.5)'
})
});
let pointStyle = new Style({
fill: new Fill({
color: 'rgba(124, 252, 0, 0.5)'
})
});
let feature = new Feature({
geometry: new Polygon([bounds]),
});
feature.setStyle(recentPointStyle);
let allFeatures = [feature];
let previousBounds = [...this.props.areaVisited];
for (let i = 0; i < previousBounds.length; i++) {
let currBound = previousBounds[i];
let currFeature = new Feature({
geometry: new Polygon([currBound]),
});
currFeature.setStyle(pointStyle);
allFeatures.push(currFeature);
}
previousBounds.push(bounds);
this.props.dispatch(updateVisitedArea(previousBounds));
vectorLayer.setSource(new VectorSource({
features: allFeatures,
wrapX: false
}));
现在这段代码工作得非常好,但是当用户回到同一个区域时,再次绘制该特征,它变得越来越暗,并且另一层的内容不可见。那么我怎样才能阻止这种情况并保持图层的不透明度呢?
我尝试向图层添加多个多边形而不是多个特征。但同样的结果即将到来。这是更新的代码。
let recentPointStyle = new Style({
stroke: new Stroke({
color: '#1c568f',
}),
fill: new Fill({
color: 'rgba(28, 86, 143, 0.5)'
})
});
let pointStyle = new Style({
fill: new Fill({
color: 'rgba(124, 252, 0, 0.5)'
})
});
let allPolygons = [];
let previousBounds =[...this.props.areaVisited];
for(let i = 0; i < previousBounds.length; i++) {
let currBound = previousBounds[i];
allPolygons.push(new Polygon([currBound]));
}
let feature = new Feature({
geometry: new Polygon([bounds]),
});
feature.setStyle(recentPointStyle);
let allFeatures = [feature];
let currFeature = new Feature({
geometry: new MultiPolygon(allPolygons),
});
currFeature.setStyle(pointStyle);
allFeatures.push(currFeature);
if(!previousBounds.includes(bounds)) {
previousBounds.push(bounds);
}
this.props.dispatch(updateVisitedArea(previousBounds));
vectorLayer.setSource(new VectorSource({
features: allFeatures,
wrapX: false
}));
解决方案
推荐阅读
- mysql - 无法通过 Visual Studio 2012 连接到 MySQL 数据库
- javascript - 初始化后的数据表rowCallback函数
- django - 如何编辑具有单个或多个 MultichoiceFields 的表单
- javascript - 在 reactJS 中调用 fetch 时需要修改 onClick 函数中的 URL
- regex - 正则表达式来识别函数调用?
- c# - 为什么 SignalR 连接 pedirod 是一个数组,而不是单个值?
- javascript - 两个数组结果在 Javascript 中创建新数组
- c++ - 变量必须是绝对全局的所有源
- javascript - Babel 如何转换 rest/spread 运算符
- exception - 亚马逊红移中的异常处理