From 36b615a4edf6bdf3b2b7788f80ad974ece07f4fe Mon Sep 17 00:00:00 2001 From: karl_tayou Date: Mon, 14 Apr 2025 20:45:18 +0200 Subject: [PATCH] feat(Layer): getPixel of a layer at coordinates --- examples/get_feature_info_wms.html | 26 +++++ examples/get_feature_info_wms.js | 109 ++++++++++++++++++ examples/screenshots/get_feature_info_wms.jpg | Bin 0 -> 52558 bytes src/core/layer/Layer.ts | 65 +++++++++++ 4 files changed, 200 insertions(+) create mode 100644 examples/get_feature_info_wms.html create mode 100644 examples/get_feature_info_wms.js create mode 100644 examples/screenshots/get_feature_info_wms.jpg diff --git a/examples/get_feature_info_wms.html b/examples/get_feature_info_wms.html new file mode 100644 index 0000000000..0ce70bab66 --- /dev/null +++ b/examples/get_feature_info_wms.html @@ -0,0 +1,26 @@ +--- +title: Sample layer color +shortdesc: Retrieve the pixel value of a layer at given coordinates. +longdesc: Use the getPixel() method to change the mouse pointer when hovering a non-transparent pixel on the map. +attribution: layers from © IGN +tags: [map, wms, wmts] +--- + +
+
+
Parameters
+
+ + + +
+
+
diff --git a/examples/get_feature_info_wms.js b/examples/get_feature_info_wms.js new file mode 100644 index 0000000000..109ea04339 --- /dev/null +++ b/examples/get_feature_info_wms.js @@ -0,0 +1,109 @@ +import { Vector2, Vector3 } from 'three'; +import { MapControls } from 'three/examples/jsm/controls/MapControls.js'; + +import Extent from '@giro3d/giro3d/core/geographic/Extent.js'; +import Instance from '@giro3d/giro3d/core/Instance.js'; +import ColorLayer from '@giro3d/giro3d/core/layer/ColorLayer.js'; +import Map from '@giro3d/giro3d/entities/Map.js'; +import Inspector from '@giro3d/giro3d/gui/Inspector.js'; +import WmtsSource from '@giro3d/giro3d/sources/WmtsSource.js'; + +import StatusBar from './widgets/StatusBar.js'; +import Coordinates from '@giro3d/giro3d/core/geographic/Coordinates.js'; +import TiledImageSource from '@giro3d/giro3d/sources/TiledImageSource.js'; +import { TileWMS } from 'ol/source.js'; +import { get as getProjection } from 'ol/proj.js'; +import { bindColorPicker } from './widgets/bindColorPicker.js'; + +const extent = new Extent( + 'EPSG:3857', + -20037508.342789244, + 20037508.342789244, + -20048966.1, + 20048966.1, +); + +const instance = new Instance({ + target: 'view', + crs: extent.crs, + backgroundColor: 'black', +}); +const camPos = new Vector3(258767.3, 6247882.8, 6872.5); +instance.view.camera.position.set(camPos.x, camPos.y, camPos.z); + +const controls = new MapControls(instance.view.camera, instance.domElement); +instance.view.setControls(controls); + +controls.target.set(camPos.x, camPos.y + 1, 0); + +const map = new Map({ + extent, + backgroundColor: 'gray', + maxSubdivisionLevel: 19, + lighting: { + enabled: true, + zFactor: 8, + }, + terrain: false, +}); +instance.add(map); + +const capabilitiesUrl = + 'https://data.geopf.fr/wmts?SERVICE=WMTS&VERSION=1.0.0&REQUEST=GetCapabilities'; + +const wmsLayer = new ColorLayer({ + name: 'museums', + source: new TiledImageSource({ + httpTimeout: 10000, + source: new TileWMS({ + url: 'https://data.geopf.fr/wms-v/wms?SERVICE=WMS&VERSION=1.3.0', + params: { LAYERS: 'POI.MUSEUM', TILED: true }, + crossOrigin: 'anonymous', + projection: getProjection('EPSG:3857'), + }), + }), +}); + +WmtsSource.fromCapabilities(capabilitiesUrl, { + layer: 'HR.ORTHOIMAGERY.ORTHOPHOTOS', +}) + .then(orthophotoWmts => { + const layer = new ColorLayer({ + name: 'orthophotos', + extent: map.extent, + source: orthophotoWmts, + }); + layer.userData.zOrder = 0; + + map.addLayer(layer); + map.addLayer(wmsLayer); + }) + .catch(console.error); + +const [setColor, _, colorPicker] = bindColorPicker('color', () => {}); + +instance.domElement.addEventListener('pointermove', event => { + const canvasCoords = instance.eventToCanvasCoords(event, new Vector2()); + + const results = map.pick(canvasCoords); + + if (results && results.length > 0) { + const point = results[0].point; + const coordinates = new Coordinates(instance.referenceCrs, point.x, point.y); + + const hit = wmsLayer.getPixel({ coordinates, size: 10 }); + + if (hit && hit.length > 0) { + setColor(hit[0]); + } + + colorPicker.style.display = hit ? 'block' : 'none'; + instance.domElement.style.cursor = hit ? 'pointer' : ''; + } else { + colorPicker.style.display = 'none'; + instance.domElement.style.cursor = ''; + } +}); + +Inspector.attach('inspector', instance); +StatusBar.bind(instance); diff --git a/examples/screenshots/get_feature_info_wms.jpg b/examples/screenshots/get_feature_info_wms.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3aa52e36a78fe0ca141eed6bd11187d96116c183 GIT binary patch literal 52558 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�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 z + target.extent.isPointInside(coordinates), + ); + + if (!smallestTargetAtCoordinates || !smallestTargetAtCoordinates.renderTarget) { + return undefined; + } + + const uv = smallestTargetAtCoordinates.extent.offsetInExtent(coordinates, tmpDims); + + const size = params.size ?? 1; + const pixels = new Uint8ClampedArray(size * size * 4); + + this.instance.renderer.readRenderTargetPixels( + smallestTargetAtCoordinates.renderTarget, + smallestTargetAtCoordinates.width * uv.x, + smallestTargetAtCoordinates.height * uv.y, + size, + size, + pixels, + ); + + if (pixels.reduce((sum, value) => sum + value) > 0) { + const colors = []; + for (let i = 0; i < pixels.length; i += 4) { + const r = pixels[i] / 255; + const g = pixels[i + 1] / 255; + const b = pixels[i + 2] / 255; + const color = new Color(r, g, b); + colors.push(color); + } + + return colors; + } else { + return undefined; + } + } + /** * Returns the first ancestor that is completely loaded, or null if not found. * @param target - The target. -- GitLab