Skip to content

feat(map): add Tianditu basemaps with a user-supplied key - #167

Closed
Li-T-1025 wants to merge 1 commit into
rubenCodeforges:masterfrom
Li-T-1025:master
Closed

Li-T-1025 wants to merge 1 commit into
rubenCodeforges:masterfrom
Li-T-1025:master

Conversation

@Li-T-1025

Copy link
Copy Markdown
Contributor
  • Tianditu vector (vec_w), imagery (img_w) and hybrid basemaps, each with its own WMTS annotation overlay (cva_w / cia_w) drawn the same way the Dark style draws labels
  • Key is stored through the existing encrypted api-keys store; keyless requests serve blank tiles instead of failing
  • Settings > Maps: Tianditu key row next to the OpenAIP and CARTO rows, reusing ApiKeyInput
  • Tile requests carry a browser User-Agent, because console keys default to the browser-side type (301012); a rejected key is logged once per layer instead of failing silently
  • i18n for en/de/zh-CN/zh-TW/uk, wiki notes, unit tests for the WMTS URL and attribution

- Tianditu vector (vec_w), imagery (img_w) and hybrid basemaps, each with its own WMTS annotation overlay (cva_w / cia_w) drawn the same way the Dark style draws labels
- Key is stored through the existing encrypted api-keys store; keyless requests serve blank tiles instead of failing
- Settings > Maps: Tianditu key row next to the OpenAIP and CARTO rows, reusing ApiKeyInput
- Tile requests carry a browser User-Agent, because console keys default to the browser-side type (301012); a rejected key is logged once per layer instead of failing silently
- i18n for en/de/zh-CN/zh-TW/uk, wiki notes, unit tests for the WMTS URL and attribution
@rubenCodeforges

Copy link
Copy Markdown
Owner

Hi, thanks for the work on this, it's clean and well documented, and I understand Tianditu is the basemap that is actually reachable in China.

I won't merge it into core though. ArduDeck core stays provider-neutral, and three China-only layers would appear in every user's layer picker worldwide. Provider integrations like this belong in a cargo (ArduDeck's module system), so the people who need it can install it and everyone else never sees it.

If you'd like it, please open a cargo request issue for Tianditu basemaps and we'll build it as a cargo.

One note for that: please don't rely on faking a browser User-Agent to get around the browser-side key type. The cargo should use a server-side key, and the setup notes should explain how to create one in the Tianditu console.

I'll close this PR for now. Thanks again!

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.

2 participants