diff --git a/projects/common-map/src/fm-map/components/aol/item-layers/item-layers.component.ts b/projects/common-map/src/fm-map/components/aol/item-layers/item-layers.component.ts
index 009e9e8..5c174f8 100644
--- a/projects/common-map/src/fm-map/components/aol/item-layers/item-layers.component.ts
+++ b/projects/common-map/src/fm-map/components/aol/item-layers/item-layers.component.ts
@@ -1,277 +1,277 @@
-import { Component, Host, Input, Output, EventEmitter, Optional, QueryList, OnInit, AfterViewInit, OnChanges, SimpleChanges, SkipSelf, forwardRef, Inject, InjectionToken } from '@angular/core';
-import { HttpClient } from "@angular/common/http";
-import { LayerVectorComponent, LayerTileComponent, LayerGroupComponent, MapComponent } from 'ngx-openlayers';
-import { ItemService } from '@farmmaps/common';
-import { AppConfig } from '@farmmaps/common';
-import { IItemLayer} from '../../../models/item.layer';
-import { ILayerData} from '../../../models/layer.data';
-import { IRenderoutputTiles,IRenderoutputImage,IGradientstop,ILayer,IHistogram} from '../../../models/color.map';
-import {Extent} from 'ol/extent';
-import Projection from 'ol/proj/Projection';
-import * as proj from 'ol/proj';
-import * as loadingstrategy from 'ol/loadingstrategy';
-import * as style from 'ol/style';
-import {Tile,Layer,Image} from 'ol/layer';
-import {XYZ,ImageStatic,OSM,BingMaps,TileWMS,TileArcGISRest} from 'ol/source';
-import {Vector as VectorSource} from 'ol/source';
-import { Vector as VectorLayer } from 'ol/layer';
-import VectorTileSource from 'ol/source/VectorTile';
-import VectorTileLayer from 'ol/layer/VectorTile';
-import {GeoJSON,MVT} from 'ol/format';
-import { from } from 'rxjs';
-
-@Component({
-  selector: 'fm-map-item-layers',
-  template: ``,
-  providers: [
-    { provide: LayerGroupComponent, useExisting: forwardRef(() => ItemLayersComponent) }
-  ]
-})
-
-export class ItemLayersComponent extends LayerGroupComponent implements OnChanges, OnInit {
-  @Input() itemLayers: IItemLayer[];
-  @Input() itemLayer: IItemLayer;
-  private _apiEndPoint: string;
-
-  constructor(private itemService: ItemService, @Host() private map: MapComponent, public appConfig: AppConfig) {
-    super(map);
-    this._apiEndPoint = appConfig.getConfig("apiEndPoint");
-  }
-
-  private styleCache = {}
-
-  componentToHex(c) {
-    var hex = c.toString(16);
-    return hex.length == 1 ? "0" + hex : hex;
-  }
-
-   rgbaToHex(r, g, b,a) {
-     return "#" + this.componentToHex(r) + this.componentToHex(g) + this.componentToHex(b) + this.componentToHex(a);
-  }
-
-  getColorFromGradient(layer: ILayer,  feature): style.Style {
-    var value = feature.get(layer.name);
-    var gradient: IGradientstop[] = layer.renderer.colorMap.gradient;
-    var histogram: IHistogram = layer.renderer.band.histogram;
-    var index = (value - histogram.min) / histogram.max;
-    var min = gradient[0];
-    var max = gradient[gradient.length - 1];
-    for (var n = 0; n < gradient.length; n++) {
-      var s = gradient[n];
-      if (s.relativestop <= index && min.relativestop < s.relativestop && n < gradient.length - 1) min = s;
-      if (s.relativestop >= index && max.relativestop > s.relativestop && n > 0) max = s;
-    }
-    var i = index - min.relativestop;
-    var size = max.relativestop - min.relativestop;
-    var alpha = Math.round( min.color.alpha + ((max.color.alpha - min.color.alpha) * i / size));
-    var red = Math.round(min.color.red + ((max.color.red - min.color.red) * i / size));
-    var green = Math.round(min.color.green + ((max.color.green - min.color.green) * i / size));
-    var blue = Math.round(min.color.blue + ((max.color.blue - min.color.blue) * i / size));
-
-    return new style.Style(
-      {
-        image: new style.Circle({
-          fill: new style.Fill({
-            color: this.rgbaToHex(red,green,blue,alpha)
-          }),
-          radius: 3
-        }),
-        fill: new style.Fill({
-          color: this.rgbaToHex(red, green, blue, alpha)
-        }),
-        stroke: new style.Stroke({
-          color: this.rgbaToHex(red, green, blue, alpha),
-          width: 1.25
-        }),
-      });
-  }
-
-  createLayer(itemLayer: IItemLayer): Layer {
-    var layer: Layer = null;    
-    if (itemLayer.item.itemType == 'vnd.farmmaps.itemtype.geotiff.processed') {
-      let source = new XYZ({ maxZoom: 19, minZoom: 1, url: `${this._apiEndPoint}/api/v1/items/${itemLayer.item.code}/tiles/{z}/{x}/{y}.png?v=${itemLayer.item.updated.getTime()}` });
-      layer = new Tile({ source: source });
-      var data = itemLayer.item.data;
-      var l = (data && data.layers && data.layers.length > 0) ? data.layers[0] : null;
-      if (l && l.rendering && l.rendering.renderoutputType == "Tiles") {
-        var rt = l.rendering as IRenderoutputTiles;
-        let source = new XYZ({ maxZoom: rt.maxzoom, minZoom: rt.minzoom, url: `${this._apiEndPoint}/api/v1/items/${itemLayer.item.code}/tiles/{z}/{x}/{y}.png?v=${itemLayer.item.updated.getTime()}` });
-        layer = new Tile({ source: source });
-      }
-      if (l && l.rendering && l.rendering.renderoutputType == "Image") {
-        var ri = l.rendering as IRenderoutputImage;
-        let projection = new Projection({
-          code: 'image',
-          units: 'pixels',
-          extent: ri.extent
-        });
-        let source = new ImageStatic({ imageExtent: ri.extent, projection: projection, url: `${this._apiEndPoint}/api/v1/items/${itemLayer.item.code}/mapimage?v=${itemLayer.item.updated.getTime()}` });
-        layer = new Image({ source: source });
-      }
-    } else if (itemLayer.item.itemType == 'vnd.farmmaps.itemtype.shape.processed') {
-      var data = itemLayer.item.data;
-      var layerIndex = itemLayer.layerIndex != -1 ? itemLayer.layerIndex : itemLayer.item.data.layers[0].index;
-      var l = itemLayer.item.data.layers[layerIndex];
-      if (l && l.rendering && l.rendering.renderoutputType == "VectorTiles") {
-        var rt = itemLayer.item.data.layers[layerIndex].rendering as IRenderoutputTiles;
-        layer = new VectorTileLayer({
-          declutter: true,
-          source: new VectorTileSource({
-            maxZoom: rt.maxzoom,
-            minZoom: rt.minzoom,
-            format: new MVT(),
-            url: `${this._apiEndPoint}/api/v1/items/${itemLayer.item.code}/vectortiles/{z}/{x}/{y}.pbf?v=${itemLayer.item.updated.getTime()}`
-          }),
-          style: (feature) => {
-            return this.getColorFromGradient(l, feature);           
-          }
-        })
-      } if (l && l.rendering && l.rendering.renderoutputType == "Tiles") {
-        var rt = l.rendering as IRenderoutputTiles;
-        layer = new Tile({
-          source: new XYZ({
-            maxZoom: rt.maxzoom,
-            minZoom: rt.minzoom,
-            url: `${this._apiEndPoint}/api/v1/items/${itemLayer.item.code}/vectortiles/image_tiles/${layerIndex}/{z}/{x}/{y}.png?v=${itemLayer.item.updated.getTime()}`
-          })
-        });
-      } else {
-        let __this = this;
-        let format = new GeoJSON();
-        let source = new VectorSource({
-          strategy: loadingstrategy.bbox,
-          loader: function (extent: Extent, resolution: number, projection: Projection) {
-            var source = this as VectorSource;
-            __this.itemService.getItemFeatures(itemLayer.item.code, extent, projection.getCode(), layerIndex).subscribe(function (data) {
-              var features = format.readFeatures(data);
-              for (let f of features) {
-                if (f.get("code")) {
-                  f.setId(f.get("code"));
-                }
-              }
-              source.addFeatures(features);
-            });
-          }
-        });
-        layer = new VectorLayer({
-          source: source,
-          style: (feature) => {
-            var key = feature.get("color");
-            if (!this.styleCache[key]) {
-              var color = feature.get("color");
-              this.styleCache[key] = new style.Style(
-                {
-                  fill: new style.Fill({
-                    color: color
-                  }),
-                  stroke: new style.Stroke({
-                    color: color,
-                    width: 1.25
-                  }),
-                  image: new style.Circle({
-                    fill: new style.Fill({
-                      color: color
-                    }),
-                    stroke: new style.Stroke({
-                      color: color,
-                      width: 1.25
-                    }),
-                    radius: 5
-                  }),
-                }
-              )
-            }
-            return this.styleCache[key];
-          }
-        });
-      }      
-    } else if (itemLayer.item.itemType == 'vnd.farmmaps.itemtype.layer') {
-      let data = itemLayer.item.data as ILayerData;
-      switch (data.interfaceType) {
-        case 'OSM': {
-          let source = new OSM();
-          layer = new Tile({ source: source });
-          break;
-        }
-        case 'BingMaps': {
-          let source = new BingMaps(data.options);
-          layer = new Tile({ source: source });
-          break;
-        }
-        case 'TileWMS': {
-          let source = new TileWMS(data.options);
-          layer = new Tile({ source: source });
-          break;
-        }
-        case 'TileArcGISRest': {
-          let source = new TileArcGISRest(data.options);
-          layer = new Tile({ source: source });
-          break;
-        }
-        default: {
-          break;
-        }
-      }
-    }
-    if (layer) {
-      let geometry = new GeoJSON().readGeometry(itemLayer.item.geometry);
-      let extent = geometry ? proj.transformExtent(geometry.getExtent(), 'EPSG:4326', 'EPSG:3857') : null;
-      if (extent) layer.setExtent(extent);
-    }
-
-    return layer;
-  }
-
-  ngOnInit() {
-    super.ngOnInit();
-    this.updateLayers(this.itemLayers);
-  }
-
-  updateLayers(itemLayers: IItemLayer[]) {
-    if (itemLayers) {
-      var olLayers = this.instance.getLayers();
-      itemLayers.forEach((itemLayer, index) => {
-
-        var layer = itemLayer.layer;
-        let olIndex = olLayers.getArray().indexOf(layer);
-        if (olIndex < 0) {
-          // New layer: we add it to the map
-          layer = this.createLayer(itemLayer);
-          if (layer) {
-            itemLayer.layer = layer;
-          }
-          olLayers.insertAt(index, layer);
-        } else if (index !== olIndex) {
-          // layer has moved inside the layers list
-          olLayers.removeAt(olIndex);
-          olLayers.insertAt(index, layer);
-        }
-        layer.setOpacity(itemLayer.opacity);
-        layer.setVisible(itemLayer.visible);
-      });
-      // Remove the layers that have disapeared from childrenLayers
-      if (olLayers.getLength() > itemLayers.length) {
-        for (let i = itemLayers.length; i < olLayers.getLength(); i++) {
-          olLayers.removeAt(i);
-        }
-      }
-    }   
-  }
-
-  ngOnChanges(changes: SimpleChanges) {
-    if (this.instance) {
-      if (changes['itemLayers']) {
-        var itemLayers = changes['itemLayers'].currentValue as IItemLayer[];
-        this.updateLayers(itemLayers);
-      }
-      if (changes['itemLayer']) {
-        var itemLayer = changes['itemLayer'].currentValue as IItemLayer;
-        if(itemLayer) {
-          this.updateLayers([itemLayer]);
-        } else {
-          this.updateLayers([]);
-        }
-      }
-    }
-  }
-}
+import { Component, Host, Input, Output, EventEmitter, Optional, QueryList, OnInit, AfterViewInit, OnChanges, SimpleChanges, SkipSelf, forwardRef, Inject, InjectionToken } from '@angular/core';
+import { HttpClient } from "@angular/common/http";
+import { LayerVectorComponent, LayerTileComponent, LayerGroupComponent, MapComponent } from 'ngx-openlayers';
+import { ItemService } from '@farmmaps/common';
+import { AppConfig } from '@farmmaps/common';
+import { IItemLayer} from '../../../models/item.layer';
+import { ILayerData} from '../../../models/layer.data';
+import { IRenderoutputTiles,IRenderoutputImage,IGradientstop,ILayer,IHistogram} from '../../../models/color.map';
+import {Extent} from 'ol/extent';
+import Projection from 'ol/proj/Projection';
+import * as proj from 'ol/proj';
+import * as loadingstrategy from 'ol/loadingstrategy';
+import * as style from 'ol/style';
+import {Tile,Layer,Image} from 'ol/layer';
+import {XYZ,ImageStatic,OSM,BingMaps,TileWMS,TileArcGISRest} from 'ol/source';
+import {Vector as VectorSource} from 'ol/source';
+import { Vector as VectorLayer } from 'ol/layer';
+import VectorTileSource from 'ol/source/VectorTile';
+import VectorTileLayer from 'ol/layer/VectorTile';
+import {GeoJSON,MVT} from 'ol/format';
+import { from } from 'rxjs';
+
+@Component({
+  selector: 'fm-map-item-layers',
+  template: ``,
+  providers: [
+    { provide: LayerGroupComponent, useExisting: forwardRef(() => ItemLayersComponent) }
+  ]
+})
+
+export class ItemLayersComponent extends LayerGroupComponent implements OnChanges, OnInit {
+  @Input() itemLayers: IItemLayer[];
+  @Input() itemLayer: IItemLayer;
+  private _apiEndPoint: string;
+
+  constructor(private itemService: ItemService, @Host() private map: MapComponent, public appConfig: AppConfig) {
+    super(map);
+    this._apiEndPoint = appConfig.getConfig("apiEndPoint");
+  }
+
+  private styleCache = {}
+
+  componentToHex(c) {
+    var hex = c.toString(16);
+    return hex.length == 1 ? "0" + hex : hex;
+  }
+
+   rgbaToHex(r, g, b,a) {
+     return "#" + this.componentToHex(r) + this.componentToHex(g) + this.componentToHex(b) + this.componentToHex(a);
+  }
+
+  getColorFromGradient(layer: ILayer,  feature): style.Style {
+    var value = feature.get(layer.name);
+    var gradient: IGradientstop[] = layer.renderer.colorMap.gradient;
+    var histogram: IHistogram = layer.renderer.band.histogram;
+    var index = (value - histogram.min) / histogram.max;
+    var min = gradient[0];
+    var max = gradient[gradient.length - 1];
+    for (var n = 0; n < gradient.length; n++) {
+      var s = gradient[n];
+      if (s.relativestop <= index && min.relativestop < s.relativestop && n < gradient.length - 1) min = s;
+      if (s.relativestop >= index && max.relativestop > s.relativestop && n > 0) max = s;
+    }
+    var i = index - min.relativestop;
+    var size = max.relativestop - min.relativestop;
+    var alpha = Math.round( min.color.alpha + ((max.color.alpha - min.color.alpha) * i / size));
+    var red = Math.round(min.color.red + ((max.color.red - min.color.red) * i / size));
+    var green = Math.round(min.color.green + ((max.color.green - min.color.green) * i / size));
+    var blue = Math.round(min.color.blue + ((max.color.blue - min.color.blue) * i / size));
+
+    return new style.Style(
+      {
+        image: new style.Circle({
+          fill: new style.Fill({
+            color: this.rgbaToHex(red,green,blue,alpha)
+          }),
+          radius: 3
+        }),
+        fill: new style.Fill({
+          color: this.rgbaToHex(red, green, blue, alpha)
+        }),
+        stroke: new style.Stroke({
+          color: this.rgbaToHex(red, green, blue, alpha),
+          width: 1.25
+        }),
+      });
+  }
+
+  createLayer(itemLayer: IItemLayer): Layer {
+    var layer: Layer = null;    
+    if (itemLayer.item.itemType == 'vnd.farmmaps.itemtype.geotiff.processed') {
+      let source = new XYZ({ maxZoom: 19, minZoom: 1, url: `${this._apiEndPoint}/api/v1/items/${itemLayer.item.code}/tiles/{z}/{x}/{y}.png?v=${itemLayer.item.updated.getTime()}` });
+      layer = new Tile({ source: source });
+      var data = itemLayer.item.data;
+      var l = (data && data.layers && data.layers.length > 0) ? data.layers[0] : null;
+      if (l && l.rendering && l.rendering.renderoutputType == "Tiles") {
+        var rt = l.rendering as IRenderoutputTiles;
+        let source = new XYZ({ maxZoom: rt.maxzoom, minZoom: rt.minzoom, url: `${this._apiEndPoint}/api/v1/items/${itemLayer.item.code}/tiles/{z}/{x}/{y}.png?v=${itemLayer.item.updated.getTime()}` });
+        layer = new Tile({ source: source });
+      }
+      if (l && l.rendering && l.rendering.renderoutputType == "Image") {
+        var ri = l.rendering as IRenderoutputImage;
+        let projection = new Projection({
+          code: 'image',
+          units: 'pixels',
+          extent: ri.extent
+        });
+        let source = new ImageStatic({ imageExtent: ri.extent, projection: projection, url: `${this._apiEndPoint}/api/v1/items/${itemLayer.item.code}/mapimage?v=${itemLayer.item.updated.getTime()}` });
+        layer = new Image({ source: source });
+      }
+    } else if (itemLayer.item.itemType == 'vnd.farmmaps.itemtype.shape.processed') {
+      var data = itemLayer.item.data;
+      var layerIndex = itemLayer.layerIndex != -1 ? itemLayer.layerIndex : itemLayer.item.data.layers[0].index;
+      var l = itemLayer.item.data.layers[layerIndex];
+      if (l && l.rendering && l.rendering.renderoutputType == "VectorTiles") {
+        var rt = itemLayer.item.data.layers[layerIndex].rendering as IRenderoutputTiles;
+        layer = new VectorTileLayer({
+          declutter: true,
+          source: new VectorTileSource({
+            maxZoom: rt.maxzoom,
+            minZoom: rt.minzoom,
+            format: new MVT(),
+            url: `${this._apiEndPoint}/api/v1/items/${itemLayer.item.code}/vectortiles/{z}/{x}/{y}.pbf?v=${itemLayer.item.updated.getTime()}`
+          }),
+          style: (feature) => {
+            return this.getColorFromGradient(l, feature);           
+          }
+        })
+      } else if (l && l.rendering && l.rendering.renderoutputType == "Tiles") {
+        var rt = l.rendering as IRenderoutputTiles;
+        layer = new Tile({
+          source: new XYZ({
+            maxZoom: rt.maxzoom,
+            minZoom: rt.minzoom,
+            url: `${this._apiEndPoint}/api/v1/items/${itemLayer.item.code}/vectortiles/image_tiles/${layerIndex}/{z}/{x}/{y}.png?v=${itemLayer.item.updated.getTime()}`
+          })
+        });
+      } else {
+        let __this = this;
+        let format = new GeoJSON();
+        let source = new VectorSource({
+          strategy: loadingstrategy.bbox,
+          loader: function (extent: Extent, resolution: number, projection: Projection) {
+            var source = this as VectorSource;
+            __this.itemService.getItemFeatures(itemLayer.item.code, extent, projection.getCode(), layerIndex).subscribe(function (data) {
+              var features = format.readFeatures(data);
+              for (let f of features) {
+                if (f.get("code")) {
+                  f.setId(f.get("code"));
+                }
+              }
+              source.addFeatures(features);
+            });
+          }
+        });
+        layer = new VectorLayer({
+          source: source,
+          style: (feature) => {
+            var key = feature.get("color");
+            if (!this.styleCache[key]) {
+              var color = feature.get("color");
+              this.styleCache[key] = new style.Style(
+                {
+                  fill: new style.Fill({
+                    color: color
+                  }),
+                  stroke: new style.Stroke({
+                    color: color,
+                    width: 1.25
+                  }),
+                  image: new style.Circle({
+                    fill: new style.Fill({
+                      color: color
+                    }),
+                    stroke: new style.Stroke({
+                      color: color,
+                      width: 1.25
+                    }),
+                    radius: 5
+                  }),
+                }
+              )
+            }
+            return this.styleCache[key];
+          }
+        });
+      }      
+    } else if (itemLayer.item.itemType == 'vnd.farmmaps.itemtype.layer') {
+      let data = itemLayer.item.data as ILayerData;
+      switch (data.interfaceType) {
+        case 'OSM': {
+          let source = new OSM();
+          layer = new Tile({ source: source });
+          break;
+        }
+        case 'BingMaps': {
+          let source = new BingMaps(data.options);
+          layer = new Tile({ source: source });
+          break;
+        }
+        case 'TileWMS': {
+          let source = new TileWMS(data.options);
+          layer = new Tile({ source: source });
+          break;
+        }
+        case 'TileArcGISRest': {
+          let source = new TileArcGISRest(data.options);
+          layer = new Tile({ source: source });
+          break;
+        }
+        default: {
+          break;
+        }
+      }
+    }
+    if (layer) {
+      let geometry = new GeoJSON().readGeometry(itemLayer.item.geometry);
+      let extent = geometry ? proj.transformExtent(geometry.getExtent(), 'EPSG:4326', 'EPSG:3857') : null;
+      if (extent) layer.setExtent(extent);
+    }
+
+    return layer;
+  }
+
+  ngOnInit() {
+    super.ngOnInit();
+    this.updateLayers(this.itemLayers);
+  }
+
+  updateLayers(itemLayers: IItemLayer[]) {
+    if (itemLayers) {
+      var olLayers = this.instance.getLayers();
+      itemLayers.forEach((itemLayer, index) => {
+
+        var layer = itemLayer.layer;
+        let olIndex = olLayers.getArray().indexOf(layer);
+        if (olIndex < 0) {
+          // New layer: we add it to the map
+          layer = this.createLayer(itemLayer);
+          if (layer) {
+            itemLayer.layer = layer;
+          }
+          olLayers.insertAt(index, layer);
+        } else if (index !== olIndex) {
+          // layer has moved inside the layers list
+          olLayers.removeAt(olIndex);
+          olLayers.insertAt(index, layer);
+        }
+        layer.setOpacity(itemLayer.opacity);
+        layer.setVisible(itemLayer.visible);
+      });
+      // Remove the layers that have disapeared from childrenLayers
+      if (olLayers.getLength() > itemLayers.length) {
+        for (let i = itemLayers.length; i < olLayers.getLength(); i++) {
+          olLayers.removeAt(i);
+        }
+      }
+    }   
+  }
+
+  ngOnChanges(changes: SimpleChanges) {
+    if (this.instance) {
+      if (changes['itemLayers']) {
+        var itemLayers = changes['itemLayers'].currentValue as IItemLayer[];
+        this.updateLayers(itemLayers);
+      }
+      if (changes['itemLayer']) {
+        var itemLayer = changes['itemLayer'].currentValue as IItemLayer;
+        if(itemLayer) {
+          this.updateLayers([itemLayer]);
+        } else {
+          this.updateLayers([]);
+        }
+      }
+    }
+  }
+}
diff --git a/projects/common-map/src/fm-map/components/aol/item-vector-source/item-vector-source.component.ts b/projects/common-map/src/fm-map/components/aol/item-vector-source/item-vector-source.component.ts
index 977042e..618cc11 100644
--- a/projects/common-map/src/fm-map/components/aol/item-vector-source/item-vector-source.component.ts
+++ b/projects/common-map/src/fm-map/components/aol/item-vector-source/item-vector-source.component.ts
@@ -54,19 +54,27 @@ export class ItemVectorSourceComponent extends SourceVectorComponent implements
     return geometry;
    }
 
+  getSelectedStyle(feature:Feature):style.Style {
+    let key = feature.get('itemType')+"_selected";
+    if(this.stylesCache[key]) {
+      return this.stylesCache[key];
+    }
+    return this.stylesCache["selected"];
+  }
+
   ngOnInit() {
     this.strategy = loadingstrategy.bbox;
     this.format = new GeoJSON();
     this._select = new Select({
       style: (feature) => {        
-        return this.stylesCache['selected'];
+        return this.getSelectedStyle(feature);
       },
       hitTolerance: 10,
       layers: [this.layer.instance as Layer]
     });
     this._hoverSelect = new Select({
       style: (feature) => {
-        return this.stylesCache['selected'];
+        return this.getSelectedStyle(feature);
       },
       hitTolerance: 10,
       condition: (e: MapBrowserEvent) => {
@@ -148,7 +156,7 @@ export class ItemVectorSourceComponent extends SourceVectorComponent implements
       for (const key in styles) {
         if (styles.hasOwnProperty(key)) {
           let style = styles[key];
-          if(style.geometry == null) {
+          if(style.geometry_ == null) {
             style.setGeometry((feature) => this.geometry(feature));
           }          
           this.stylesCache[key]=style;
diff --git a/projects/common-map/src/fm-map/components/map/map.component.ts b/projects/common-map/src/fm-map/components/map/map.component.ts
index b95024b..9b51607 100644
--- a/projects/common-map/src/fm-map/components/map/map.component.ts
+++ b/projects/common-map/src/fm-map/components/map/map.component.ts
@@ -32,6 +32,7 @@ import {Extent,createEmpty,extend } from 'ol/extent';
 import {transform} from 'ol/proj';
 import { query } from '@angular/animations';
 import { tassign } from 'tassign';
+import * as style from 'ol/style';
 
 
 @Component({
@@ -156,6 +157,26 @@ export class MapComponent implements OnInit, OnDestroy,AfterViewInit {
     this.query$.pipe(withLatestFrom(this.mapState$)).subscribe((state) => {
       this.replaceUrl(state[1], state[0],false);
     });
+    this.initCustomStyles();
+  }
+
+  initCustomStyles() {
+    this.store.dispatch(new mapActions.SetStyle('vnd.farmmaps.itemtype.layer',new style.Style({
+      stroke: new style.Stroke({
+        color: 'red',
+        lineDash: [ 5,5],
+        width: 1
+      }),
+      geometry:(feature) =>feature.getGeometry()
+    })));
+    this.store.dispatch(new mapActions.SetStyle('vnd.farmmaps.itemtype.layer_selected',new style.Style({
+      stroke: new style.Stroke({
+        color: 'red',
+        lineDash: [ 5,5],
+        width: 3
+      }),
+      geometry:(feature) =>feature.getGeometry()
+    })));
   }
 
   private stateSetCount: number = 0;