Merge pull request #367 from loicgasser/bugfix/default-token

Fix glyph access key for openmaptiles
This commit is contained in:
Orange Mug 2018-09-03 20:34:01 +01:00 committed by GitHub
commit 06d579118a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -54,27 +54,27 @@ function indexOfLayer(layers, layerId) {
return null return null
} }
function getAccessToken(key, mapStyle, opts) { function getAccessToken(sourceName, mapStyle, opts) {
if(key === "thunderforest_transport" || key === "thunderforest_outdoors") { if(sourceName === "thunderforest_transport" || sourceName === "thunderforest_outdoors") {
key = "thunderforest"; sourceName = "thunderforest"
} }
const metadata = mapStyle.metadata || {} const metadata = mapStyle.metadata || {}
let accessToken = metadata['maputnik:'+key+'_access_token']; let accessToken = metadata[`maputnik:${sourceName}_access_token`]
if(opts.allowFallback && !accessToken) { if(opts.allowFallback && !accessToken) {
accessToken = tokens[key]; accessToken = tokens[sourceName]
} }
return accessToken; return accessToken;
} }
function replaceSourceAccessToken(mapStyle, key, opts={}) { function replaceSourceAccessToken(mapStyle, sourceName, opts={}) {
const source = mapStyle.sources[key] const source = mapStyle.sources[sourceName]
if(!source) return mapStyle if(!source) return mapStyle
if(!source.hasOwnProperty("url")) return mapStyle if(!source.hasOwnProperty("url")) return mapStyle
const accessToken = getAccessToken(key, mapStyle, opts) const accessToken = getAccessToken(sourceName, mapStyle, opts)
if(!accessToken) { if(!accessToken) {
// Early exit. // Early exit.
@ -83,7 +83,7 @@ function replaceSourceAccessToken(mapStyle, key, opts={}) {
const changedSources = { const changedSources = {
...mapStyle.sources, ...mapStyle.sources,
[key]: { [sourceName]: {
...source, ...source,
url: source.url.replace('{key}', accessToken) url: source.url.replace('{key}', accessToken)
} }
@ -92,24 +92,19 @@ function replaceSourceAccessToken(mapStyle, key, opts={}) {
...mapStyle, ...mapStyle,
sources: changedSources sources: changedSources
} }
if (mapStyle.glyphs) {
changedStyle.glyphs = changedStyle.glyphs.replace('{key}', accessToken)
}
return changedStyle return changedStyle
} }
function replaceAccessTokens(mapStyle, opts={}) { function replaceAccessTokens(mapStyle, opts={}) {
let changedStyle = mapStyle; let changedStyle = mapStyle
Object.keys(mapStyle.sources).forEach((tokenKey) => { Object.keys(mapStyle.sources).forEach((sourceName) => {
changedStyle = replaceSourceAccessToken(changedStyle, tokenKey, opts); changedStyle = replaceSourceAccessToken(changedStyle, sourceName, opts);
}) })
if(mapStyle.glyphs && mapStyle.glyphs.match(/\.tileserver\.org/)) {
changedStyle = {
...changedStyle,
glyphs: mapStyle.glyphs ? mapStyle.glyphs.replace('{key}', getAccessToken("openmaptiles", mapStyle, opts)) : mapStyle.glyphs
}
}
return changedStyle return changedStyle
} }