diff --git a/public/app/plugins/panel/geomap/layers/data/dayNightLayer.tsx b/public/app/plugins/panel/geomap/layers/data/dayNightLayer.tsx index e9ef19af26f..dff87ea84bc 100644 --- a/public/app/plugins/panel/geomap/layers/data/dayNightLayer.tsx +++ b/public/app/plugins/panel/geomap/layers/data/dayNightLayer.tsx @@ -4,7 +4,7 @@ import { Coordinate } from 'ol/coordinate'; import { MultiLineString } from 'ol/geom'; import Point from 'ol/geom/Point'; import { Group as LayerGroup } from 'ol/layer'; -import VectorLayer from 'ol/layer/Vector'; +import VectorImage from 'ol/layer/VectorImage'; import { fromLonLat } from 'ol/proj'; import VectorSource from 'ol/source/Vector'; import { Fill, Stroke, Style, Circle } from 'ol/style'; @@ -78,7 +78,7 @@ export const dayNightLayer: MapLayerRegistryItem = { const sourceLineMethods = Object.getPrototypeOf(sourceLine); // Night polygon - const vectorLayer = new VectorLayer({ + const vectorLayer = new VectorImage({ source, style: new Style({ fill: new Fill({ @@ -88,7 +88,7 @@ export const dayNightLayer: MapLayerRegistryItem = { }); // Night line (for crosshair sharing) - const nightLineLayer = new VectorLayer({ + const nightLineLayer = new VectorImage({ source: new VectorSource({ features: [], }), @@ -106,7 +106,7 @@ export const dayNightLayer: MapLayerRegistryItem = { geometry: new Point([]), }); - const sunLayer = new VectorLayer({ + const sunLayer = new VectorImage({ source: new VectorSource({ features: [sunFeature], }), @@ -144,7 +144,7 @@ export const dayNightLayer: MapLayerRegistryItem = { }), }); - const sunLineLayer = new VectorLayer({ + const sunLineLayer = new VectorImage({ source: new VectorSource({ features: [sunLineFeature], }), diff --git a/public/app/plugins/panel/geomap/layers/data/geojsonDynamic.ts b/public/app/plugins/panel/geomap/layers/data/geojsonDynamic.ts index 3692bbc31a8..924a732707d 100644 --- a/public/app/plugins/panel/geomap/layers/data/geojsonDynamic.ts +++ b/public/app/plugins/panel/geomap/layers/data/geojsonDynamic.ts @@ -2,7 +2,7 @@ import { FeatureLike } from 'ol/Feature'; import OlMap from 'ol/Map'; import { unByKey } from 'ol/Observable'; import GeoJSON from 'ol/format/GeoJSON'; -import VectorLayer from 'ol/layer/Vector'; +import VectorImage from 'ol/layer/VectorImage'; import VectorSource from 'ol/source/Vector'; import { Fill, Stroke, Style } from 'ol/style'; import { ReplaySubject } from 'rxjs'; @@ -118,7 +118,7 @@ export const dynamicGeoJSONLayer: MapLayerRegistryItem(); - const vectorLayer = new VectorLayer({ + const vectorLayer = new VectorImage({ source, style: (feature: FeatureLike) => { const idx = idToIdx.get(feature.getId() as string); diff --git a/public/app/plugins/panel/geomap/layers/data/geojsonLayer.ts b/public/app/plugins/panel/geomap/layers/data/geojsonLayer.ts index 0f8c1d9028d..de1bc24eb4e 100644 --- a/public/app/plugins/panel/geomap/layers/data/geojsonLayer.ts +++ b/public/app/plugins/panel/geomap/layers/data/geojsonLayer.ts @@ -2,7 +2,7 @@ import { FeatureLike } from 'ol/Feature'; import Map from 'ol/Map'; import { unByKey } from 'ol/Observable'; import GeoJSON from 'ol/format/GeoJSON'; -import VectorLayer from 'ol/layer/Vector'; +import VectorImage from 'ol/layer/VectorImage'; import VectorSource from 'ol/source/Vector'; import { Style } from 'ol/style'; import { ReplaySubject } from 'rxjs'; @@ -112,7 +112,7 @@ export const geojsonLayer: MapLayerRegistryItem = { const polyStyleStrings: string[] = Object.values(GeoJSONPolyStyles); const pointStyleStrings: string[] = Object.values(GeoJSONPointStyles); const lineStyleStrings: string[] = Object.values(GeoJSONLineStyles); - const vectorLayer = new VectorLayer({ + const vectorLayer = new VectorImage({ source, style: (feature: FeatureLike) => { const featureType = feature.getGeometry()?.getType(); diff --git a/public/app/plugins/panel/geomap/layers/data/markersLayer.tsx b/public/app/plugins/panel/geomap/layers/data/markersLayer.tsx index fa838bbd810..90581083596 100644 --- a/public/app/plugins/panel/geomap/layers/data/markersLayer.tsx +++ b/public/app/plugins/panel/geomap/layers/data/markersLayer.tsx @@ -1,7 +1,7 @@ import { isNumber } from 'lodash'; import { FeatureLike } from 'ol/Feature'; import Map from 'ol/Map'; -import VectorLayer from 'ol/layer/Vector'; +import VectorImage from 'ol/layer/VectorImage'; import React, { ReactNode } from 'react'; import { ReplaySubject } from 'rxjs'; @@ -74,8 +74,9 @@ export const markersLayer: MapLayerRegistryItem = { const style = await getStyleConfigState(config.style); const location = await getLocationMatchers(options.location); const source = new FrameVectorSource(location); - const vectorLayer = new VectorLayer({ + const vectorLayer = new VectorImage({ source, + declutter: false // TODO consider making this an option or explore grouping strategies }); const legendProps = new ReplaySubject(1); diff --git a/public/app/plugins/panel/geomap/layers/data/networkLayer.tsx b/public/app/plugins/panel/geomap/layers/data/networkLayer.tsx index a788bd27be7..1ec70a41b70 100644 --- a/public/app/plugins/panel/geomap/layers/data/networkLayer.tsx +++ b/public/app/plugins/panel/geomap/layers/data/networkLayer.tsx @@ -3,7 +3,7 @@ import { Feature } from 'ol'; import { FeatureLike } from 'ol/Feature'; import Map from 'ol/Map'; import { Geometry, LineString, Point, SimpleGeometry } from 'ol/geom'; -import VectorLayer from 'ol/layer/Vector'; +import VectorImage from 'ol/layer/VectorImage'; import { Fill, Stroke, Style, Text } from 'ol/style'; import FlowLine from 'ol-ext/style/FlowLine'; import React, { ReactNode } from 'react'; @@ -91,7 +91,7 @@ export const networkLayer: MapLayerRegistryItem = { const location = await getLocationMatchers(options.location); const source = new FrameVectorSource(location); - const vectorLayer = new VectorLayer({ + const vectorLayer = new VectorImage({ source, }); const hasArrows = config.arrow === 1 || config.arrow === -1 || config.arrow === 2; diff --git a/public/app/plugins/panel/geomap/layers/data/photosLayer.tsx b/public/app/plugins/panel/geomap/layers/data/photosLayer.tsx index 014f77b2b61..ee2b019dd88 100644 --- a/public/app/plugins/panel/geomap/layers/data/photosLayer.tsx +++ b/public/app/plugins/panel/geomap/layers/data/photosLayer.tsx @@ -1,6 +1,6 @@ import { FeatureLike } from 'ol/Feature'; import Map from 'ol/Map'; -import VectorLayer from 'ol/layer/Vector'; +import VectorImage from 'ol/layer/VectorImage'; import { Stroke, Style } from 'ol/style'; import Photo from 'ol-ext/style/Photo'; @@ -86,7 +86,7 @@ export const photosLayer: MapLayerRegistryItem = { const location = await getLocationMatchers(options.location); const source = new FrameVectorSource(location); - const vectorLayer = new VectorLayer({ + const vectorLayer = new VectorImage({ source, }); diff --git a/public/app/plugins/panel/geomap/layers/data/routeLayer.tsx b/public/app/plugins/panel/geomap/layers/data/routeLayer.tsx index d7f86b10ab0..43e9500ad0c 100644 --- a/public/app/plugins/panel/geomap/layers/data/routeLayer.tsx +++ b/public/app/plugins/panel/geomap/layers/data/routeLayer.tsx @@ -3,7 +3,7 @@ import Feature, { FeatureLike } from 'ol/Feature'; import Map from 'ol/Map'; import { LineString, Point, SimpleGeometry } from 'ol/geom'; import { Group as LayerGroup } from 'ol/layer'; -import VectorLayer from 'ol/layer/Vector'; +import VectorImage from 'ol/layer/VectorImage'; import VectorSource from 'ol/source/Vector'; import { Fill, Stroke, Style, Circle } from 'ol/style'; import FlowLine from 'ol-ext/style/FlowLine'; @@ -94,7 +94,7 @@ export const routeLayer: MapLayerRegistryItem = { const style = await getStyleConfigState(config.style); const location = await getLocationMatchers(options.location); const source = new FrameVectorSource(location); - const vectorLayer = new VectorLayer({ source }); + const vectorLayer = new VectorImage({ source }); const hasArrows = config.arrow === 1 || config.arrow === -1; if (!style.fields && !hasArrows) { @@ -222,14 +222,14 @@ export const routeLayer: MapLayerRegistryItem = { }), }); - const crosshairLayer = new VectorLayer({ + const crosshairLayer = new VectorImage({ source: new VectorSource({ features: [crosshairFeature], }), style: crosshairStyle, }); - const linesLayer = new VectorLayer({ + const linesLayer = new VectorImage({ source: new VectorSource({ features: lineFeatures, }),