Skip to content

Map: OSM provider — Render tile maps with OpenLayers - #34769

Merged
AlisherAmonulloev merged 18 commits into
feature/26_2_osm-provider-for-dxmap/mainfrom
feature/26_2_osm-provider-for-dxmap/tiles
Aug 20, 2026
Merged

Map: OSM provider — Render tile maps with OpenLayers#34769
AlisherAmonulloev merged 18 commits into
feature/26_2_osm-provider-for-dxmap/mainfrom
feature/26_2_osm-provider-for-dxmap/tiles

Conversation

@AlisherAmonulloev

Copy link
Copy Markdown
Contributor

No description provided.

@AlisherAmonulloev
AlisherAmonulloev requested a review from a team August 14, 2026 08:18
@AlisherAmonulloev AlisherAmonulloev self-assigned this Aug 14, 2026
@github-actions github-actions Bot added the .d.ts label Aug 14, 2026
@AlisherAmonulloev AlisherAmonulloev changed the title Feature/26 2 osm provider for dxmap/tiles Map: OSM provider — Render tile maps with OpenLayers Aug 14, 2026
Comment thread packages/devextreme/js/__internal/ui/errors.ts Outdated
Comment thread packages/devextreme/js/__internal/ui/errors.ts Outdated
@AlisherAmonulloev
AlisherAmonulloev marked this pull request as ready for review August 14, 2026 12:45
@AlisherAmonulloev
AlisherAmonulloev requested a review from a team as a code owner August 14, 2026 12:45
@pharret31
pharret31 requested a balanced review from Copilot August 18, 2026 12:09

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Adds an OpenLayers-backed OSM provider to dxMap, including tile-server configuration, public typings, framework wrappers, errors, and tests.

Changes:

  • Implements OSM tile rendering and OpenLayers integration.
  • Exposes OSM configuration across TypeScript, Angular, React, Vue, and ASP.NET metadata.
  • Adds an OpenLayers mock and QUnit coverage.

Reviewed changes

Copilot reviewed 17 out of 20 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
packages/devextreme/ts/dx.all.d.ts Adds aggregate OSM declarations.
packages/devextreme/testing/tests/DevExpress.ui.widgets/mapParts/osmTests.js Tests OSM behavior.
packages/devextreme/testing/tests/DevExpress.ui.widgets/map.tests.js Registers OSM tests.
packages/devextreme/testing/helpers/forMap/openLayersMock.js Adds the OpenLayers mock.
packages/devextreme/js/ui/widget/ui.errors.js Exposes new error identifiers.
packages/devextreme/js/ui/map.d.ts Defines the public OSM API.
packages/devextreme/js/ui/map_types.d.ts Re-exports OSM types.
packages/devextreme/js/__internal/ui/map/provider.ts Excludes OSM from keyed providers.
packages/devextreme/js/__internal/ui/map/provider.dynamic.osm.ts Implements the OSM provider.
packages/devextreme/js/__internal/ui/map/provider.dynamic.osm.openlayers.ts Adapts OpenLayers APIs.
packages/devextreme/js/__internal/ui/map/provider.dynamic.osm.engine.ts Defines the map-engine abstraction.
packages/devextreme/js/__internal/ui/map/map.ts Registers the OSM provider.
packages/devextreme/js/__internal/ui/errors.ts Adds OSM errors and warnings.
packages/devextreme/eslint.config.mjs Adjusts spellchecking for OSM exports.
packages/devextreme-vue/src/map.ts Adds Vue tile-server props.
packages/devextreme-react/src/map.ts Adds React tile-server props.
packages/devextreme-metadata/aspnet/enums.ts Adds OSM to provider metadata.
packages/devextreme-angular/src/ui/nested/provider-config.ts Adds shared Angular configuration.
packages/devextreme-angular/src/ui/map/nested/provider-config.ts Adds Angular map configuration.
packages/devextreme-angular/src/ui/map/index.ts Exposes Angular tile-server types.
Suppressed comments (2)

packages/devextreme/js/__internal/ui/map/provider.dynamic.osm.ts:155

  • When bounds is provided, DynamicProvider._renderImpl() calls updateBounds() instead of updateCenter(). This no-op therefore leaves the OpenLayers view at [0, 0]/zoom 1 and subsequent bounds changes are also ignored. Add a fit-to-bounds operation to the engine and invoke it here.
  updateBounds(): Promise<void> {
    return Promise.resolve();

packages/devextreme/js/__internal/ui/map/provider.dynamic.osm.ts:159

  • The public controls option has no effect for this provider: the engine hardcodes OpenLayers zoom/rotate controls off, while this update method is a no-op. Consequently controls: true cannot display the expected map controls. Pass the option into map creation and support changes here.
  updateControls(): Promise<void> {
    return Promise.resolve();

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread packages/devextreme/testing/helpers/forMap/openLayersMock.js
Comment thread packages/devextreme/js/__internal/ui/map/provider.dynamic.osm.ts
Comment thread packages/devextreme/testing/tests/DevExpress.ui.widgets/mapParts/osmTests.js Outdated
Comment thread packages/devextreme/js/__internal/ui/map/provider.dynamic.osm.ts
Comment thread packages/devextreme/js/ui/map.d.ts Outdated
Comment thread packages/devextreme/js/ui/widget/ui.errors.js
Comment thread packages/devextreme/js/__internal/ui/errors.ts Outdated
Comment thread packages/devextreme/js/ui/map.d.ts Outdated
Comment thread packages/devextreme/js/ui/map.d.ts Outdated
Comment thread packages/devextreme/js/ui/map.d.ts Outdated
AlisherAmonulloev and others added 9 commits August 19, 2026 19:52
@AlisherAmonulloev
AlisherAmonulloev force-pushed the feature/26_2_osm-provider-for-dxmap/tiles branch from 00ac5a2 to 8c6af66 Compare August 19, 2026 16:53
@AlisherAmonulloev
AlisherAmonulloev merged commit 85a8c5b into feature/26_2_osm-provider-for-dxmap/main Aug 20, 2026
99 checks passed
@AlisherAmonulloev
AlisherAmonulloev deleted the feature/26_2_osm-provider-for-dxmap/tiles branch August 20, 2026 07:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants