diff --git a/public/lib/dragAndDroplayercontrol/DndLayerControl.js b/public/lib/dragAndDroplayercontrol/DndLayerControl.js index ee1e361..41ca9c0 100644 --- a/public/lib/dragAndDroplayercontrol/DndLayerControl.js +++ b/public/lib/dragAndDroplayercontrol/DndLayerControl.js @@ -430,14 +430,16 @@ function getExtendedMapControl() { resp.responses.forEach(spatialPathDoc => { if (spatialPathDoc.hits.hits.length === 1) { - const spaitalPathSource = spatialPathDoc.hits.hits[0]._source; + const spatialPathSource = spatialPathDoc.hits.hits[0]._source; let geometryType = 'point'; - if (spaitalPathSource.geometry.type.includes('Polygon')) { + if (spatialPathSource.geometry.type.includes('Polygon')) { geometryType = 'polygon'; + } else if (spatialPathSource.geometry.type.includes('Line')) { + geometryType = 'line'; } - layerTypes[spaitalPathSource.spatial_path] = geometryType; + layerTypes[spatialPathSource.spatial_path] = geometryType; } }); return layerTypes; @@ -488,7 +490,7 @@ function getExtendedMapControl() { // a check if there are any stored layers if (resp) { const aggs = resp.aggregations[2].buckets; - geometryTypeOfSpatialPaths = _getGeometryTypeOfSpatialPaths(aggs); + geometryTypeOfSpatialPaths = await _getGeometryTypeOfSpatialPaths(aggs); const savedStoredLayers = []; aggs.forEach(agg => { diff --git a/public/vislib/vector_layer_types/EsLayer.js b/public/vislib/vector_layer_types/EsLayer.js index f6c2069..517740d 100644 --- a/public/vislib/vector_layer_types/EsLayer.js +++ b/public/vislib/vector_layer_types/EsLayer.js @@ -49,7 +49,11 @@ export default class EsLayer { layer.unbindPopup(); }; self.bindPopup(layer, options); - } else if ('geo_shape' === geo.type || 'polygon' === geo.type || 'multipolygon' === geo.type) { + } else if ('geo_shape' === geo.type || + 'polygon' === geo.type || + 'multipolygon' === geo.type || + 'linestring' === geo.type || + 'multilinestring' === geo.type) { const shapesWithGeometry = _.remove(hits, hit => { return _.get(hit, `_source[${geo.field}]`); }); @@ -59,7 +63,11 @@ export default class EsLayer { geometry.type = self.capitalizeFirstLetter(geometry.type); if (geometry.type === 'Multipolygon') { - geometry.type === 'MultiPolygon'; + geometry.type = 'MultiPolygon'; + } else if (geometry.type === 'Linestring') { + geometry.type = 'LineString'; + } else if (geometry.type === 'Multilinestring') { + geometry.type = 'MultiLineString'; } if (type === 'es_ref') { @@ -130,7 +138,11 @@ export default class EsLayer { } ); self.bindPopup(layer, options); - layer.icon = ``; + if (geo.type === 'linestring' || geo.type === 'multilinestring') { + layer.icon = ``; + } else { + layer.icon = ``; + } layer.type = type + '_shape'; layer.destroy = () => layer.options.destroy(); } else { @@ -165,8 +177,10 @@ export default class EsLayer { if (geo.type === 'point') { layer.icon = ``; + } else if (geo.type === 'line') { + layer.icon = ``; } else { - layer.icon = ``; + layer.icon = ``; } layer.options = { pane: 'overlayPane' };