我目前在ol.source.Vector上有功能,我希望通过在屏幕上绘制一个框(MultiPolygon)来找到它。我目前有这个功能正常工作,但是,如果我移动到下一个渲染的世界("旋转地球"可以这么说),当我在同一组渲染的功能上绘制我的盒子时,我得不到任何回报。
示例代码:
var featureSource = new ol.source.Vector({
url: '/ShinyService/feature/geoJson',
format: new ol.format.GeoJSON()
});
var featureLayer = new ol.layer.Vector( {
source: featureSource
});
var myMap = new ol.Map({
layers: [ featureLayer],
view: new ol.View({
minZoom: 3,
maxZoom: 10
});
});
//Later within interaction event (draw end)
var boxExtent = box.getGeometry().getExtent();
vectorSource.forEachFeatureInExtent(boxExtent, function(feature){
foundFeature.push(feature.getId());
});
我目前正在考虑唯一的解决方案"这是为了不再允许世界多次渲染,但我不认为这是我想要实现的要求的选择。
我目前正在使用Openlayers v3.18.2
任何帮助将不胜感激!
答案 0 :(得分:1)
我能够解决我的问题。事实证明我必须"包装"我的范围的坐标,以便在它们经过-180到180边界时使其正常工作。一旦我这样做,每件事似乎都有效。
然而,这感觉就像在Openlayers中应该已经完成的那样,所以可能还有其他一些东西可能会丢失。