/**
## mapp.utils.verticeGeoms()
@module /utils/verticeGeoms
*/
export default feature => {
const geometry = feature.getGeometry()
if (geometry.getType() === 'Point') return new ol.geom.Point(geometry.getCoordinates())
let coords = geometry.getCoordinates()
const depth = getDepth(coords)
// Line string will have a depth of 2.
if (depth === 2) {
return new ol.geom.MultiPoint(coords)
}
// Coords with a depth of more than 3 indicate multi geoms.
coords = depth > 3 ? coords.flat(2) : coords[0]
return new ol.geom.MultiPoint(coords)
}
function getDepth(arr) {
return Array.isArray(arr) ?
1 + Math.max(0, ...arr.map(getDepth)) :
0;
}