Skip to content

Conversation

felixerdy
Copy link
Contributor

@felixerdy felixerdy commented May 9, 2025

This PR introduces the ability to add OGC WMS layers to kepler.gl. Users can now input a WMS URL, and they have the option to

  • change the layer
  • adjust the opacity
  • toggle wms TRANSPARENT tag
Screenshot 2025-05-09 at 12 19 02 Screenshot 2025-05-09 at 12 03 25

Getting started
enableRasterTileLayer: true in application-config.ts

As this is my first time working in the Kepler.gl codebase, I welcome any feedback or suggestions for improvements. Please let me know if this feature aligns with the current roadmap and what additional steps or features may be needed for this to be fully integrated.

@felixerdy felixerdy changed the title WMS Layers [Feat] WMS Layers May 9, 2025
@igorDykhta igorDykhta requested review from igorDykhta, heshan0131 and Copilot and removed request for igorDykhta May 9, 2025 10:38
Copy link

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This pull request introduces support for OGC WMS layers in kepler.gl, enabling users to add WMS datasets, adjust opacity, and configure layer settings.

  • Updates dataset metadata checks to include WMS format
  • Adds a new WMSLayer along with its icon and corresponding UI configuration
  • Integrates translations, constants, and tileset forms for WMS support

Reviewed Changes

Copilot reviewed 13 out of 13 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
src/table/src/dataset-utils.ts Includes WMS in metadata check for tile formats
src/localization/src/translations/en.ts Adds new WMS related translation keys
src/layers/src/wms-layer/wms-layer.ts Introduces the WMSLayer implementation and rendering
src/layers/src/wms-layer/wms-layer-icon.tsx New icon component for the WMS layer
src/layers/src/index.ts Registers the new WMSLayer
src/constants/src/layers.ts & dataset.ts Registers new layer and dataset types for WMS
src/components/src/side-panel/layer-panel/layer-configurator.tsx Adds WMS-specific configuration UI
src/components/src/side-panel/common/dataset-info.ts Displays WMS dataset info
src/components/src/modals/tilesets-modals/*.tsx Implements WMS form components for tile loading
package.json Adds dependency for WMS capabilities parsing
Comments suppressed due to low confidence (1)

src/table/src/dataset-utils.ts:165

  • Including RemoteTileFormat.WMS in the check causes the metadata fetching to fall through to the PMTilesSource logic. Consider implementing separate metadata retrieval handling for WMS to ensure accurate processing.
if (!(

@ibgreen
Copy link
Collaborator

ibgreen commented May 9, 2025

You probably want to use the deck.gl WMSLayer?

There are a lot of corner cases with different WMS versions etc

@felixerdy felixerdy force-pushed the feat/wms branch 3 times, most recently from 5f963ae to cecc1b7 Compare May 9, 2025 20:07
Signed-off-by: Felix Erdmann <hello@felixerdmann.com>
@felixerdy
Copy link
Contributor Author

I am now using the deck.gl WMSLayer (somehow the types for @deck.gl/geo-layers are outdated, that's why I'm using @ts-expect-error)

I agree there can some edge cases with different WMS versions etc. Maybe we can integrate this as an experimental feature trough the applicationConfig

felixerdy added 3 commits May 16, 2025 13:59
Signed-off-by: Felix Erdmann <hello@felixerdmann.com>
Signed-off-by: Felix Erdmann <hello@felixerdmann.com>
Signed-off-by: Felix Erdmann <hello@felixerdmann.com>
@igorDykhta
Copy link
Collaborator

@felixerdy I'm going to review the PR a bit later. For now, we'll hide the layer behind an app config flag until version 3.2. After it lands, I'll try updating the layer to use the WMS layer from deck.gl, since we're aiming to stick with their implementations.

felixerdy and others added 6 commits June 3, 2025 09:26
Signed-off-by: Felix Erdmann <hello@felixerdmann.com>
Signed-off-by: Felix Erdmann <hello@felixerdmann.com>
Signed-off-by: Ihor Dykhta <dikhta.igor@gmail.com>
Signed-off-by: Ihor Dykhta <dikhta.igor@gmail.com>
@igorDykhta igorDykhta merged commit 272fd1a into keplergl:master Jun 29, 2025
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants