2022-10-17 15:15:24 +00:00
|
|
|
import { route } from 'docuri';
|
|
|
|
|
|
|
|
/**
|
|
|
|
* A [docuri](https://github.com/jo/docuri) route for {@link components/map/types!TileKeyObject}
|
2022-10-19 16:35:20 +00:00
|
|
|
*
|
2022-10-17 15:15:24 +00:00
|
|
|
* TODO: update docuri (or write a wrapper) to support datatyping (and formats).
|
|
|
|
*/
|
|
|
|
export const tileUri = (rte: any) => {
|
2022-10-19 16:35:20 +00:00
|
|
|
const r = route('tile/:provider/:zoomLevel(/:x/:y)')(rte);
|
2022-10-17 15:15:24 +00:00
|
|
|
if (typeof r === 'object') {
|
2022-10-19 16:35:20 +00:00
|
|
|
return r.x === undefined
|
|
|
|
? {
|
|
|
|
provider: r.provider,
|
|
|
|
zoomLevel: parseInt(r.zoomLevel),
|
|
|
|
}
|
|
|
|
: {
|
|
|
|
provider: r.provider,
|
|
|
|
zoomLevel: parseInt(r.zoomLevel),
|
|
|
|
x: parseInt(r.x),
|
|
|
|
y: parseInt(r.y),
|
|
|
|
};
|
2022-10-17 15:15:24 +00:00
|
|
|
}
|
|
|
|
return r;
|
|
|
|
};
|
|
|
|
|
|
|
|
export default tileUri;
|