var OverpassLayer = require('overpass-layer')
var parseLength = require('overpass-layer/src/parseLength')
function cssStyle (style) {
let ret = ''
if ('color' in style) {
ret += 'stroke: ' + style.color + ';'
}
ret += 'stroke-width: ' + parseLength('width' in style ? style.width : '3', global.map.getMetersPerPixel()) + ';'
if ('dashArray' in style) {
ret += 'stroke-dasharray: ' + style.dashArray + ';'
}
if ('dashArray' in style) {
ret += 'stroke-dasharray: ' + style.dashArray + ';'
}
if ('dashOffset' in style) {
ret += 'stroke-dashoffset: ' + style.dashOffset + ';'
}
if ('fillColor' in style) {
ret += 'fill: ' + style.fillColor + ';'
} else if ('color' in style) {
ret += 'fill: ' + style.color + ';'
} else {
ret += 'fill: #3388ff;'
}
if ('fillOpacity' in style) {
ret += 'fill-opacity: ' + style.fillOpacity + ';'
} else {
ret += 'fill-opacity: 0.2;'
}
return ret
}
function markerLine (data) {
let styles = parseOptions(data)
let ret = ''
return OverpassLayer.twig.filters.raw(ret)
}
function markerPolygon (data) {
let ret = ''
return OverpassLayer.twig.filters.raw(ret)
}
function markerCircle (data) {
let styles = parseOptions(data)
let c = styles
.map(style => (style.size || style.radius || 12) + (style.width / 2))
.sort()[0]
let ret = ''
return OverpassLayer.twig.filters.raw(ret)
}
function markerPointer (data) {
let ret = ''
return OverpassLayer.twig.filters.raw(ret)
}
function parseOptions (data) {
if (!data || !('style' in data) && !('styles' in data)) {
let ret = [
{ fillColor: '#f2756a', color: '#000000', width: 1, radius: 12, fillOpacity: 1 },
]
if (data && data.color) {
ret[0].fillColor = data.color
ret[0].fillOpacity = 0.2
}
if (data) for (let k in data) {
ret[0][k] = data[k]
}
return ret
}
if (!('styles' in data)) {
data = {
style: data,
styles: [ 'default' ]
}
}
if (typeof data.styles === 'string') {
data.styles = data.styles.split(/,/g)
}
return data.styles.map(k => (k === 'default' ? data.style : data['style:' + k]) || {})
}
OverpassLayer.twig.extendFunction('markerLine', markerLine)
OverpassLayer.twig.extendFunction('markerCircle', markerCircle)
OverpassLayer.twig.extendFunction('markerPointer', markerPointer)
OverpassLayer.twig.extendFunction('markerPolygon', markerPolygon)
module.exports = {
line: markerLine,
circle: markerCircle,
pointer: markerPointer,
polygon: markerPolygon
}