Aw4751 eslint fixes
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
All checks were successful
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good
This commit is contained in:
@@ -28,7 +28,7 @@ export class FileDropTargetComponent implements OnInit, OnDestroy {
|
||||
|
||||
ngOnInit() {
|
||||
this.element = this.map.instance.getViewport();
|
||||
let other = this;
|
||||
const other = this;
|
||||
this.element.addEventListener('drop', this.onDrop, false);
|
||||
this.element.addEventListener('dragover', this.preventDefault, false);
|
||||
this.element.addEventListener('dragenter', this.preventDefault, false);
|
||||
@@ -36,20 +36,20 @@ export class FileDropTargetComponent implements OnInit, OnDestroy {
|
||||
|
||||
private onDrop = (event: DragEvent) => {
|
||||
this.stopEvent(event);
|
||||
let geojsonFormat = new GeoJSON();
|
||||
var parentCode = this.parentCode;
|
||||
var coordinate = this.map.instance.getEventCoordinate(event);
|
||||
const geojsonFormat = new GeoJSON();
|
||||
let parentCode = this.parentCode;
|
||||
const coordinate = this.map.instance.getEventCoordinate(event);
|
||||
//coordinate = proj.transform(coordinate, this.map.instance.getView().getProjection(), 'EPSG:4326');
|
||||
var geometry:Geometry = new Point(coordinate);
|
||||
var hitFeatures = this.map.instance.getFeaturesAtPixel([event.pageX, event.pageY]);
|
||||
var hitFeature = hitFeatures && hitFeatures.length > 0 ? hitFeatures[0] : null;
|
||||
let geometry:Geometry = new Point(coordinate);
|
||||
const hitFeatures = this.map.instance.getFeaturesAtPixel([event.pageX, event.pageY]);
|
||||
const hitFeature = hitFeatures && hitFeatures.length > 0 ? hitFeatures[0] : null;
|
||||
if (hitFeature) {
|
||||
if (hitFeature.get("code")) {
|
||||
parentCode = hitFeature.get("code");
|
||||
}
|
||||
geometry = geojsonFormat.readGeometry(geojsonFormat.writeGeometry(geometry)); // create copy instead of reference
|
||||
}
|
||||
var projectedGeometry = geometry.transform(this.map.instance.getView().getProjection(), 'EPSG:4326');
|
||||
const projectedGeometry = geometry.transform(this.map.instance.getView().getProjection(), 'EPSG:4326');
|
||||
|
||||
if (event.dataTransfer && event.dataTransfer.files) {
|
||||
this.onFileDropped.emit({ files: event.dataTransfer.files, event: event, geometry: JSON.parse(geojsonFormat.writeGeometry(projectedGeometry)),parentCode:parentCode})
|
||||
|
@@ -15,16 +15,16 @@ export class GpsLocation implements OnInit,OnChanges{
|
||||
public instance: Overlay;
|
||||
@Input() position: GeolocationPosition;
|
||||
@Input() location: number[]=[0,0];
|
||||
@Input() locationTolerance: number = 0;
|
||||
@Input() showHeading: boolean = false;
|
||||
@Input() showTolerance: boolean = false;
|
||||
@Input() heading: number = 0;
|
||||
@Input() headingTolerance: number = 0;
|
||||
public locTolerancePixels: number = 0;
|
||||
public path: string = "";
|
||||
public rotate: string = "";
|
||||
private resolution: number = 0;
|
||||
initialized:boolean = false;
|
||||
@Input() locationTolerance = 0;
|
||||
@Input() showHeading = false;
|
||||
@Input() showTolerance = false;
|
||||
@Input() heading = 0;
|
||||
@Input() headingTolerance = 0;
|
||||
public locTolerancePixels = 0;
|
||||
public path = "";
|
||||
public rotate = "";
|
||||
private resolution = 0;
|
||||
initialized = false;
|
||||
@ViewChild('location', { static: true }) locationElement: ElementRef;
|
||||
|
||||
constructor(private map: MapComponent) {
|
||||
@@ -42,12 +42,12 @@ export class GpsLocation implements OnInit,OnChanges{
|
||||
position: fromLonLat( this.location),
|
||||
element: this.locationElement.nativeElement
|
||||
});
|
||||
var x = Math.tan(this.headingTolerance * Math.PI / 180)*40;
|
||||
var y = Math.cos(this.headingTolerance * Math.PI / 180) * 40;
|
||||
var y1 = Math.round(500 - y);
|
||||
var x1 = Math.round(500 - x);
|
||||
var y2 = Math.round(y1);
|
||||
var x2 = Math.round(500 + x);
|
||||
const x = Math.tan(this.headingTolerance * Math.PI / 180)*40;
|
||||
const y = Math.cos(this.headingTolerance * Math.PI / 180) * 40;
|
||||
const y1 = Math.round(500 - y);
|
||||
const x1 = Math.round(500 - x);
|
||||
const y2 = Math.round(y1);
|
||||
const x2 = Math.round(500 + x);
|
||||
this.path = "M " + x2 + " " + y2 + " A 45 45,0,0,0, " + x1 + " " + y1 + " L 493 500 L 507 500 Z";
|
||||
this.rotate = "rotate(" + Math.round(this.heading) + " 500 500)";
|
||||
this.locTolerancePixels = this.locationTolerance;
|
||||
@@ -61,7 +61,7 @@ export class GpsLocation implements OnInit,OnChanges{
|
||||
|
||||
ngOnChanges(changes: SimpleChanges) {
|
||||
if (changes.position && this.instance) {
|
||||
var p = changes.position.currentValue as GeolocationPosition;
|
||||
const p = changes.position.currentValue as GeolocationPosition;
|
||||
if(p && this.initialized) {
|
||||
this.instance.setPosition(fromLonLat([p.coords.longitude, p.coords.latitude]));
|
||||
this.locationTolerance = p.coords.accuracy;
|
||||
|
@@ -35,7 +35,7 @@ export class ItemLayersComponent extends LayerGroupComponent implements OnChange
|
||||
@Output() onFeatureHover: EventEmitter<any> = new EventEmitter<any>();
|
||||
@Output() onPrerender: EventEmitter<any> = new EventEmitter<any>();
|
||||
private _apiEndPoint: string;
|
||||
private initialized:boolean = false;
|
||||
private initialized = false;
|
||||
private mapEventHandlerInstalled = false;
|
||||
private topLayerPrerenderEventhandlerInstalled = false;
|
||||
private selectedFeatures = {};
|
||||
@@ -49,7 +49,7 @@ export class ItemLayersComponent extends LayerGroupComponent implements OnChange
|
||||
private styleCache = {}
|
||||
|
||||
componentToHex(c) {
|
||||
var hex = c.toString(16);
|
||||
const hex = c.toString(16);
|
||||
return hex.length == 1 ? "0" + hex : hex;
|
||||
}
|
||||
|
||||
@@ -58,28 +58,28 @@ export class ItemLayersComponent extends LayerGroupComponent implements OnChange
|
||||
}
|
||||
|
||||
getColorFromGradient(layer: ILayer, value: number): IColor {
|
||||
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];
|
||||
const gradient: IGradientstop[] = layer.renderer.colorMap.gradient;
|
||||
const histogram: IHistogram = layer.renderer.band.histogram;
|
||||
const index = (value - histogram.min) / histogram.max;
|
||||
let min = gradient[0];
|
||||
let max = gradient[gradient.length - 1];
|
||||
for (let n = 0; n < gradient.length; n++) {
|
||||
const 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));
|
||||
const i = index - min.relativestop;
|
||||
const size = max.relativestop - min.relativestop;
|
||||
const alpha = Math.round(min.color.alpha + ((max.color.alpha - min.color.alpha) * i / size));
|
||||
const red = Math.round(min.color.red + ((max.color.red - min.color.red) * i / size));
|
||||
const green = Math.round(min.color.green + ((max.color.green - min.color.green) * i / size));
|
||||
const blue = Math.round(min.color.blue + ((max.color.blue - min.color.blue) * i / size));
|
||||
|
||||
return { alpha: alpha, red: red, green: green, blue: blue };
|
||||
}
|
||||
|
||||
getColorForValue(layer: ILayer, value: number): IColor {
|
||||
var color: IColor = { alpha:0,red:0,green:0,blue:0};
|
||||
let color: IColor = { alpha:0,red:0,green:0,blue:0};
|
||||
if(layer.renderer.colorMap.entries.length>0) {
|
||||
color=layer.renderer.colorMap.noValue;
|
||||
}
|
||||
@@ -94,10 +94,10 @@ export class ItemLayersComponent extends LayerGroupComponent implements OnChange
|
||||
}
|
||||
|
||||
getColor(item: IItem, layer: ILayer, feature): style.Style {
|
||||
var value = layer.indexKey ? feature.get(layer.indexKey) : feature.get(layer.name);
|
||||
var key = item.code + "_" + value;
|
||||
const value = layer.indexKey ? feature.get(layer.indexKey) : feature.get(layer.name);
|
||||
const key = item.code + "_" + value;
|
||||
if (!this.styleCache[key]) {
|
||||
var color: IColor;
|
||||
let color: IColor;
|
||||
if(layer.renderer.colorMap.colormapType == "manual") {
|
||||
color = this.getColorForValue(layer, value);
|
||||
} else {
|
||||
@@ -125,32 +125,32 @@ export class ItemLayersComponent extends LayerGroupComponent implements OnChange
|
||||
}
|
||||
|
||||
createGeotiffLayer(item:IItem,itemLayer:IItemLayer):Layer<Source> {
|
||||
var layerIndex = -1;
|
||||
var layer: Layer<Source> = null;
|
||||
let layerIndex = -1;
|
||||
let layer: Layer<Source> = null;
|
||||
layerIndex = itemLayer.layerIndex != -1 ? itemLayer.layerIndex : item.data.layers[0].index;
|
||||
let source = new XYZ({ maxZoom: 19, minZoom: 1, url: `${this._apiEndPoint}/api/v1/items/${item.code}/tiles/${layerIndex}/{z}/{x}/{y}.png?v=${Date.parse(item.updated)}` });
|
||||
const source = new XYZ({ maxZoom: 19, minZoom: 1, url: `${this._apiEndPoint}/api/v1/items/${item.code}/tiles/${layerIndex}/{z}/{x}/{y}.png?v=${Date.parse(item.updated)}` });
|
||||
layer = new Tile({ source: source });
|
||||
var data = item.data;
|
||||
var l = (data && data.layers && data.layers.length > 0) ? data.layers[0] : null;
|
||||
const data = item.data;
|
||||
const 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({crossOrigin: 'use-credentials', maxZoom: rt.maxzoom, minZoom: rt.minzoom, url: `${this._apiEndPoint}/api/v1/items/${item.code}/tiles/${layerIndex}/{z}/{x}/{y}.png?v=${Date.parse(item.updated)}` });
|
||||
const rt = l.rendering as IRenderoutputTiles;
|
||||
const source = new XYZ({crossOrigin: 'use-credentials', maxZoom: rt.maxzoom, minZoom: rt.minzoom, url: `${this._apiEndPoint}/api/v1/items/${item.code}/tiles/${layerIndex}/{z}/{x}/{y}.png?v=${Date.parse(item.updated)}` });
|
||||
layer = new Tile({ source: source });
|
||||
}
|
||||
if (l && l.rendering && l.rendering.renderoutputType == "Image") {
|
||||
var ri = l.rendering as IRenderoutputImage;
|
||||
let source = new ImageStatic({ imageExtent:ri.extent,projection:'EPSG:3857', crossOrigin: 'use-credentials', url: `${this._apiEndPoint}/api/v1/items/${item.code}/mapimage/${layerIndex}?v=${Date.parse(item.updated)}` });
|
||||
const ri = l.rendering as IRenderoutputImage;
|
||||
const source = new ImageStatic({ imageExtent:ri.extent,projection:'EPSG:3857', crossOrigin: 'use-credentials', url: `${this._apiEndPoint}/api/v1/items/${item.code}/mapimage/${layerIndex}?v=${Date.parse(item.updated)}` });
|
||||
layer = new Image({ source: source });
|
||||
}
|
||||
return layer;
|
||||
}
|
||||
|
||||
createShapeLayer(item:IItem,itemLayer:IItemLayer):Layer<Source> {
|
||||
var layerIndex = -1;
|
||||
var layer: Layer<Source> = null;
|
||||
let layerIndex = -1;
|
||||
let layer: Layer<Source> = null;
|
||||
layerIndex = itemLayer.layerIndex != -1 ? itemLayer.layerIndex : item.data.layers[0].index;
|
||||
var data = item.data;
|
||||
var l:ILayer = (data && data.layers && data.layers.length > 0) ? data.layers[layerIndex] : null;
|
||||
const data = item.data;
|
||||
const l:ILayer = (data && data.layers && data.layers.length > 0) ? data.layers[layerIndex] : null;
|
||||
if (l && l.rendering && l.rendering.renderoutputType == "VectorTiles") {
|
||||
var rt = l.rendering as IRenderoutputTiles;
|
||||
layer = new VectorTileLayer({
|
||||
@@ -175,15 +175,15 @@ export class ItemLayersComponent extends LayerGroupComponent implements OnChange
|
||||
})
|
||||
});
|
||||
} else {
|
||||
let __this = this;
|
||||
let format = new GeoJSON();
|
||||
let source = new VectorSource({
|
||||
const __this = this;
|
||||
const format = new GeoJSON();
|
||||
const source = new VectorSource({
|
||||
strategy: loadingstrategy.bbox,
|
||||
loader: function (extent: Extent, resolution: number, projection: Projection) {
|
||||
var source = this as VectorSource<Geometry>;
|
||||
const source = this as VectorSource<Geometry>;
|
||||
__this.itemService.getItemFeatures(item.code, extent, projection.getCode(), layerIndex).subscribe(function (data) {
|
||||
var features = format.readFeatures(data);
|
||||
for (let f of features) {
|
||||
const features = format.readFeatures(data);
|
||||
for (const f of features) {
|
||||
if (f.get("code")) {
|
||||
f.setId(f.get("code"));
|
||||
}
|
||||
@@ -196,9 +196,9 @@ export class ItemLayersComponent extends LayerGroupComponent implements OnChange
|
||||
declutter: true,
|
||||
source: source,
|
||||
style: (feature) => {
|
||||
var key =feature.get("code") + "_" + feature.get("color");
|
||||
const key =feature.get("code") + "_" + feature.get("color");
|
||||
if (!this.styleCache[key]) {
|
||||
var color = feature.get("color");
|
||||
const color = feature.get("color");
|
||||
this.styleCache[key] = new style.Style(
|
||||
{
|
||||
fill: new style.Fill({
|
||||
@@ -235,11 +235,11 @@ export class ItemLayersComponent extends LayerGroupComponent implements OnChange
|
||||
}
|
||||
|
||||
createSelectionLayer(itemLayer:IItemLayer):Layer<Source> {
|
||||
var layerIndex = -1;
|
||||
var layer: Layer<Source> = null;
|
||||
let layerIndex = -1;
|
||||
const layer: Layer<Source> = null;
|
||||
layerIndex = itemLayer.layerIndex != -1 ? itemLayer.layerIndex : itemLayer.item.data.layers[0].index;
|
||||
var data = itemLayer.item.data;
|
||||
var l:ILayer = (data && data.layers && data.layers.length > 0) ? data.layers[layerIndex] : null;
|
||||
const data = itemLayer.item.data;
|
||||
const l:ILayer = (data && data.layers && data.layers.length > 0) ? data.layers[layerIndex] : null;
|
||||
if (l && l.rendering && l.rendering.renderoutputType == "VectorTiles") {
|
||||
return new VectorTileLayer({
|
||||
renderMode: 'vector',
|
||||
@@ -265,36 +265,36 @@ export class ItemLayersComponent extends LayerGroupComponent implements OnChange
|
||||
}
|
||||
|
||||
createExternalLayer(item:IItem,itemLayer:IItemLayer):Layer<Source> {
|
||||
let data = item.data as ILayerData;
|
||||
var layer: Layer<Source> = null;
|
||||
const data = item.data as ILayerData;
|
||||
let layer: Layer<Source> = null;
|
||||
switch (data.interfaceType) {
|
||||
case 'OSM': {
|
||||
let source = new OSM();
|
||||
const source = new OSM();
|
||||
layer = new Tile({ source: source });
|
||||
break;
|
||||
}
|
||||
case 'BingMaps': {
|
||||
let source = new BingMaps(data.options);
|
||||
const source = new BingMaps(data.options);
|
||||
layer = new Tile({ source: source });
|
||||
break;
|
||||
}
|
||||
case 'TileWMS': {
|
||||
let source = new TileWMS(data.options);
|
||||
const source = new TileWMS(data.options);
|
||||
layer = new Tile({ source: source });
|
||||
break;
|
||||
}
|
||||
case 'TileJSON': {
|
||||
let source = new TileJSON(data.options);
|
||||
const source = new TileJSON(data.options);
|
||||
layer = new Tile({ source: source });
|
||||
break;
|
||||
}
|
||||
case 'TileArcGISRest': {
|
||||
let source = new TileArcGISRest(data.options);
|
||||
const source = new TileArcGISRest(data.options);
|
||||
layer = new Tile({ source: source });
|
||||
break;
|
||||
}
|
||||
case 'VectorWFSJson': {
|
||||
let source = new VectorSource({
|
||||
const source = new VectorSource({
|
||||
format: new GeoJSON(),
|
||||
url: function (extent) {
|
||||
return (
|
||||
@@ -317,8 +317,8 @@ export class ItemLayersComponent extends LayerGroupComponent implements OnChange
|
||||
}
|
||||
|
||||
createLayer(itemLayer: IItemLayer): Layer<Source> {
|
||||
var layer: Layer<Source> = null;
|
||||
var layerIndex = -1;
|
||||
let layer: Layer<Source> = null;
|
||||
const layerIndex = -1;
|
||||
if (itemLayer.item.itemType == 'vnd.farmmaps.itemtype.geotiff.processed') {
|
||||
layer = this.createGeotiffLayer(itemLayer.item,itemLayer);
|
||||
} else if (itemLayer.item.itemType == 'vnd.farmmaps.itemtype.shape.processed') {
|
||||
@@ -327,8 +327,8 @@ export class ItemLayersComponent extends LayerGroupComponent implements OnChange
|
||||
layer = this.createExternalLayer(itemLayer.item,itemLayer);
|
||||
}
|
||||
if (layer) {
|
||||
let geometry = new GeoJSON().readGeometry(itemLayer.item.geometry);
|
||||
let extent = geometry ? proj.transformExtent(geometry.getExtent(), 'EPSG:4326', 'EPSG:3857') : null;
|
||||
const geometry = new GeoJSON().readGeometry(itemLayer.item.geometry);
|
||||
const extent = geometry ? proj.transformExtent(geometry.getExtent(), 'EPSG:4326', 'EPSG:3857') : null;
|
||||
if (extent) layer.setExtent(extent);
|
||||
}
|
||||
|
||||
@@ -378,7 +378,7 @@ export class ItemLayersComponent extends LayerGroupComponent implements OnChange
|
||||
if(this.topLayerPrerenderEventhandlerInstalled && this.onPrerender.observers.length > 0 )
|
||||
{
|
||||
if(this.instance.getVisible()) {
|
||||
var olLayers = this.instance.getLayers().getArray().forEach((l:any) => {
|
||||
const olLayers = this.instance.getLayers().getArray().forEach((l:any) => {
|
||||
l.un('prerender',this.topLayerPrerenderEventhandler);
|
||||
l.un('postrender',this.topLayerPostrenderEventhandler);
|
||||
});
|
||||
@@ -390,9 +390,9 @@ export class ItemLayersComponent extends LayerGroupComponent implements OnChange
|
||||
|
||||
addOrUpdateOlLayer(itemLayer:IItemLayer,index:number):Layer<Source> {
|
||||
if(!itemLayer) return null;
|
||||
var olLayers = this.instance.getLayers();
|
||||
var layer = itemLayer.layer;
|
||||
let olIndex = olLayers.getArray().indexOf(layer);
|
||||
const olLayers = this.instance.getLayers();
|
||||
let layer = itemLayer.layer;
|
||||
const olIndex = olLayers.getArray().indexOf(layer);
|
||||
if (olIndex < 0) {
|
||||
// New layer: we add it to the map
|
||||
layer = this.createLayer(itemLayer);
|
||||
@@ -415,33 +415,33 @@ export class ItemLayersComponent extends LayerGroupComponent implements OnChange
|
||||
updateLayers(itemLayers: IItemLayer[] | IItemLayer) {
|
||||
this.unInstallTopLayerPrerenderEventhandler();
|
||||
let dataLayer = false;
|
||||
var ils:IItemLayer[] = [];
|
||||
let ils:IItemLayer[] = [];
|
||||
if(Array.isArray(itemLayers)) {
|
||||
ils = itemLayers;
|
||||
} else {
|
||||
dataLayer=true;
|
||||
ils=[itemLayers];
|
||||
}
|
||||
let newLayers: Layer<Source>[] = [];
|
||||
const newLayers: Layer<Source>[] = [];
|
||||
if (ils) {
|
||||
ils.forEach((itemLayer, index) => {
|
||||
if(itemLayer.item.itemType == 'vnd.farmmaps.itemtype.temporal') {
|
||||
let il = itemLayer as ITemporalItemLayer;
|
||||
let previousLayer = this.addOrUpdateOlLayer(il.previousItemLayer,newLayers.length);
|
||||
const il = itemLayer as ITemporalItemLayer;
|
||||
const previousLayer = this.addOrUpdateOlLayer(il.previousItemLayer,newLayers.length);
|
||||
if(previousLayer) newLayers.push(previousLayer);
|
||||
let selectedLayer = this.addOrUpdateOlLayer(il.selectedItemLayer,newLayers.length);
|
||||
const selectedLayer = this.addOrUpdateOlLayer(il.selectedItemLayer,newLayers.length);
|
||||
if(selectedLayer) newLayers.push(selectedLayer);
|
||||
let nextLayer = this.addOrUpdateOlLayer(il.nextItemLayer,newLayers.length);
|
||||
const nextLayer = this.addOrUpdateOlLayer(il.nextItemLayer,newLayers.length);
|
||||
if(nextLayer) newLayers.push(nextLayer);
|
||||
this.installTopLayerPrerenderEventhandler(selectedLayer);
|
||||
} else {
|
||||
let layer = this.addOrUpdateOlLayer(itemLayer,newLayers.length);
|
||||
const layer = this.addOrUpdateOlLayer(itemLayer,newLayers.length);
|
||||
if(layer) newLayers.push(layer);
|
||||
this.installTopLayerPrerenderEventhandler(layer);
|
||||
}
|
||||
});
|
||||
// Remove the layers that have disapeared from childrenLayers
|
||||
var olLayers = this.instance.getLayers();
|
||||
const olLayers = this.instance.getLayers();
|
||||
while(olLayers.getLength() > newLayers.length) {
|
||||
olLayers.removeAt(newLayers.length);
|
||||
}
|
||||
@@ -467,20 +467,20 @@ export class ItemLayersComponent extends LayerGroupComponent implements OnChange
|
||||
// select only when having observers
|
||||
if(event.type === 'click' && !this.onFeatureSelected.observers.length) return;
|
||||
if(event.type === 'pointermove' && !this.onFeatureHover.observers.length) return;
|
||||
let itemLayer= this.getItemlayer(this.itemLayer);
|
||||
const itemLayer= this.getItemlayer(this.itemLayer);
|
||||
if(itemLayer && itemLayer.layer) {
|
||||
this.selectedFeatures = {};
|
||||
if(itemLayer.layer ) {
|
||||
let minZoom = itemLayer.layer.getMinZoom();
|
||||
let currentZoom = this.map.instance.getView().getZoom();
|
||||
const minZoom = itemLayer.layer.getMinZoom();
|
||||
const currentZoom = this.map.instance.getView().getZoom();
|
||||
if(currentZoom>minZoom) {
|
||||
itemLayer.layer.getFeatures(event.pixel).then((features) => {
|
||||
if(!features.length) {
|
||||
this.onFeatureHover.emit(null);
|
||||
return;
|
||||
}
|
||||
let fid = features[0].getId();
|
||||
let feature = features[0];
|
||||
const fid = features[0].getId();
|
||||
const feature = features[0];
|
||||
if(event.type === 'pointermove') {
|
||||
this.selectedFeatures[fid] = features[0];
|
||||
this.onFeatureHover.emit({ "feature": feature,"itemCode":itemLayer.item.code });
|
||||
@@ -502,11 +502,11 @@ export class ItemLayersComponent extends LayerGroupComponent implements OnChange
|
||||
ngOnChanges(changes: SimpleChanges) {
|
||||
if (this.instance && this.initialized) {
|
||||
if (changes['itemLayers']) {
|
||||
var itemLayers = changes['itemLayers'].currentValue as IItemLayer[];
|
||||
const itemLayers = changes['itemLayers'].currentValue as IItemLayer[];
|
||||
this.updateLayers(itemLayers);
|
||||
}
|
||||
if (changes['itemLayer']) {
|
||||
var itemLayer = changes['itemLayer'].currentValue as IItemLayer;
|
||||
const itemLayer = changes['itemLayer'].currentValue as IItemLayer;
|
||||
this.itemLayer = itemLayer
|
||||
if(itemLayer) {
|
||||
if(this.getItemlayer(this.itemLayer).item.itemType == 'vnd.farmmaps.itemtype.shape.processed') {
|
||||
|
@@ -30,7 +30,7 @@ export class ItemVectorSourceComponent extends SourceVectorComponent implements
|
||||
private _format: GeoJSON;
|
||||
private _select: Select;
|
||||
private _hoverSelect: Select;
|
||||
private _iconScale: number = 0.05;
|
||||
private _iconScale = 0.05;
|
||||
@Input() features: Array<Feature<Geometry>>;
|
||||
@Input() selectedFeature: Feature<Geometry>;
|
||||
@Input() selectedItem: IItem;
|
||||
@@ -45,10 +45,10 @@ export class ItemVectorSourceComponent extends SourceVectorComponent implements
|
||||
}
|
||||
|
||||
geometry(feature: Feature<Geometry>) {
|
||||
let view = this.map.instance.getView();
|
||||
let resolution = view.getResolution();
|
||||
var geometry = feature.getGeometry();
|
||||
let e = geometry.getExtent();
|
||||
const view = this.map.instance.getView();
|
||||
const resolution = view.getResolution();
|
||||
let geometry = feature.getGeometry();
|
||||
const e = geometry.getExtent();
|
||||
//var size = Math.max((e[2] - e[0]) / resolution, (e[3] - e[1]) / resolution);
|
||||
if (resolution > 12) {
|
||||
geometry = new Point(extent.getCenter(e));
|
||||
@@ -57,9 +57,9 @@ export class ItemVectorSourceComponent extends SourceVectorComponent implements
|
||||
}
|
||||
|
||||
getSelectedStyle(feature: Feature<Geometry>): style.Style {
|
||||
let key = feature.get('itemType') + "_selected";
|
||||
const key = feature.get('itemType') + "_selected";
|
||||
let evaluatedStyle: style.Style = undefined;
|
||||
var styleEntry = this.stylesCache[key];
|
||||
const styleEntry = this.stylesCache[key];
|
||||
if (styleEntry) {
|
||||
if (typeof styleEntry === 'function') {
|
||||
evaluatedStyle = styleEntry(feature);
|
||||
@@ -113,12 +113,12 @@ export class ItemVectorSourceComponent extends SourceVectorComponent implements
|
||||
this.host.instance.setSource(this.instance);
|
||||
|
||||
this.host.instance.setStyle((feature) => {
|
||||
var itemType = feature.get('itemType');
|
||||
var key = itemType + (this.selectedItem ? "_I" : "");
|
||||
const itemType = feature.get('itemType');
|
||||
let key = itemType + (this.selectedItem ? "_I" : "");
|
||||
if (!this.stylesCache[key]) {
|
||||
if (this.itemTypeService.itemTypes[itemType]) {
|
||||
let itemTypeEntry = this.itemTypeService.itemTypes[itemType];
|
||||
let fillColor = color.asArray(itemTypeEntry.iconColor);
|
||||
const itemTypeEntry = this.itemTypeService.itemTypes[itemType];
|
||||
const fillColor = color.asArray(itemTypeEntry.iconColor);
|
||||
fillColor[3] = 0;
|
||||
this.stylesCache[key] = new style.Style({
|
||||
image: itemTypeEntry.icon ? new style.Icon({
|
||||
@@ -140,7 +140,7 @@ export class ItemVectorSourceComponent extends SourceVectorComponent implements
|
||||
}
|
||||
}
|
||||
let evaluatedStyle = null;
|
||||
var styleEntry = this.stylesCache[key];
|
||||
const styleEntry = this.stylesCache[key];
|
||||
if (typeof styleEntry === 'function') {
|
||||
evaluatedStyle = styleEntry(feature);
|
||||
} else {
|
||||
@@ -161,8 +161,8 @@ export class ItemVectorSourceComponent extends SourceVectorComponent implements
|
||||
}
|
||||
|
||||
if (changes["selectedFeature"] && this.instance) {
|
||||
var features = this._hoverSelect.getFeatures();
|
||||
var feature = changes["selectedFeature"].currentValue
|
||||
const features = this._hoverSelect.getFeatures();
|
||||
const feature = changes["selectedFeature"].currentValue
|
||||
//this.instance.clear(false);
|
||||
//this.instance.addFeatures(features.getArray());
|
||||
features.clear();
|
||||
@@ -172,7 +172,7 @@ export class ItemVectorSourceComponent extends SourceVectorComponent implements
|
||||
}
|
||||
}
|
||||
if (changes["selectedItem"] && this.instance) {
|
||||
var item = changes["selectedItem"].currentValue
|
||||
const item = changes["selectedItem"].currentValue
|
||||
if (item) {
|
||||
this.map.instance.removeInteraction(this._hoverSelect);
|
||||
} else {
|
||||
@@ -180,7 +180,7 @@ export class ItemVectorSourceComponent extends SourceVectorComponent implements
|
||||
}
|
||||
}
|
||||
if (changes["styles"]) {
|
||||
let styles = changes["styles"].currentValue;
|
||||
const styles = changes["styles"].currentValue;
|
||||
for (const key in styles) {
|
||||
if (styles.hasOwnProperty(key)) {
|
||||
this.stylesCache[key] = styles[key];
|
||||
|
@@ -9,8 +9,8 @@ import { IItemLayer } from '../../../models/item.layer';
|
||||
|
||||
export class LayerListComponent {
|
||||
@Input() itemLayers: IItemLayer[] = [];
|
||||
@Input() baseLayers: boolean = false;
|
||||
@Input() dataLayers: boolean = false;
|
||||
@Input() baseLayers = false;
|
||||
@Input() dataLayers = false;
|
||||
@Output() onToggleVisibility = new EventEmitter<IItemLayer>();
|
||||
@Output() onSetOpacity = new EventEmitter<{layer: IItemLayer,opacity:number }>();
|
||||
@Output() onDelete = new EventEmitter<IItemLayer>();
|
||||
|
@@ -21,9 +21,9 @@ import { Point } from 'ol/geom';
|
||||
export class LayerValuesComponent implements OnInit,AfterViewInit {
|
||||
|
||||
@ViewChild('layerValues') containerRef:ElementRef;
|
||||
offsetX$:number =0;
|
||||
offsetY$:number =0;
|
||||
lonlat$: string="";
|
||||
offsetX$ =0;
|
||||
offsetY$ =0;
|
||||
lonlat$="";
|
||||
wkt$= "";
|
||||
layerValues$:Observable<Array<ILayervalue>> = this.store.select(mapReducers.selectGetLayerValues);
|
||||
enabled$:Observable<boolean> = this.store.select(mapReducers.selectGetLayerValuesEnabled);
|
||||
@@ -49,8 +49,8 @@ export class LayerValuesComponent implements OnInit,AfterViewInit {
|
||||
}
|
||||
|
||||
updateValuesLocation() {
|
||||
var xy = this.map.instance.getCoordinateFromPixel([this.offsetX$,this.offsetY$])
|
||||
var lonlat = toLonLat(xy);
|
||||
const xy = this.map.instance.getCoordinateFromPixel([this.offsetX$,this.offsetY$])
|
||||
const lonlat = toLonLat(xy);
|
||||
this.wkt$ = this.wktFormat$.writeGeometry(new Point(lonlat))
|
||||
this.lonlat$ = toStringHDMS(lonlat);
|
||||
this.store.dispatch(new mapActions.SetLayerValuesLocation(xy[0],xy[1]));
|
||||
|
@@ -43,12 +43,12 @@ export class PanToLocation implements OnInit,OnChanges{
|
||||
|
||||
public centered():boolean {
|
||||
if(this.position && this.mapState) {
|
||||
let center = this.view.getCenter();
|
||||
let newCenter = fromLonLat([this.position.coords.longitude,this.position.coords.latitude]);
|
||||
let x1 = newCenter[0].toFixed(0);
|
||||
let x2 = center[0].toFixed(0);
|
||||
let y1 = newCenter[1].toFixed(0);
|
||||
let y2 = center[1].toFixed(0);
|
||||
const center = this.view.getCenter();
|
||||
const newCenter = fromLonLat([this.position.coords.longitude,this.position.coords.latitude]);
|
||||
const x1 = newCenter[0].toFixed(0);
|
||||
const x2 = center[0].toFixed(0);
|
||||
const y1 = newCenter[1].toFixed(0);
|
||||
const y2 = center[1].toFixed(0);
|
||||
return x1==x2 && y1==y2;
|
||||
}
|
||||
return false;
|
||||
@@ -60,17 +60,17 @@ export class PanToLocation implements OnInit,OnChanges{
|
||||
|
||||
handleClick(event:Event) {
|
||||
if(this.position) {
|
||||
let view = this.map.instance.getView();
|
||||
let newCenter = fromLonLat([this.position.coords.longitude,this.position.coords.latitude]);
|
||||
let extent = [newCenter[0]-500,newCenter[1]-500,newCenter[0]+500,newCenter[1]+500];
|
||||
var options = { padding: [0, 0, 0, 0],minResolution:1 };
|
||||
let size = this.map.instance.getSize();
|
||||
let rem = parseFloat(getComputedStyle(document.documentElement).fontSize);
|
||||
let threshold = 44 * rem;
|
||||
var left = 1 * rem;
|
||||
var right = 1 * rem;
|
||||
var bottom = Math.round(size[1] / 2);
|
||||
var top = 1 * rem;
|
||||
const view = this.map.instance.getView();
|
||||
const newCenter = fromLonLat([this.position.coords.longitude,this.position.coords.latitude]);
|
||||
const extent = [newCenter[0]-500,newCenter[1]-500,newCenter[0]+500,newCenter[1]+500];
|
||||
const options = { padding: [0, 0, 0, 0],minResolution:1 };
|
||||
const size = this.map.instance.getSize();
|
||||
const rem = parseFloat(getComputedStyle(document.documentElement).fontSize);
|
||||
const threshold = 44 * rem;
|
||||
let left = 1 * rem;
|
||||
const right = 1 * rem;
|
||||
let bottom = Math.round(size[1] / 2);
|
||||
const top = 1 * rem;
|
||||
if (size[0] > threshold) {
|
||||
bottom = 1 * rem;
|
||||
left = 23 * rem;
|
||||
|
@@ -14,7 +14,7 @@ export class RotationResetComponent implements OnInit {
|
||||
view: View;
|
||||
|
||||
public Rotation() {
|
||||
let rotation = this.view ? this.view.getRotation() : 0;
|
||||
const rotation = this.view ? this.view.getRotation() : 0;
|
||||
return `rotate(${rotation}rad)`;
|
||||
}
|
||||
|
||||
|
@@ -10,19 +10,19 @@ import { ViewComponent, MapComponent } from 'ngx-openlayers';
|
||||
export class ZoomToExtentComponent implements OnChanges {
|
||||
view: ViewComponent;
|
||||
map: MapComponent;
|
||||
paddingTop: number = 0;
|
||||
paddingLeft: number = 0;
|
||||
paddingBottom: number = 0;
|
||||
paddingRight: number = 0;
|
||||
paddingTop = 0;
|
||||
paddingLeft = 0;
|
||||
paddingBottom = 0;
|
||||
paddingRight = 0;
|
||||
|
||||
@Input() extent: number[];
|
||||
@Input() animate: boolean = false;
|
||||
@Input() animate = false;
|
||||
|
||||
constructor(@Host() view: ViewComponent, @Host() map: MapComponent,route: ActivatedRoute ) {
|
||||
this.view = view;
|
||||
this.map = map;
|
||||
if(route && route.snapshot && route.snapshot.data && route.snapshot.data["fm-map-zoom-to-extent"]) {
|
||||
let params = route.snapshot.data["fm-map-zoom-to-extent"];
|
||||
const params = route.snapshot.data["fm-map-zoom-to-extent"];
|
||||
this.paddingTop = params["padding-top"] ? params["padding-top"] : 0;
|
||||
this.paddingBottom = params["padding-bottom"] ? params["padding-bottom"] : 0;
|
||||
this.paddingLeft = params["padding-left"] ? params["padding-left"] : 0;
|
||||
@@ -32,14 +32,14 @@ export class ZoomToExtentComponent implements OnChanges {
|
||||
|
||||
ngOnChanges(changes: SimpleChanges) {
|
||||
if (this.extent) {
|
||||
var options = { padding: [0, 0, 0, 0],minResolution:1 };
|
||||
let size = this.map.instance.getSize();
|
||||
let rem = parseFloat(getComputedStyle(document.documentElement).fontSize);
|
||||
let threshold = 40 * rem;
|
||||
var left = 1 * rem;
|
||||
var right = 1 * rem;
|
||||
var bottom = Math.round((size[1] / 2) + (4*rem));
|
||||
var top = 1 * rem;
|
||||
const options = { padding: [0, 0, 0, 0],minResolution:1 };
|
||||
const size = this.map.instance.getSize();
|
||||
const rem = parseFloat(getComputedStyle(document.documentElement).fontSize);
|
||||
const threshold = 40 * rem;
|
||||
let left = 1 * rem;
|
||||
const right = 1 * rem;
|
||||
let bottom = Math.round((size[1] / 2) + (4*rem));
|
||||
const top = 1 * rem;
|
||||
if (size[0] > threshold) {
|
||||
bottom = 5 * rem;
|
||||
left = 23 * rem;
|
||||
|
Reference in New Issue
Block a user