You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

66 lines
1.6 KiB

var OverpassLayer = require('overpass-layer')
var OpeningHours = require('opening_hours')
var colorInterpolate = require('color-interpolate')
var osmParseDate = require('openstreetmap-date-parser')
OverpassLayer.twig.extendFunction('tagsPrefix', function (tags, prefix) {
var ret = {}
var count = 0
for (var k in tags) {
if (k.substr(0, prefix.length) === prefix) {
ret[k.substr(prefix.length)] = k
count++
}
}
if (count === 0) {
return null
}
return ret
})
OverpassLayer.twig.extendFunction('openingHoursState', function (openingHours) {
try {
var oh = new OpeningHours(openingHours)
} catch (err) {
console.log('Error in opening_hours: ' + err)
return 'unknown'
}
return oh.getStateString(new Date(), true)
})
OverpassLayer.twig.extendFilter('websiteUrl', function (value) {
if (value.match(/^https?:\/\//)) {
return value
}
return 'http://' + value
})
OverpassLayer.twig.extendFilter('matches', function (value, match) {
return value.toString().match(match)
})
OverpassLayer.twig.extendFunction('colorInterpolate', function (map, value) {
var colormap = colorInterpolate(map)
return colormap(value)
})
OverpassLayer.twig.extendFilter('osmParseDate', function (value) {
return osmParseDate(value)
})
OverpassLayer.twig.extendFunction('evaluate', function (tags) {
var ob = {
id: 'x0',
isShown: true,
layer_id: global.currentCategory.id,
object: {
id: 'x0',
meta: {},
tags: tags,
type: 'special'
}
}
var d = global.currentCategory.layer.evaluate(ob)
return d
})