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' };