|
|
|
@ -57,7 +57,7 @@ CartoCSS.Layer.prototype = {
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* return the symbolizers that need to be rendered with
|
|
|
|
|
* return the symbolizers that need to be rendered with
|
|
|
|
|
* this style. The order is the rendering order.
|
|
|
|
|
* @returns a list with 3 possible values 'line', 'marker', 'polygon'
|
|
|
|
|
*/
|
|
|
|
@ -99,7 +99,7 @@ CartoCSS.Layer.prototype = {
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// given a geoemtry type returns the transformed one acording the CartoCSS
|
|
|
|
|
// For points there are two kind of types: point and sprite, the first one
|
|
|
|
|
// For points there are two kind of types: point and sprite, the first one
|
|
|
|
|
// is a circle, second one is an image sprite
|
|
|
|
|
//
|
|
|
|
|
// the other geometry types are the same than geojson (polygon, linestring...)
|
|
|
|
@ -206,15 +206,9 @@ CartoCSS.prototype = {
|
|
|
|
|
for(var u = 0; u<def.rules.length; u++){
|
|
|
|
|
var rule = def.rules[u];
|
|
|
|
|
if(rule.name === "marker-file" || rule.name === "point-file"){
|
|
|
|
|
var value = rule.value.value[0].value[0].value.value;
|
|
|
|
|
this.imageURLs.push(value);
|
|
|
|
|
var value = rule.value.value[0].value[0].value.value;
|
|
|
|
|
this.imageURLs.push(value);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
rule.toXML(parse_env, {});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (this.options.strict && parse_env.errors.message) {
|
|
|
|
|
throw new Error(parse_env.errors.message);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
layer.frames = [];
|
|
|
|
@ -244,6 +238,14 @@ CartoCSS.prototype = {
|
|
|
|
|
var done = {};
|
|
|
|
|
for(var i = 0; i < defs.length; ++i) {
|
|
|
|
|
var def = defs[i];
|
|
|
|
|
|
|
|
|
|
if (this.options.strict) {
|
|
|
|
|
def.toXML(parse_env, {});
|
|
|
|
|
if (parse_env.errors.message) {
|
|
|
|
|
throw new Error(parse_env.errors.message);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var k = defKey(def);
|
|
|
|
|
var layer = layers[k];
|
|
|
|
|
if(!done[k]) {
|
|
|
|
@ -279,14 +281,14 @@ CartoCSS.prototype = {
|
|
|
|
|
|
|
|
|
|
carto.RendererJS = function (options) {
|
|
|
|
|
this.options = options || {};
|
|
|
|
|
var reference = this.options.reference || require('./torque-reference').version.latest;
|
|
|
|
|
tree.Reference.setData(reference);
|
|
|
|
|
this.options.mapnik_version = this.options.mapnik_version || 'latest';
|
|
|
|
|
this.reference = this.options.reference || require('./torque-reference').version.latest;
|
|
|
|
|
this.options.strict = this.options.hasOwnProperty('strict') ? this.options.strict : false;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// Prepare a javascript object which contains the layers
|
|
|
|
|
carto.RendererJS.prototype.render = function render(cartocss, callback) {
|
|
|
|
|
tree.Reference.setData(this.reference);
|
|
|
|
|
return new CartoCSS(cartocss, this.options);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|