我目前在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
任何帮助,将不胜感激!
我能够解决我的问题。事实证明,当它们经过-180到180边界时,我必须“包装”我的范围的坐标才能使其正常工作。一旦我做到了,一切似乎都奏效了。
但是,这感觉像应该在Openlayers中完成的工作一样,所以可能还有其他我可能会错过的事情。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句