openlayers 判断geojson文件是否在视口内
import GeoJSON from 'ol/format/GeoJSON'
import { createEmpty, extend, containsExtent, intersects } from 'ol/extent'
judgeGeojsonIsInViewport(map, geojsonData) {
if (map && geojsonData) {
const viewportExtent = map.getView().calculateExtent(map.getSize())
const format = new GeoJSON()
const features = format.readFeatures(geojsonData, {
featureProjection: map.getView().getProjection(),
})
const totalExtent = createEmpty()
features.forEach((feature) => {
extend(totalExtent, feature.getGeometry().getExtent())
})
const isVisible = intersects(viewportExtent, totalExtent)
return isVisible
}
return false
}