Author Topic: Problems with setting up a custom provider with unusual tiles system  (Read 135 times)

Offline 2012

  • More than Newbie
  • *
  • Posts: 32
    • View Profile
I am trying to set up a custom <provider> for maps with small local coverage. It uses a tile URL structure that I am not used to, despite having successfully added a lot of custom providers before. I am grateful for any help or insight.

The tiles are stored on blob.core.windows.net as 1024x1024 PNGs, like this:
https://[provider name].blob.core.windows.net/map-tiles/[map id]/[32 digit hexadecimal, seemingly random(?!), zoom level identifier]/[number representing X position]/[number representing Y position]/1024/1024
(no file extension)

Zoom level identifiers are different for every map. For one map, from far out to close, they are:
9913132abc9e4eccbb0ba46e32b46f37
0097d70a2b6b4501b76ca538c98ca8ce
707a0e89c7a346cfbe522572b1bdfd6d
56918450a00a49fbb5a3e3e290511ebd

To further illustrate the naming, this is a 3x3 grid of tiles with everything up to and including the zoom level identifier ("707a0e89c7a346cfbe522572b1bdfd6d") cut off:
[...]/3072/2048/1024/1024 [...]/4096/2048/1024/1024 [...]/5120/2048/1024/1024
[...]/3072/3072/1024/1024 [...]/4096/3072/1024/1024 [...]/5120/3072/1024/1024
[...]/3072/4096/1024/1024 [...]/4096/4096/1024/1024 [...]/5120/4096/1024/1024

This is a 2x2 grid of tiles on the next (closer) zoom level ("56918450a00a49fbb5a3e3e290511ebd"):
[...]/9216/7168/1024/1024 [...]/10240/7168/1024/1024
[...]/9216/8192/1024/1024 [...]/10240/8192/1024/1024

The tile reference system for every zoom level seems to start in the (local) top left corner at [...]/0/0/1024/1024 and then the X and Y position indicators increase by 1024 for every tile (becoming rather large numbers in the bottom right at closer zoom levels).

I can live with creating a unique provider ID/"map" for every zoom level, which seems necessary? However, even with that I can't see how I could get the rest of the <url> code right.

I can find my way around the reference system without much difficulty, using multiples of 1024. But since the tile indicators are just related to the upper right corner of the local map, not to any global system, how can Locus know where to look for a specific tile? Could the "overall" position be part of the 32 digit hexadecimal number somehow?

Have you seen this before? Do you have any suggestion on how to wrap this into a Locus custom <provider>?

 

Offline 2012

  • More than Newbie
  • *
  • Posts: 32
    • View Profile
Some more information, this seems WMTS based. I don't know much about WMTS though, but Locus didn't accept the URL when I tried it in the WMS (sic) "add source link manually" dialog.

There is a redirection function where the (A) URLs below redirect to a tile at the respective (B) URLs. The example URLs form a 2x2 grid which I have marked with NW/SW/NE/SE. The zoom level identifier for these tiles was 707a0e89c7a346cfbe522572b1bdfd6d.

NW
(A) https://api.[provider].net/maps/[map id]/wmts/tiles/[zoom level identifier]/2/0
(B) https://[provider].blob.core.windows.net/map-tiles/[map id]/[zoom level identifier]/0/2048/1024/1024

NE
(A) https://api.[provider].net/maps/[map id]/wmts/tiles/[zoom level identifier]/2/1
(B) https://[provider].blob.core.windows.net/map-tiles/[map id]/[zoom level identifier]/1024/2048/1024/1024

SW
(A) https://api.[provider].net/maps/[map id]/wmts/tiles/[zoom level identifier]/3/0
(B) https://[provider].blob.core.windows.net/map-tiles/[map id]/[zoom level identifier]/0/3072/1024/1024

SE
(A) https://api.[provider].net/maps/[map id]/wmts/tiles/[zoom level identifier]/3/1
(B) https://[provider].blob.core.windows.net/map-tiles/[map id]/[zoom level identifier]/1024/3072/1024/1024

Still the reference system is just local unless the "zoom level identifier" provides more information than I can get out of it, so I'm just as stuck as before.