cartodb/lib/assets/javascripts/cdb/doc/vizjson_v3_format.md
zhongjin a96ef233c9 cdb
2020-06-15 12:07:54 +08:00

5.5 KiB

VizJSON v3

Status: draft

  {
     // required
     "version": "3.0.0"
   
    // optional (default: [0, 0])
    // [lat, lon] where map is placed when is loaded. It's ignored if bounds attribute is present.
     "center": [0, 0],
   
    // optional (default: 4)
    "zoom": 4,

    // optional (default: null)
    // [[lat, lon], [lat, lon]] The bounds that the map show at the beginning. If center and/or zoom are present
    // they are ignored
    "bounds": [
      [-1, -1], // sw lat, lon
      [ 1,  1]  // ne lat, lon
    ],

    // optional (default: '')
    // visualization title
    "title": ""

    // optional (default: '')
    // visualization description
    "description": ""

    // mandatory, "leaflet" or "googlemaps"
    map_provider: "leaflet",
    
    // mandatory
    legends: true,
    
    // mandatory
    scrollwheel: false,
    
    // optional (default: null)
    user : {
      avatar_url: '<avatar url>',
      fullname: '<user fullname>'
    },
    
    // optional (default: false)
    vector: false,

     // optional (default: [])
     // contains the layers
     "layers": [
      // xyz tiled
      {
       type: "tiled"
       order: 0,
       options: {
          attribution: "© <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors © <a href="http://cartodb.com/attributions#basemaps">CartoDB</a>",
          labels: { url: "http://{s}.basemaps.cartocdn.com/light_only_labels/{z}/{x}/{y}.png" },
          minZoom: 0,
          maxZoom: 10,
          urlTemplate: "http://{s}.api.cartocdn.com/base-flatblue/{z}/{x}/{y}.png"
         },
       },
       
       // plain color layer
       {
        order: 0,
        type: "background"
        options: {
          base_type: "plain",
          className: "plain",
          color: "#eeeeee",
          image: "",
          maxZoom: 32,
          type: "Plain"
        },
       },

       // layergroup
       {
         type: 'layergroup',
         options: {
            attribution: "",
            filter: "mapnik",
            maps_api_template: "http://{user}.localhost.lan:8181",
            sql_api_template: "http://{user}.localhost.lan:8080",
            user_name: "javi",
            layer_definition: see https://github.com/CartoDB/Windshaft/blob/master/doc/Multilayer-API.md
         }
       },

       // named-map 
       {
         type: 'namedmap',
         order: 1,
         options: {
            type: "namedmap",
            user_name: "javi",
            attribution: "",
            filter: "mapnik",
            maps_api_template: "http://{user}.localhost.lan:8181",
            sql_api_template: "http://{user}.localhost.lan:8080",
            named_map: {
                name: 'test',
                stat_tag: "a5c626a0-a29f-11e4-bee0-010c4c326911",
                params: {
                    //template params
                    color: '#FFF',
                    other_var: 1,
                },
                layers: [{
                    infowindow: '',
                    legend: '',
                    layer_name: 'name_of_layer',
                    interactivity: 'column1, column2, ...',
                    visible: true/false
                    }, {...}
                ],
            },
         }
       },
       
       // torque
       {
         type: 'torque',
         order: 1,
         sql: "select * from mytable",
         cartocss: '/** torque visualization */ ...'
         cartocss_version: '2.1.1',
         legend: {
            show_title: false,
            template: "",
            title: "",
            type: "none",
            visible: true
         },
         options: {
            stat_tag: "d4a5c7e4-4ad6-11e3-ab17-3085a9a9563c",
            table_name: "sensor_log_2013_10_27_12_01",
            user_name: "javi",
            visible: true,
            
            named_map: { //if this key is present named_map is used, if not it means it's an anonymous map
                name: 'tpl_test',
                layer_index: 1, // layer_index inside Named Map
                params: {
                    //template params
                    color: '#FFF',
                    other_var: 1
                }
            }
         }
       },
     ],

     // optional (default: [])
     overlays: [{
       type: 'zoom',
       template: 'mustache template'
       options: {
         ... other options
       }
     }],
     
    // mandatory
    datasource: {
      maps_api_template: "http://{user}.localhost.lan:8181",
      stat_tag: "47f329b2-fd5e-11e5-a82a-080027880ca6",
      user_name: "juanignaciosl"
    },
 
     // optional (default: [])
     analyses: [
        {
          id: 'a1',
          type: 'buffer',
          params: { // These params depend on the analysis type
            radio: 3000,
            source: {
              id: 'a0',
              table_name: 'mytable',
              type: 'source',
              params: {
                query: 'select * from mytable',
              }
            }
          }
        }
     ],
     
     // optional (default: [])
     widgets: [
      {
        id: "ecb84086-8ad6-4baf-88ae-b160f67e073b",
        layer_id: "825c1f09-db33-46dc-a60a-3cee7f28fbcf",
        options: { // These options depend on the widget type
          aggregation: "count",
          aggregation_column: "category_t",
          column: "category_t",
          sync_on_bbox_change: true,
          sync_on_data_change: true
        }
        order: 1,
        title: "Category category_t",
        type: "category"
      }
     ]
   
  }