map

<discovery-tile url="https://sandbox.senx.io/api/v0/exec" type="map">
  ...
</discovery-tile>
{
  'type' 'map'
  ...
  'macro' <% %>
}
Name Type Description
data GTS, GTS[], custom data Data to display
globalParams Option Global options (see above) concerning this tile
params Option[] List of options (see above) concerning each displayed dataset depending of the index of this array
events Events[] List of events to emit (see below)

Custom data:

  • string[]: considered as GEOJson
  • GTS[]: considered as Path

Options

Name Type Description
tiles string[] List of custom tile layers
mapType string Base tile layer (NONE, DEFAULT, HOT, TOPO, TOPO2, STADIA, STADIA_DARK, TONER, TONER_LITE, TERRAIN, ESRI, SATELLITE, OCEANS, GRAY, GRAYSCALE, WATERCOLOR, CARTODB, CARTODB_DARK)
startLat number Initial latitude position
startLong number Initial longitude position
startZoom number Initial zoom level
maxNativeZoom number Maximum zoom number the tile source has available. If it is specified, the tiles on all zoom levels higher than maxNativeZoom will be loaded from maxNativeZoom level and auto-scaled.
maxZoom number The maximum zoom level up to which this layer will be displayed (inclusive).

Supported option per series are:

  • datasetColor: Hex CSS color of the series. ie: '#fff00f'
  • key: Name the series

Params:

Render dots without lines:

{
  'key' 'bases'
  'render' 'dots'
  "color" "#f44336"
  "line" false
}

Render weighted dots:

{
  'key' 'sightings'
  'render' 'weightedDots'
  "color" "#31C0F6cc"
  "borderColor" "#31C0F6"
  "maxValue" 100
  "minValue" 0
}

Samples

Markers

<'
  {
    "data":[
      {"c":"A","l":{},"a":{},"v":[[1460540141224657,51.45877850241959,-0.01000002957880497,1000,8.090169943749475],
      [1460540131224657,51.49510562885553,-0.02000005915760994,1000,3.0901699437494745],
      [1460540121224657,51.49510562885553,-0.030000004917383194,1000,-3.0901699437494736],
      [1460540111224657,51.45877850241959,-0.040000034496188164,1000,-8.090169943749473],
      [1460540101224657,51.39999998733401,-0.050000064074993134,1000,-10.0],
      [1460540091224657,51.341221472248435,-0.06000000983476639,1000,-8.090169943749475],
      [1460540081224657,51.3048943458125,-0.07000003941357136,1000,-3.0901699437494754],
      [1460540071224657,51.3048943458125,-0.08000006899237633,1000,3.0901699437494723],
      [1460540061224657,51.341221472248435,-0.09000001475214958,1000,8.090169943749473],
      [1460540051224657,51.39999998733401,-0.10000004433095455,1000,10.0]]},
      {"c":"B","l":{},"a":{},"v":[[1460540141224657,51.49999998975545,-0.10000004433095455,10],
      [1460540131224657,51.45999999716878,-0.09000001475214958,9],
      [1460540121224657,51.41999996267259,-0.08000006899237633,8],
      [1460540111224657,51.39999998733401,-0.07000003941357136,7],
      [1460540101224657,51.439999979920685,-0.06000000983476639,6],
      [1460540091224657,51.47999997250736,-0.050000064074993134,8],
      [1460540081224657,51.49999998975545,-0.030000004917383194,10],
      [1460540071224657,51.51999996509403,-0.02000005915760994,9],
      [1460540061224657,51.539999982342124,-0.01000002957880497,8],
      [1460540051224657,51.55999999959022,0.0,9]]},
      {"c":"D","l":{},"a":{},"v":[[1460540141224657,51.49999998975545,-0.10000004433095455,"a"],
      [1460540131224657,51.45999999716878,-0.09000001475214958,"b"],
      [1460540121224657,51.41999996267259,-0.08000006899237633,"c"],
      [1460540111224657,51.39999998733401,-0.07000003941357136,"d"]]},
      {"c":"E","l":{},"a":{},"v":[[1460540136224657,51.439999979920685,0.05999992601573467,true],
      [1460540116224657,51.47999997250736,0.04999998025596142,false],
      [1460540096224657,51.49999998975545,0.02999992109835148,true],
      [1460540076224657,51.51999996509403,0.019999975338578224,false],
      [1460540056224657,51.539999982342124,0.009999945759773254,true]]},

      {"positions":[[51.5,-0.22],[51.46,-0.3],[51.42,-0.2]]},
    ],
    "params":[
      {"key":"Path A"},
      {"key":"Path B"},
      {"key":"Annotations (text)","render":"marker","marker":"star"},
      {"key":"Annotations (boolean)","baseRadius":5},
      {"key":"Test","render":"marker","marker":"circle"},
    ]
  }
'>
JSON->
'{"data":[{"c":"A","l":{},"a":{},"v":[[1460540141224657,51.45877850241959,-0.01000002957880497,1000,8.090169943749475],[1460540131224657,51.49510562885553,-0.02000005915760994,1000,3.0901699437494745],[1460540121224657,51.49510562885553,-0.030000004917383194,1000,-3.0901699437494736],[1460540111224657,51.45877850241959,-0.040000034496188164,1000,-8.090169943749473],[1460540101224657,51.39999998733401,-0.050000064074993134,1000,-10.0],[1460540091224657,51.341221472248435,-0.06000000983476639,1000,-8.090169943749475],[1460540081224657,51.3048943458125,-0.07000003941357136,1000,-3.0901699437494754],[1460540071224657,51.3048943458125,-0.08000006899237633,1000,3.0901699437494723],[1460540061224657,51.341221472248435,-0.09000001475214958,1000,8.090169943749473],[1460540051224657,51.39999998733401,-0.10000004433095455,1000,10.0]]},{"c":"B","l":{},"a":{},"v":[[1460540141224657,51.49999998975545,-0.10000004433095455,10],[1460540131224657,51.45999999716878,-0.09000001475214958,9],[1460540121224657,51.41999996267259,-0.08000006899237633,8],[1460540111224657,51.39999998733401,-0.07000003941357136,7],[1460540101224657,51.439999979920685,-0.06000000983476639,6],[1460540091224657,51.47999997250736,-0.050000064074993134,8],[1460540081224657,51.49999998975545,-0.030000004917383194,10],[1460540071224657,51.51999996509403,-0.02000005915760994,9],[1460540061224657,51.539999982342124,-0.01000002957880497,8],[1460540051224657,51.55999999959022,0.0,9]]},{"c":"D","l":{},"a":{},"v":[[1460540141224657,51.49999998975545,-0.10000004433095455,"a"],[1460540131224657,51.45999999716878,-0.09000001475214958,"b"],[1460540121224657,51.41999996267259,-0.08000006899237633,"c"],[1460540111224657,51.39999998733401,-0.07000003941357136,"d"]]},{"c":"E","l":{},"a":{},"v":[[1460540136224657,51.439999979920685,0.05999992601573467,true],[1460540116224657,51.47999997250736,0.04999998025596142,false],[1460540096224657,51.49999998975545,0.02999992109835148,true],[1460540076224657,51.51999996509403,0.019999975338578224,false],[1460540056224657,51.539999982342124,0.009999945759773254,true]]},{"positions":[[51.5,-0.22],[51.46,-0.3],[51.42,-0.2]]}],"params":[{"key":"Path A"},{"key":"Path B"},{"key":"Annotations (text)","render":"marker","marker":"star"},{"key":"Annotations (boolean)","baseRadius":5},{"key":"Test","render":"marker","marker":"circle"}]}' JSON->

Weighted Dots

{
  "data" [
    {
      "positions" [
        [ 51.1  -0.52 10 ] // Lat Lon Radius
        [ 51.56 -0.4  30 ]
        [ 51.42 -0.6  40 ]
        [ 51.3  -0.82 42 ]
        [ 51.76 -0.7  20 ]
        [ 51.62 -0.9  45 ]
      ]
    }
  ]
  "params" [
    {
      "key"         "points"
      "render"      "weightedDots"
      "color"       "#aaf"
      "borderColor" "#f00"
      "maxValue"    100
      "minValue"    0
      "baseRadius"  5
      "numSteps"    10
    }
  ]
}
'{"data":[{"positions":[[51.1,-0.52,10],[51.56,-0.4,30],[51.42,-0.6,40],[51.3,-0.82,42],[51.76,-0.7,20],[51.62,-0.9,45]]}],"params":[{"key":"points","render":"weightedDots","color":"#aaf","borderColor":"#f00","maxValue":100,"minValue":0,"baseRadius":5,"numSteps":10}]}' JSON->

Colored Weighted Dots

{
  "data" [
    {
      "positions" [
        [ 51.1  -0.52 42 10 ], // Lat Lon Radius Color intensity
        [ 51.56 -0.4  21 30 ],
        [ 51.42 -0.6  84 40 ],
        [ 51.3  -0.82 42  1 ],
        [ 51.76 -0.7  21 20 ],
        [ 51.62 -0.9  84 45 ]
      ]
    }
  ],
  "params" [
    {
      "key"             "coloredWeightedDots"
      "render"          "coloredWeightedDots"
      "maxValue"        100
      "minValue"        0
      "baseRadius"      5
      "maxColorValue"   50
      "minColorValue"   0
      "numColorSteps"   10
      "startColor"      "#ff0000"
      "endColor"        "#00ff00"
    }
  ]
}
'{"data":[{"positions":[[51.1,-0.52,42,10],[51.56,-0.4,21,30],[51.42,-0.6,84,40],[51.3,-0.82,42,1],[51.76,-0.7,21,20],[51.62,-0.9,84,45]]}],"params":[{"key":"coloredWeightedDots","render":"coloredWeightedDots","maxValue":100,"minValue":0,"baseRadius":5,"maxColorValue":50,"minColorValue":0,"numColorSteps":10,"startColor":"#ff0000","endColor":"#00ff00"}]}' JSON->

GeoJSON

<'
{
  "data" : [
    {
      "type":"Feature",
      "properties":{ "nom":"Brest", "code":"29019", "codeDepartement":"29", "codeRegion":"53", "codesPostaux":["29200"], "population":139386 },
      "geometry": {
        "type":"Point",
        "coordinates":[-4.501745593952485,48.402931706263466]
      }
    },
    {
      "type":"Feature",
      "properties":{ "nom":"Gouesnou", "code":"29061", "codeDepartement":"29", "codeRegion":"53", "codesPostaux":["29850"], "population":5845 },
      "geometry":{
        "type":"Polygon",
        "coordinates":[[[-4.49249,48.45395],[-4.49042,48.45361],[-4.49023,48.45549],[-4.48953,48.45799],[-4.48901,48.45866],[-4.48696,48.45879],[-4.48652,48.45917],[-4.48611,48.45919],[-4.48617,48.46085],[-4.48588,48.46175],[-4.48458,48.46245],[-4.48262,48.46249],[-4.48228,48.46292],[-4.48077,48.46365],[-4.4804,48.46403],[-4.47926,48.46435],[-4.47857,48.46486],[-4.47837,48.46632],[-4.4791,48.46777],[-4.47986,48.46824],[-4.47976,48.46833],[-4.4786,48.46755],[-4.47517,48.4693],[-4.47122,48.47006],[-4.47097,48.46824],[-4.47075,48.46805],[-4.4709,48.46771],[-4.47058,48.4673],[-4.47061,48.46638],[-4.47002,48.46551],[-4.46876,48.46504],[-4.46838,48.46435],[-4.46739,48.46395],[-4.4664,48.4638],[-4.46513,48.46389],[-4.4648,48.45995],[-4.46549,48.45716],[-4.45868,48.45678],[-4.45635,48.45627],[-4.45454,48.4564],[-4.45268,48.45599],[-4.45267,48.45584],[-4.45051,48.45517],[-4.44887,48.45502],[-4.44412,48.45522],[-4.44273,48.45567],[-4.44102,48.45589],[-4.43956,48.45688],[-4.43932,48.45761],[-4.43765,48.45777],[-4.43595,48.4583],[-4.4321,48.46001],[-4.43099,48.45919],[-4.43215,48.4572],[-4.43256,48.45487],[-4.4335,48.45186],[-4.433,48.45174],[-4.43242,48.45258],[-4.43018,48.45163],[-4.43044,48.45017],[-4.43008,48.44946],[-4.43059,48.44799],[-4.43151,48.4481],[-4.43153,48.44623],[-4.43304,48.44598],[-4.43312,48.44579],[-4.43481,48.44603],[-4.43693,48.44739],[-4.43853,48.44775],[-4.43899,48.44765],[-4.44001,48.44698],[-4.43965,48.4467],[-4.44056,48.44606],[-4.44191,48.44576],[-4.44167,48.44519],[-4.44094,48.4448],[-4.44064,48.4437],[-4.44104,48.4429],[-4.44087,48.44256],[-4.44117,48.44151],[-4.44179,48.44093],[-4.4419,48.44023],[-4.44238,48.44022],[-4.44266,48.43899],[-4.44239,48.4389],[-4.44246,48.43844],[-4.44184,48.43844],[-4.44179,48.43768],[-4.44136,48.4372],[-4.44195,48.43704],[-4.44203,48.43675],[-4.44407,48.43553],[-4.44185,48.4327],[-4.444,48.43229],[-4.44438,48.43195],[-4.44579,48.43174],[-4.44717,48.43129],[-4.44684,48.43064],[-4.44738,48.43051],[-4.44958,48.42921],[-4.45022,48.42845],[-4.45282,48.42888],[-4.45315,48.42809],[-4.45508,48.42746],[-4.45799,48.42546],[-4.4591,48.42489],[-4.46042,48.42415],[-4.46066,48.42575],[-4.46183,48.42697],[-4.46609,48.42967],[-4.46787,48.42863],[-4.47349,48.42759],[-4.47355,48.42847],[-4.47286,48.43036],[-4.47384,48.43181],[-4.47477,48.43249],[-4.47534,48.43264],[-4.47588,48.43314],[-4.47678,48.43444],[-4.47692,48.43542],[-4.47768,48.43661],[-4.47901,48.43733],[-4.48015,48.43752],[-4.48131,48.43727],[-4.48255,48.43774],[-4.48443,48.43776],[-4.48818,48.43837],[-4.48842,48.43853],[-4.48744,48.43958],[-4.48525,48.44045],[-4.48404,48.44149],[-4.48393,48.44272],[-4.48337,48.44312],[-4.48192,48.44502],[-4.48315,48.44446],[-4.48318,48.4446],[-4.48378,48.4447],[-4.48405,48.4454],[-4.48558,48.4462],[-4.48946,48.44743],[-4.48943,48.44795],[-4.48976,48.4484],[-4.48934,48.44908],[-4.48918,48.45038],[-4.49008,48.4504],[-4.49023,48.45081],[-4.49264,48.45151],[-4.4924,48.45273],[-4.49249,48.45395]]]
      }
    },
    {
      "type": "LineString",
      "coordinates": [[-4.49023, 48.42232], [-4.45, 48.42443], [-4.4, 48.42298]]
    }
  ],
  "params": [ {"color": "#6D4C41", "fillColor": "#FFB300" } ],
  "globalParams": {
    "map": {
      "mapType": "CARTODB",
      "tiles": [
        "https://tiles.openseamap.org/seamark/{z}/{x}/{y}.png"
      ]
    }
  }
}
'>
JSON->
<' { "data" : [ { "type":"Feature", "properties":{ "nom":"Brest", "code":"29019", "codeDepartement":"29", "codeRegion":"53", "codesPostaux":["29200"], "population":139386 }, "geometry": { "type":"Point", "coordinates":[-4.501745593952485,48.402931706263466] } }, { "type":"Feature", "properties":{ "nom":"Gouesnou", "code":"29061", "codeDepartement":"29", "codeRegion":"53", "codesPostaux":["29850"], "population":5845 }, "geometry":{ "type":"Polygon", "coordinates":[[[-4.49249,48.45395],[-4.49042,48.45361],[-4.49023,48.45549],[-4.48953,48.45799],[-4.48901,48.45866],[-4.48696,48.45879],[-4.48652,48.45917],[-4.48611,48.45919],[-4.48617,48.46085],[-4.48588,48.46175],[-4.48458,48.46245],[-4.48262,48.46249],[-4.48228,48.46292],[-4.48077,48.46365],[-4.4804,48.46403],[-4.47926,48.46435],[-4.47857,48.46486],[-4.47837,48.46632],[-4.4791,48.46777],[-4.47986,48.46824],[-4.47976,48.46833],[-4.4786,48.46755],[-4.47517,48.4693],[-4.47122,48.47006],[-4.47097,48.46824],[-4.47075,48.46805],[-4.4709,48.46771],[-4.47058,48.4673],[-4.47061,48.46638],[-4.47002,48.46551],[-4.46876,48.46504],[-4.46838,48.46435],[-4.46739,48.46395],[-4.4664,48.4638],[-4.46513,48.46389],[-4.4648,48.45995],[-4.46549,48.45716],[-4.45868,48.45678],[-4.45635,48.45627],[-4.45454,48.4564],[-4.45268,48.45599],[-4.45267,48.45584],[-4.45051,48.45517],[-4.44887,48.45502],[-4.44412,48.45522],[-4.44273,48.45567],[-4.44102,48.45589],[-4.43956,48.45688],[-4.43932,48.45761],[-4.43765,48.45777],[-4.43595,48.4583],[-4.4321,48.46001],[-4.43099,48.45919],[-4.43215,48.4572],[-4.43256,48.45487],[-4.4335,48.45186],[-4.433,48.45174],[-4.43242,48.45258],[-4.43018,48.45163],[-4.43044,48.45017],[-4.43008,48.44946],[-4.43059,48.44799],[-4.43151,48.4481],[-4.43153,48.44623],[-4.43304,48.44598],[-4.43312,48.44579],[-4.43481,48.44603],[-4.43693,48.44739],[-4.43853,48.44775],[-4.43899,48.44765],[-4.44001,48.44698],[-4.43965,48.4467],[-4.44056,48.44606],[-4.44191,48.44576],[-4.44167,48.44519],[-4.44094,48.4448],[-4.44064,48.4437],[-4.44104,48.4429],[-4.44087,48.44256],[-4.44117,48.44151],[-4.44179,48.44093],[-4.4419,48.44023],[-4.44238,48.44022],[-4.44266,48.43899],[-4.44239,48.4389],[-4.44246,48.43844],[-4.44184,48.43844],[-4.44179,48.43768],[-4.44136,48.4372],[-4.44195,48.43704],[-4.44203,48.43675],[-4.44407,48.43553],[-4.44185,48.4327],[-4.444,48.43229],[-4.44438,48.43195],[-4.44579,48.43174],[-4.44717,48.43129],[-4.44684,48.43064],[-4.44738,48.43051],[-4.44958,48.42921],[-4.45022,48.42845],[-4.45282,48.42888],[-4.45315,48.42809],[-4.45508,48.42746],[-4.45799,48.42546],[-4.4591,48.42489],[-4.46042,48.42415],[-4.46066,48.42575],[-4.46183,48.42697],[-4.46609,48.42967],[-4.46787,48.42863],[-4.47349,48.42759],[-4.47355,48.42847],[-4.47286,48.43036],[-4.47384,48.43181],[-4.47477,48.43249],[-4.47534,48.43264],[-4.47588,48.43314],[-4.47678,48.43444],[-4.47692,48.43542],[-4.47768,48.43661],[-4.47901,48.43733],[-4.48015,48.43752],[-4.48131,48.43727],[-4.48255,48.43774],[-4.48443,48.43776],[-4.48818,48.43837],[-4.48842,48.43853],[-4.48744,48.43958],[-4.48525,48.44045],[-4.48404,48.44149],[-4.48393,48.44272],[-4.48337,48.44312],[-4.48192,48.44502],[-4.48315,48.44446],[-4.48318,48.4446],[-4.48378,48.4447],[-4.48405,48.4454],[-4.48558,48.4462],[-4.48946,48.44743],[-4.48943,48.44795],[-4.48976,48.4484],[-4.48934,48.44908],[-4.48918,48.45038],[-4.49008,48.4504],[-4.49023,48.45081],[-4.49264,48.45151],[-4.4924,48.45273],[-4.49249,48.45395]]] } }, { "type": "LineString", "coordinates": [[-4.49023, 48.42232], [-4.45, 48.42443], [-4.4, 48.42298]] } ], "params": [ {"color": "#6D4C41", "fillColor": "#FFB300" } ], "globalParams": { "map": { "mapType": "CARTODB", "tiles": [ "https://tiles.openseamap.org/seamark/{z}/{x}/{y}.png" ] } } } '> JSON->

HeatMap

NEWGTS 'g' STORE
0 100 <% 'ts' STORE $g NOW $ts 10000 - * RAND 20 * RAND 20 * NaN RAND 100.0 * ROUND ADDVALUE DROP %> FOR
{
  'data' [ $g ]
  'params' [ 
    { 'map' { 'heatmap' true } }
  ]
  'globalParams' { 
    'map' { 
      'heatRadius' 25 
      'heatOpacity' 0.5
    }
  }
}
NEWGTS 'g' STORE 0 100 <% 'ts' STORE $g NOW $ts 10000 - * RAND 20 * RAND 20 * NaN RAND 100.0 * ROUND ADDVALUE DROP %> FOR { 'data' [ $g ] 'params' [ { 'map' { 'heatmap' true } } ] 'globalParams' { 'map' { 'heatRadius' 25 'heatOpacity' 0.5 } } }

Simple path

NEWGTS 'g' STORE
1 6 <% 'ts' STORE $g $ts RAND + STU * NOW + RAND 50 * RAND 50 * RAND RAND ADDVALUE DROP %> FOR
{ 
  'data' $g 
  'params' [ 
    { 'marker' 'home' 'render' 'path' 'line' true }
  ]
}
NEWGTS 'g' STORE 1 6 <% 'ts' STORE $g $ts RAND + STU * NOW + RAND 50 * RAND 50 * RAND RAND ADDVALUE DROP %> FOR { 'data' $g 'params' [ { 'marker' 'home' 'render' 'path' 'line' true } ] }

Custom tile server

NEWGTS 'g' STORE
1 6 <% 'ts' STORE $g $ts RAND + STU * NOW + RAND 25 * RAND 25 * RAND RAND ADDVALUE DROP %> FOR
{
  'data' $g
  'globalParams' {
    'map' {
      'mapType' 'NONE'
      'tiles' [ 'https://tileserver.memomaps.de/tilegen/{z}/{x}/{y}.png' ]
    }
  }
}
NEWGTS 'g' STORE 1 6 <% 'ts' STORE $g $ts RAND + STU * NOW + RAND 25 * RAND 25 * RAND RAND ADDVALUE DROP %> FOR { 'data' $g 'globalParams' { 'map' { 'mapType' 'NONE' 'tiles' [ 'https://tileserver.memomaps.de/tilegen/{z}/{x}/{y}.png' ] } } }

Custom tooltip

[ 1 2 <% DROP NEWGTS 'g' STORE
  1 5 <% 'ts' STORE $g $ts RAND 20 *  RAND  20 * NaN RAND ADDVALUE DROP %> FOR
$g %> FOR ] 'data' STORE
{
  'data' $data
  'params' [
    { 'key' 'Joe'  'map' { 'tooltip' { 2 'Simple text' } } }
    { 'key' 'William' 'map' { 'tooltip' { 2 '<img src="https://warp10.io/assets/img/header-w-white.png">' } } }
  ]
}
[ 1 2 <% DROP NEWGTS 'g' STORE 1 5 <% 'ts' STORE $g $ts RAND 20 * RAND 20 * NaN RAND ADDVALUE DROP %> FOR $g %> FOR ] 'data' STORE { 'data' $data 'params' [ { 'key' 'Joe' 'map' { 'tooltip' { 2 'Simple text' } } } { 'key' 'William' 'map' { 'tooltip' { 2 '' } } } ] }

Custom Markers

[ 1 4 <% DROP NEWGTS 'g' STORE
  1 5 <% 'ts' STORE $g $ts RAND 20 *  RAND  20 * NaN RAND ADDVALUE DROP %> FOR
$g %> FOR ] 'data' STORE

{ 
  'data' $data
  'params' [ 
    { 'marker' 'https://findicons.com/files/icons/1274/arcade_daze/48/pac_man.png' 'key' 'Url' }
    {
      'marker' 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAABggAAAYIBFx04PQAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAMkSURBVFiFrddNqFVVFAfwn/oSv0jtKZqPkiZiHyRpIWka2ixpUpBBhZhgg2jwBk0cFCES4SCIHFQDBbWocBDiwFLoKUWDBBE0sYwSeoZlPTV86ktvg7UPd3veve/ec+/7w2GfdfZee/3PXmuvtTdjYwnWYGqDvqdxEpfwOea0mKsSJuFT1NJzAcuy/kUYxtd4C39hP1ZhA+7rlsDzyfArYhWO4/usvx/X1Ffm9YxsDdexvhsCW3E+kzekiRckeTvOZf2bUv+r6MU+sSoTWxlqNuBXzMPcJA+kdnVqZ2EoGz8LN/AxLmJvIjK/EwJLRAxMED4tCJ1rQWAIt5I8PbXDVQhMxpfC3x+mb6uz/oFMnt2EQC7fwuUqBF7CM3gRj4gt9mTWfwQPCLeUDTYidAU3qxB4EL/gE7EKO/BwmqwgULilmQtyQv+0Ml4mcBF9wv9wNPU/keQzGBRumI2/SwbLcmUCpzEF9yb5pEhAeRwcFW6ZKTJggUYrUpnAj6m9P7U1fGt0HBS7pGywTKiQF+AAroqffLYZgZ8xgsXZtwEsxYxMnpDeW+2CodR+I2JpK87iM1la78mURtKAnMCRNGYFvsIpkeHmZAYnY1oDApewWySj5WKFe0QcPYdj5RUgligncCJNXLihlv4I/siMMXoXrMc6bFR37zQRZ1c1wTsi8HLsx8FMXogXMvkO7MI9SZ4k9n8N75bmek8UsabVsig6vdm3xeopuR3cmeY4pL6lieAdwdtjKS9PyisrGGyEjbgrkyfiOxHoU8ZSLNhv6pJAGZvTvOvaGTwo6v14oRd/imNbWzgsAm+8sFNUxb52FT4Q+WA8sEqU5f4qSi+7/fjVKXpEVT0htmrb6MN/4qDZDd4Q+eDxTpT3ibNBo/tAO1iIf/FRh/oeEhnr/Q50p+IH/O72XFAZ/SIWtlTQmS5W74b6QaYrbEskvtA6KB8V1XJYl5eSMs4mEtewRxxal4nr2VN4TaTZ4la0djyNw0/J8JvpvVZ6booSXdwl5zacpQl6Wg8Bd4vDyXaxTReJonIev4nz32NVDFfBAaP/utkzqEW1K+N/QkDNWuXUcakAAAAASUVORK5CYII='
      'key' 'base64'
      'map' { 'iconSize' [ 128 128 ] }
    }
    {
      'marker' 
 <'
<svg xmlns="http://www.w3.org/2000/svg" width="40"
xmlns:xlink="http://www.w3.org/1999/xlink" height="37">
<g id="u"><g id="t">
<path id="s" fill="none" stroke="#321" stroke-width="2.4"
d="m13,6.5a13,13 0 0,1 3-1.2v-4h8v4a13,13 0 0,1 3,1.2M19,12.5a6,6 0 1,0 2,0z"/>
<use xlink:href="#s" transform="rotate(45 20,18.5)"/></g>
<use xlink:href="#t" transform="rotate(90 20,18.5)"/></g>
<use xlink:href="#u" transform="rotate(180 20,18.5)"/>
</svg>
'> 
      'key' 'SVG'
    }
    {
      'marker' 'home'
      'map' { 'iconSize' 48 }
      'key' 'Standard'
    }
  ]
  'globalParams' { 
    'map' {  'render' 'path' 'iconSize' 24 }
  }
}
[ 1 4 <% DROP NEWGTS 'g' STORE 1 5 <% 'ts' STORE $g $ts RAND 20 * RAND 20 * NaN RAND ADDVALUE DROP %> FOR $g %> FOR ] 'data' STORE { 'data' $data 'params' [ { 'marker' 'https://findicons.com/files/icons/1274/arcade_daze/48/pac_man.png' 'key' 'Url' } { 'marker' 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAABggAAAYIBFx04PQAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAMkSURBVFiFrddNqFVVFAfwn/oSv0jtKZqPkiZiHyRpIWka2ixpUpBBhZhgg2jwBk0cFCES4SCIHFQDBbWocBDiwFLoKUWDBBE0sYwSeoZlPTV86ktvg7UPd3veve/ec+/7w2GfdfZee/3PXmuvtTdjYwnWYGqDvqdxEpfwOea0mKsSJuFT1NJzAcuy/kUYxtd4C39hP1ZhA+7rlsDzyfArYhWO4/usvx/X1Ffm9YxsDdexvhsCW3E+kzekiRckeTvOZf2bUv+r6MU+sSoTWxlqNuBXzMPcJA+kdnVqZ2EoGz8LN/AxLmJvIjK/EwJLRAxMED4tCJ1rQWAIt5I8PbXDVQhMxpfC3x+mb6uz/oFMnt2EQC7fwuUqBF7CM3gRj4gt9mTWfwQPCLeUDTYidAU3qxB4EL/gE7EKO/BwmqwgULilmQtyQv+0Ml4mcBF9wv9wNPU/keQzGBRumI2/SwbLcmUCpzEF9yb5pEhAeRwcFW6ZKTJggUYrUpnAj6m9P7U1fGt0HBS7pGywTKiQF+AAroqffLYZgZ8xgsXZtwEsxYxMnpDeW+2CodR+I2JpK87iM1la78mURtKAnMCRNGYFvsIpkeHmZAYnY1oDApewWySj5WKFe0QcPYdj5RUgligncCJNXLihlv4I/siMMXoXrMc6bFR37zQRZ1c1wTsi8HLsx8FMXogXMvkO7MI9SZ4k9n8N75bmek8UsabVsig6vdm3xeopuR3cmeY4pL6lieAdwdtjKS9PyisrGGyEjbgrkyfiOxHoU8ZSLNhv6pJAGZvTvOvaGTwo6v14oRd/imNbWzgsAm+8sFNUxb52FT4Q+WA8sEqU5f4qSi+7/fjVKXpEVT0htmrb6MN/4qDZDd4Q+eDxTpT3ibNBo/tAO1iIf/FRh/oeEhnr/Q50p+IH/O72XFAZ/SIWtlTQmS5W74b6QaYrbEskvtA6KB8V1XJYl5eSMs4mEtewRxxal4nr2VN4TaTZ4la0djyNw0/J8JvpvVZ6booSXdwl5zacpQl6Wg8Bd4vDyXaxTReJonIev4nz32NVDFfBAaP/utkzqEW1K+N/QkDNWuXUcakAAAAASUVORK5CYII=' 'key' 'base64' 'map' { 'iconSize' [ 128 128 ] } } { 'marker' <' '> 'key' 'SVG' } { 'marker' 'home' 'map' { 'iconSize' 48 } 'key' 'Standard' } ] 'globalParams' { 'map' { 'render' 'path' 'iconSize' 24 } } }

Custom Markers and clustering

'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAABXxJREFUaEO9WstuHUUQPTU35hUIYu3HF0SCBQRD8gFEsM0GpMj3mdjC/AuERzz3gYQEm2yxbj4gwgnZWIIviM2aEENCuPIU6p7pmZ7px/SMrzKr657urnOqu6pP15jgewgAuzvYX7sHGW/0BvnbMjYAg5dDc37tQCjsNXgBlHuIv7KHQGCfw1sR9QKqR1vFKzEUwwRmx2OsbsuOxc7IZgwBbdjybEvXq91dfvn5M9w4ZXwaARcBnE8Dws7Z/abVwolB/yTA7xHjx1fOI751i57bZiptIRWxN68nq6crtA/g7dbms4GtiOmD0t+HnQU+uf0D/VHFY7hTeP7fp3hQgBdxQSAvklYwcyyu0RUeh6++hs3qShgERkP+ghN8qTM9G7yKz0Imc/QhYDee0tf6jFSNgWGfhfcvaZ32OwvcsC1fq+0VmGUHA15jRhwBV4UdySnB/fH39EGJQPWPfo9PiPC6amfC+mRCx63AnmkQodtN1s9FeKRNczKe0gU9lxpbaNjn0tk7nspFwqjPHyeEPWKs2nAx45iA0XhG86pT0kMqdX0+TyKdOhrPornRThiNp+k8Jp6IdHmQEtAMuAgMe3wEwprLqQJNBBzFU9rQPVT9rebR+wvzA21+kvNEGwKoC0+Kw3KQOQn0+QhwEUijjhhH8SwjYLBITeqOSIHSRkGA1zJQuSP8BCynkmcFRDDF+iroyUKAEVtob0p3fYftsMdyHiK5qWT/jJi9PdvSypba0monGFloYAni6YSOPaLUE6rBgsSqebpddgdxZtUM4i4fIMKmQpWA50Q0MjNRK1FjBWrbbRI8yRX/KM+IjF8mM7qshSyMFRgNeZsT/ra95gk5qVrmV8b2eEa3neeAeHHtGr/05hu4R4T3WpppOKyGsHzNIg3/SudwJY5p4SUgtNCzp7hHwLse8ekB2XIF6oYxHj4+wZU7d+g/L4Fhn3cAfNPQjc7udbia2CHCTjyh7/wEZBDzphYDDbVQSHDXC6KqFhKgGTiYTOlDLwFbGjUykGE/BHQTX6d9t7q8vkJ4pN2hCi3kTKMttRAYQvAZWqgK29RCNBf0h0pr5RrJooUYGM9SbZYfZFUDbbWQmMeUEqbXh5okUVJC9LJJDNnucKi62Qer0ToxJwnoYs6xY0pANe1kEiiLOaeUsK9AkTuU9lAaxqVIdS1kx57GiamForv29lRTDVwrII1Y1KgziJccp67p9PZ2WmiLD9Ap0mgCzIlg0ULNs0r9iAK+uI11iIRqNbSQN4hHA95mdmshA8QyT6p6htvj6QvQQnZOIcWTcumsNIKRaaFoYV4ptUPhc10L1XvE0qP5koQQZsbDv4K0UI93QGUtpARhfiKGYKxUpdxV2HAvNdBCxYUG4P3OgprXhSyXsSaJTGihhBF3GFcF+exG6NdCwoCzLlSjv5qAK/u8PPLsaTRECxl7Sp5Rx9DqOSlIk5ZNC4mervaSlFiuFipvclEAVnWhmqpEXl9S9R/xYcWsC2XlFt2hyyVgfi3Q6zy2z11e0SYLW5a6UI+Fb/LHKKs0UKNGXahyIuZ1IV9eCdJCjNHeLKsXebWQpfSwNC3UPqpz/llpJeBCkxnLSnwPQHxJcWukhZYAWsV+d4vXOyQreLkWQkh5fdDjXRC+siWafNcbB1m5IeScCz6+NCDWDxzVbJd+YuL7AL1jGmkOLUQmeMkUExw+foL3a8sqYrKb13n1dAU/A6iQaE6gmaedvcM/8qkpRIXurQsYcYLPmHBR/2rjBxVYabOKo2IsM/4G4bcI+OnPJ4irnlcYjBt+uyp09Ypx9llCV84o7oYOfGH9ajKbUZVwaRg/YLfSs4jSQO5hOdlBwG2jmNZtQL7x2s/+scR7sw8j8D+25CRhDGiCwgAAAABJRU5ErkJggg==' 'a' STORE
'data:image/png;base64,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' 'b' STORE

[ [ 51.5 -0.22 'on' ] [ 51.5 -0.22  'off' ] [ 51.5 -0.22 'on' ]  [ 51.46 -0.3 'on' ] [ 51.46 -0.3 'off' ] [ 51.46 -0.3 'on' ] [ 51.46 -0.3 'off' ] [ 51.42 -0.2 'on' ] ] 'positions' STORE  

{
'data' [ 
  { 'positions' $positions }
]
'globalParams' { 'map' { 'cluster' true } }
'params' [
  { 
    'key' 'DataSet 1'
    'render' 'marker'
    'marker' $positions <% <% 2 GET 'on' == %> <% $a %> <% $b %> IFTE %> F LMAP
    'map' { 'iconSize' [ 50 50 ] }
   }
  ]
}
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAABXxJREFUaEO9WstuHUUQPTU35hUIYu3HF0SCBQRD8gFEsM0GpMj3mdjC/AuERzz3gYQEm2yxbj4gwgnZWIIviM2aEENCuPIU6p7pmZ7px/SMrzKr657urnOqu6pP15jgewgAuzvYX7sHGW/0BvnbMjYAg5dDc37tQCjsNXgBlHuIv7KHQGCfw1sR9QKqR1vFKzEUwwRmx2OsbsuOxc7IZgwBbdjybEvXq91dfvn5M9w4ZXwaARcBnE8Dws7Z/abVwolB/yTA7xHjx1fOI751i57bZiptIRWxN68nq6crtA/g7dbms4GtiOmD0t+HnQU+uf0D/VHFY7hTeP7fp3hQgBdxQSAvklYwcyyu0RUeh6++hs3qShgERkP+ghN8qTM9G7yKz0Imc/QhYDee0tf6jFSNgWGfhfcvaZ32OwvcsC1fq+0VmGUHA15jRhwBV4UdySnB/fH39EGJQPWPfo9PiPC6amfC+mRCx63AnmkQodtN1s9FeKRNczKe0gU9lxpbaNjn0tk7nspFwqjPHyeEPWKs2nAx45iA0XhG86pT0kMqdX0+TyKdOhrPornRThiNp+k8Jp6IdHmQEtAMuAgMe3wEwprLqQJNBBzFU9rQPVT9rebR+wvzA21+kvNEGwKoC0+Kw3KQOQn0+QhwEUijjhhH8SwjYLBITeqOSIHSRkGA1zJQuSP8BCynkmcFRDDF+iroyUKAEVtob0p3fYftsMdyHiK5qWT/jJi9PdvSypba0monGFloYAni6YSOPaLUE6rBgsSqebpddgdxZtUM4i4fIMKmQpWA50Q0MjNRK1FjBWrbbRI8yRX/KM+IjF8mM7qshSyMFRgNeZsT/ra95gk5qVrmV8b2eEa3neeAeHHtGr/05hu4R4T3WpppOKyGsHzNIg3/SudwJY5p4SUgtNCzp7hHwLse8ekB2XIF6oYxHj4+wZU7d+g/L4Fhn3cAfNPQjc7udbia2CHCTjyh7/wEZBDzphYDDbVQSHDXC6KqFhKgGTiYTOlDLwFbGjUykGE/BHQTX6d9t7q8vkJ4pN2hCi3kTKMttRAYQvAZWqgK29RCNBf0h0pr5RrJooUYGM9SbZYfZFUDbbWQmMeUEqbXh5okUVJC9LJJDNnucKi62Qer0ToxJwnoYs6xY0pANe1kEiiLOaeUsK9AkTuU9lAaxqVIdS1kx57GiamForv29lRTDVwrII1Y1KgziJccp67p9PZ2WmiLD9Ap0mgCzIlg0ULNs0r9iAK+uI11iIRqNbSQN4hHA95mdmshA8QyT6p6htvj6QvQQnZOIcWTcumsNIKRaaFoYV4ptUPhc10L1XvE0qP5koQQZsbDv4K0UI93QGUtpARhfiKGYKxUpdxV2HAvNdBCxYUG4P3OgprXhSyXsSaJTGihhBF3GFcF+exG6NdCwoCzLlSjv5qAK/u8PPLsaTRECxl7Sp5Rx9DqOSlIk5ZNC4mervaSlFiuFipvclEAVnWhmqpEXl9S9R/xYcWsC2XlFt2hyyVgfi3Q6zy2z11e0SYLW5a6UI+Fb/LHKKs0UKNGXahyIuZ1IV9eCdJCjNHeLKsXebWQpfSwNC3UPqpz/llpJeBCkxnLSnwPQHxJcWukhZYAWsV+d4vXOyQreLkWQkh5fdDjXRC+siWafNcbB1m5IeScCz6+NCDWDxzVbJd+YuL7AL1jGmkOLUQmeMkUExw+foL3a8sqYrKb13n1dAU/A6iQaE6gmaedvcM/8qkpRIXurQsYcYLPmHBR/2rjBxVYabOKo2IsM/4G4bcI+OnPJ4irnlcYjBt+uyp09Ypx9llCV84o7oYOfGH9ajKbUZVwaRg/YLfSs4jSQO5hOdlBwG2jmNZtQL7x2s/+scR7sw8j8D+25CRhDGiCwgAAAABJRU5ErkJggg==' 'a' STORE 'data:image/png;base64,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' 'b' STORE [ [ 51.5 -0.22 'on' ] [ 51.5 -0.22 'off' ] [ 51.5 -0.22 'on' ] [ 51.46 -0.3 'on' ] [ 51.46 -0.3 'off' ] [ 51.46 -0.3 'on' ] [ 51.46 -0.3 'off' ] [ 51.42 -0.2 'on' ] ] 'positions' STORE { 'data' [ { 'positions' $positions } ] 'globalParams' { 'map' { 'cluster' true } } 'params' [ { 'key' 'DataSet 1' 'render' 'marker' 'marker' $positions <% <% 2 GET 'on' == %> <% $a %> <% $b %> IFTE %> F LMAP 'map' { 'iconSize' [ 50 50 ] } } ] }

Custom Marker's colors and clustering

{
  'data' [ 
    { 'positions' [ [ 51.5 -0.22 'on' ] [ 51.5 -0.22  'on' ] [ 51.5 -0.22 'on' ]  [ 51.46 -0.3 'on' ] [ 51.46 -0.3 'on' ] [ 51.46 -0.3 'on' ] [ 51.46 -0.3 'on' ] [ 51.42 -0.2 'on' ] ] }
  ]
 'globalParams' { 'map' { 'cluster' true } }
  'params' [
    { 
      'key' 'DataSet 1'
      'render' 'marker'
      'marker' 'star'
      'map' { 'iconSize' 50 }
      'color' [ 'blue' 'green'  'green'  'green'  'green' ]
    }
  ]
}
{ 'data' [ { 'positions' [ [ 51.5 -0.22 'on' ] [ 51.5 -0.22 'on' ] [ 51.5 -0.22 'on' ] [ 51.46 -0.3 'on' ] [ 51.46 -0.3 'on' ] [ 51.46 -0.3 'on' ] [ 51.46 -0.3 'on' ] [ 51.42 -0.2 'on' ] ] } ] 'globalParams' { 'map' { 'cluster' true } } 'params' [ { 'key' 'DataSet 1' 'render' 'marker' 'marker' 'star' 'map' { 'iconSize' 50 } 'color' [ 'blue' 'green' 'green' 'green' 'green' ] } ] }

Clustering keeping the dataset icon

In this example, clustering is done on several dataset (clusters do not mix the datasets), and the clustered icon is the dataset icon (with clusterCustomIcon option). The cluster radius can be adjusted with maxClusterRadius.

{ 
  'data' [
    { 'positions' [ [ 51.5 -0.22 'serial 2447' ] [ 51.6 -0.24  'serial 4787' ] [ 51.6 -0.2 'serial 6647' ]  [ 51.35 -0.1 'serial 8777' ] ] }
    { 'positions' [ [ 51.45 -0.2 'serial 42' ] [ 51.8 -0.12 'serial 78' ] [ 51.36 -0.0 'serial 4775' ] [ 51.3 0.1 'serial 1112' ] ] }
    { 'positions' [ [ 51.75 -0.11 'serial 6666' ] [ 51.78 -0.13 'serial 6667' ] [ 51.765 -0.15 'serial 9477' ] ] }
    ] 
  'params' [ 
    { 
      'key' 'All OK'
      'color'  'green' 
      'render' 'marker'   
      'map' { 'iconSize' [ 32 32 ] }  
      'marker' 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAOxAAADsQBlSsOGwAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAARqSURBVFiFtZdrbFRFGIafObvbK7ULC9uWrQ3bGkBiSMGogFwTYwCDBDUKWtJ2xR+EAiI1RIhFLQGEgjGFSNW2lpQ7wSARkMRLxIT4A1JDpDQK3dL7ZQuU1tNtt+f4o5ztOd3Sy5Z9f53vnW/m+eZkZjIj6K/iSVZM3ZkIloM6BbADUkDe8KQATaDeRHCWsMhi3rx9X58gDOmlE10o7EUwLkjgUPKA+IDVtYc1o29mpY6dqBSGEA5gA7WE0oRczej9A6UTXagUamZSpIP1zkwWjZ9NfLidMMkSFK1L6abe28ivLVfIryymWq7raxQig7TaEsGRpLEovlvAWIBF4+dQlJpHtCkqKOij1O7rwFWWzW+eK5rlwRf2lITie1eDJ0U6QgIHGGOOpig1j8SIBM2yYe52ScAyzclyZoQEri8iy5mhc5RlEjBFCxfYZoUMrmnh+Nm6SEw1AxO00B5uCwnU47tHfv1RulUf6+JX6pvsZnRbUQr6vBlYKionPT+Rc+cAd3vaAPCqXfoUyfxYiTpVemvJrsrjcttVg2/BZIgf75Qf6kjLjyz4O8MAFwjesi1mc0K6ITfgD1TIbizCTHJE4ojBsuJlS9V+jnsuGHxnuIO9k7KZH/Msck/nows41XqJD6v2IQmJ3CezWGN/fdjwSm8tGf9uo1y+7fdMwkRW/Co2J6QTIYUP2M9QwOW2q6io9Kg9bL3zJbLiZX3820PCr3WU884/W/D47vk9u2UcBcnbeTFmxqB9DWsgbcIywkWYP86tOUR+w9FBB7h47w9WVGwwwOfEpPLztMIh4QEFPB/9DEcn7yFKivB7O2oKONv6y4CdT3kukXnrY2TF6/dc9hWcnvwFcZbhnSkBu2BezExOTM7zF6Gist69i786Kgx5xz0X2ODeRY/aA/Su8pzEtexO2oRZmPoPO/wCAF4YM51DyTlIore5U/Gy0b2bbtUHwLGW87zv/twPNwsTB53byIpfNWzwoAUALLbOZavjPX98Q77FV40nONZynk1Ve1BUBQCLMFOQvJ03bC+PGA4DnAN6rYtbyfm7v3OtoxyA/XUldKpdBvjXKZ/winV+UHAY4iQ0CRM7kzb64/+UTgP8m5RPRwUfsgCAmdHTmBH9tMGzCDPfpnzGUuu8UcG1AhQtUPo+DfrIsQbTw5UdZ7FRlJLLEuvcoID9GIoZaAbiAJq8HpxRgTeihU88R9n001ztuMFLsbMIE8FdUgEaOpv1YZME+De47sIYoDiLjaXWeaOCBzLUmxJwTgsPVH5Hu69jVIDB9MDXzkF3ic6RzklI5kJUWgGq5TpcZdkhKeKBrx1XWTY1cr1mefBZikycud/JazHNwHIAt1zDmYaLhEthWC2xRJki/QtwpOpSuqmW6/m+4SJrr2/lettNXatYS3r1n31vw8MJOxBiW3DzG7FyWV2XAwGPU0c6qroPCM31GFoQ6ibS6ks1QwSknEyOpUvORBGvIphK7xYdzfO8ESgH9QeEt5i01jZ9wv94d3pvl17KSgAAAABJRU5ErkJggg=='
    }
    { 
      'key' 'Disconnected'
      'render' 'marker'
      'marker' 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAOxAAADsQBlSsOGwAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAASaSURBVFiFvZdfSFRZHMc/5975r3TvOKOLo1HBDhMEvURPPZW0Qnh3VXrpya0tkN6UHgLFjJYlWPZpIYbEjXKKtGhyZx607CkJzHrqQZdWiKJkJxVdDHMc79mH6V7GmbWc0fw+3d85P+73e+49v9/5HkEe4vG4rqrqSSHED0AEqAKU/LwNwgRSwKQQYtDtdl87evToQm6CyA2SyeQpKeWvQEWJhF/CLNBuGMYNa8BeWSKR+EVK2fsVyQECwPVEInHJGhBgr7zXGnS73YRCITRNw+l0oiil/QHTNFlZWWFhYYF3796xvLxszwkhfmxoaLguksmkX0o5BfgBNE0jHA6jqmppa1wHq6urvHz5koUFewvMZjKZbxXTNH+yyN1uN+FwGEVRePPmDVLKkgkzmQyvX78mnU4DoKoq4XAYl8tlpQQcDscpBTCskVAohKqqXLhwgQMHDnD69GlWVlaKJpdSEovFuHnzJr29vWQyGVtEKBTKTTUUIUTEinbs2AFAKpUCIJFIcPbsWVZXV4sS8OHDB6anpwGYn59ndnbWntM0LTd1rwJUWpHT6QTg8uXL7N+/H4DBwUFaW1vtVWwEpmmuG1scn1ClkFOKQmTbgq7r9Pf3E4lEbBFtbW0FL7bw+PFjenp6eP78+RfFWRyfsH59BQIB4vG4LaK/v5/29vYCEXNzc4yOjjIzM8PIyMiaUtsIPlvgwWCQgYEBdu/eDcCtW7c4d+7cmur4+PGj/Wyapr3rt0QAQHV1NfF4nF27dgEQi8Xo7OwsimRTAgBqamqIx+Ps3LkTgJ6eHrq6urZPAEBtbS0DAwP4/X4AotEo3d3dmxbgKCrZ4aCxsZE7d+6wuLjIlStXME0Tr9dbsoCiTpl0Oo2u6xw/fpyysjIg+yXGxsa2R4AFv99Pc3MzFRXZk/vJkyeMj49vvYBXr14xPj7O0tJSwVwwGOTu3bt2ax0dHeXZs2dbJ+Dt27fcvn2bkZER7t+//785+/bt4+rVq3g8HiDbEfv6+ooSsO4mTKVSdsN5//79ui+IRCI0NjZy79490uk0Fy9ezG+3n0WpZnMNqquraWpqwuVyIaWku7ubFy9ebJ8AyHqJpqYmfD4fUkoePXrExMTEhgTYp8tmHJAlIhqN4vF4kFIyPDzM5OTkmpw8DlMB7B9civvJx6FDh4hGozgcDqSUDA0NMTw8bM/ncaQUKeVfVpRjGAkEAgXPFRUV9gYLBAIIIdB1HYcju5e9Xi8+n4/6+nqam5tRVRUpJR0dHTx48KCAA5hUT5w4ERRCfAewtLREZWUliqKgaRpVVVUEg0EOHz6My+XC5/NRW1uLruscOXIEj8eD0+lkz549lJWVUVdXR3l5OYqicPDgQbxeL0+fPiWTyTA2NsaZM2eYmprKtXi/W7b8bz5dSLbalieTSc6fP49hGLS0tBTYcgGQSCROAn9YM1t9MZmfn2d6ejrfLbUYhnHD7hjJZPJnKWVHSUzF45JhGF1QeDltkVL+RvYO9zUwI4Roa2hoiFkDBT3z4cOH2vLy8kkp5ffAXuAbNnc9/weYAP5UVfXasWPH/s1N+A/hSMnCCuYIDAAAAABJRU5ErkJggg=='
      'map' { 'iconSize' 32  }
      'color' 'orange'          
    }
    { 
      'key' 'Error'
      'color' 'red'
      'render' 'marker'   
      'map' { 'iconSize' [ 30 32 ] }  
      'marker' 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAOxAAADsQBlSsOGwAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAPqSURBVFiFxZc7TFtnGIaf/9jmYoMvgMNFpoOpaIYQgRiAASlCwUEKLiuDRQphQYJE7cBApS6pulQdWNiSKFF3q4UIOcnCwASSpRBBsMSIgJRLQMIGH5/zdyDHHNs4UAer73S+9/u/874+/8X/J8iCvHPHTUnJMDAAfAfcAJTscVeEDnxEyg8oyl9o2nPx9u2heYDIEA8ERoDfgaoCBS/DHkL8JCKRlwaR/mUyEPgNeFpEcYBqpHwhA4EnBiE+i498FgdA83pJBIMkW1rQPB6wWguTS6Ww7O9TsrJC+ewslt1dc/YH8fr1CyHv3/egqhuAByB5+zZHjx4hy8oKE80DcXKCc3qakpUVg9ojmfxWQVUfGuKa11sUcQBZVsbR48do1dUGVY3NNqIAQYNJ9PcXRdxsItHfb6aCCmdbDYDkrVtFE09rtLScB0LcVACvEesuV9EN6G63ObxhxXzIKGeP+/v7HB8fX/iCmpoaysvLC3egZJxpSs7+WlhYIBwO56232WxMTU3h8XgKN2F2kE2sr69/sUBVVRKJxLWIA+Q9YaxWK6FQKIf3er00NDTk8JqmAWCxWHJyqVQKi8WCECInl9eAoii0trbmS7O0tEQ0GqWrq4vFxUVisRhCCAYHB9nZ2WFvb4+2tjbm5+fZ2trCbrczNjbGN7W1VzNwGcLhMPF4nNXV1Qx+eXk5PY3RaDTNx+NxNjc3r24glUoxMzOTwblcLoLBIE6nE1VV03xFRQW9vb1omobP58tYRz6fj46ODqSUtLe3g5RXM6DrOrFYLIevr6+np6cnHSuKwvj4OHV1dQBsb2+nc263m4mJCUpLS89fkExezYAQgvr6+gzO5XLlrIvm5ua0eDY6OzszxS9AXgM2m43JyckvFsPZ588Hu91+aX2hV61rw/9uIO8UqKp64RQ0NjYyOjpaPAPGnEopSWatWICNjQ02NzdxOBx8+vSJysrKjLzD4UAIgZQyJ5fPgI4xFbpOX18fDoeD09PTCwu8Xi9NTU0MDQ2xtrZGd3d3Rr6yspJQKMTBwQEt5v9+A7qeEVmBf4BaAOXwkKraWgYGBi517vf78fv9F+ba29vz1ikHB+bwowKkjy3ThbFoKHn//jyQ8oMCzBpx+dwc4uSkaOIikcD+6pWZmlWw2Z4C+wCW3V2c09NFMSESCZzT0yjnvcEeqvrsrDG5d28YKZ8ZGa2m5rwxqar6+sbk3Tvsc3NmcRDigYhEXqZvCDIQ+BX4uTCl/wghnohI5BfIbU4fAH8A1RfVXYPwLrr+o3jz5s80lT1G3r3rwmIZRsrvgZucbdGvac93gDWk/Bur9bmYnz8yD/gXwKBHJwNxAm8AAAAASUVORK5CYII='          
    }
  ]
  'globalParams' { 'map' { 'cluster' true 'clusterCustomIcon' true 'maxClusterRadius' 100 } }      

}
{ 'data' [ { 'positions' [ [ 51.5 -0.22 'serial 2447' ] [ 51.6 -0.24 'serial 4787' ] [ 51.6 -0.2 'serial 6647' ] [ 51.35 -0.1 'serial 8777' ] ] } { 'positions' [ [ 51.45 -0.2 'serial 42' ] [ 51.8 -0.12 'serial 78' ] [ 51.36 -0.0 'serial 4775' ] [ 51.3 0.1 'serial 1112' ] ] } { 'positions' [ [ 51.75 -0.11 'serial 6666' ] [ 51.78 -0.13 'serial 6667' ] [ 51.765 -0.15 'serial 9477' ] ] } ] 'params' [ { 'key' 'All OK' 'color' 'green' 'render' 'marker' 'map' { 'iconSize' [ 32 32 ] } 'marker' 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAOxAAADsQBlSsOGwAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAARqSURBVFiFtZdrbFRFGIafObvbK7ULC9uWrQ3bGkBiSMGogFwTYwCDBDUKWtJ2xR+EAiI1RIhFLQGEgjGFSNW2lpQ7wSARkMRLxIT4A1JDpDQK3dL7ZQuU1tNtt+f4o5ztOd3Sy5Z9f53vnW/m+eZkZjIj6K/iSVZM3ZkIloM6BbADUkDe8KQATaDeRHCWsMhi3rx9X58gDOmlE10o7EUwLkjgUPKA+IDVtYc1o29mpY6dqBSGEA5gA7WE0oRczej9A6UTXagUamZSpIP1zkwWjZ9NfLidMMkSFK1L6abe28ivLVfIryymWq7raxQig7TaEsGRpLEovlvAWIBF4+dQlJpHtCkqKOij1O7rwFWWzW+eK5rlwRf2lITie1eDJ0U6QgIHGGOOpig1j8SIBM2yYe52ScAyzclyZoQEri8iy5mhc5RlEjBFCxfYZoUMrmnh+Nm6SEw1AxO00B5uCwnU47tHfv1RulUf6+JX6pvsZnRbUQr6vBlYKionPT+Rc+cAd3vaAPCqXfoUyfxYiTpVemvJrsrjcttVg2/BZIgf75Qf6kjLjyz4O8MAFwjesi1mc0K6ITfgD1TIbizCTHJE4ojBsuJlS9V+jnsuGHxnuIO9k7KZH/Msck/nows41XqJD6v2IQmJ3CezWGN/fdjwSm8tGf9uo1y+7fdMwkRW/Co2J6QTIYUP2M9QwOW2q6io9Kg9bL3zJbLiZX3820PCr3WU884/W/D47vk9u2UcBcnbeTFmxqB9DWsgbcIywkWYP86tOUR+w9FBB7h47w9WVGwwwOfEpPLztMIh4QEFPB/9DEcn7yFKivB7O2oKONv6y4CdT3kukXnrY2TF6/dc9hWcnvwFcZbhnSkBu2BezExOTM7zF6Gist69i786Kgx5xz0X2ODeRY/aA/Su8pzEtexO2oRZmPoPO/wCAF4YM51DyTlIore5U/Gy0b2bbtUHwLGW87zv/twPNwsTB53byIpfNWzwoAUALLbOZavjPX98Q77FV40nONZynk1Ve1BUBQCLMFOQvJ03bC+PGA4DnAN6rYtbyfm7v3OtoxyA/XUldKpdBvjXKZ/winV+UHAY4iQ0CRM7kzb64/+UTgP8m5RPRwUfsgCAmdHTmBH9tMGzCDPfpnzGUuu8UcG1AhQtUPo+DfrIsQbTw5UdZ7FRlJLLEuvcoID9GIoZaAbiAJq8HpxRgTeihU88R9n001ztuMFLsbMIE8FdUgEaOpv1YZME+De47sIYoDiLjaXWeaOCBzLUmxJwTgsPVH5Hu69jVIDB9MDXzkF3ic6RzklI5kJUWgGq5TpcZdkhKeKBrx1XWTY1cr1mefBZikycud/JazHNwHIAt1zDmYaLhEthWC2xRJki/QtwpOpSuqmW6/m+4SJrr2/lettNXatYS3r1n31vw8MJOxBiW3DzG7FyWV2XAwGPU0c6qroPCM31GFoQ6ibS6ks1QwSknEyOpUvORBGvIphK7xYdzfO8ESgH9QeEt5i01jZ9wv94d3pvl17KSgAAAABJRU5ErkJggg==' } { 'key' 'Disconnected' 'render' 'marker' 'marker' 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAOxAAADsQBlSsOGwAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAASaSURBVFiFvZdfSFRZHMc/5975r3TvOKOLo1HBDhMEvURPPZW0Qnh3VXrpya0tkN6UHgLFjJYlWPZpIYbEjXKKtGhyZx607CkJzHrqQZdWiKJkJxVdDHMc79mH6V7GmbWc0fw+3d85P+73e+49v9/5HkEe4vG4rqrqSSHED0AEqAKU/LwNwgRSwKQQYtDtdl87evToQm6CyA2SyeQpKeWvQEWJhF/CLNBuGMYNa8BeWSKR+EVK2fsVyQECwPVEInHJGhBgr7zXGnS73YRCITRNw+l0oiil/QHTNFlZWWFhYYF3796xvLxszwkhfmxoaLguksmkX0o5BfgBNE0jHA6jqmppa1wHq6urvHz5koUFewvMZjKZbxXTNH+yyN1uN+FwGEVRePPmDVLKkgkzmQyvX78mnU4DoKoq4XAYl8tlpQQcDscpBTCskVAohKqqXLhwgQMHDnD69GlWVlaKJpdSEovFuHnzJr29vWQyGVtEKBTKTTUUIUTEinbs2AFAKpUCIJFIcPbsWVZXV4sS8OHDB6anpwGYn59ndnbWntM0LTd1rwJUWpHT6QTg8uXL7N+/H4DBwUFaW1vtVWwEpmmuG1scn1ClkFOKQmTbgq7r9Pf3E4lEbBFtbW0FL7bw+PFjenp6eP78+RfFWRyfsH59BQIB4vG4LaK/v5/29vYCEXNzc4yOjjIzM8PIyMiaUtsIPlvgwWCQgYEBdu/eDcCtW7c4d+7cmur4+PGj/Wyapr3rt0QAQHV1NfF4nF27dgEQi8Xo7OwsimRTAgBqamqIx+Ps3LkTgJ6eHrq6urZPAEBtbS0DAwP4/X4AotEo3d3dmxbgKCrZ4aCxsZE7d+6wuLjIlStXME0Tr9dbsoCiTpl0Oo2u6xw/fpyysjIg+yXGxsa2R4AFv99Pc3MzFRXZk/vJkyeMj49vvYBXr14xPj7O0tJSwVwwGOTu3bt2ax0dHeXZs2dbJ+Dt27fcvn2bkZER7t+//785+/bt4+rVq3g8HiDbEfv6+ooSsO4mTKVSdsN5//79ui+IRCI0NjZy79490uk0Fy9ezG+3n0WpZnMNqquraWpqwuVyIaWku7ubFy9ebJ8AyHqJpqYmfD4fUkoePXrExMTEhgTYp8tmHJAlIhqN4vF4kFIyPDzM5OTkmpw8DlMB7B9civvJx6FDh4hGozgcDqSUDA0NMTw8bM/ncaQUKeVfVpRjGAkEAgXPFRUV9gYLBAIIIdB1HYcju5e9Xi8+n4/6+nqam5tRVRUpJR0dHTx48KCAA5hUT5w4ERRCfAewtLREZWUliqKgaRpVVVUEg0EOHz6My+XC5/NRW1uLruscOXIEj8eD0+lkz549lJWVUVdXR3l5OYqicPDgQbxeL0+fPiWTyTA2NsaZM2eYmprKtXi/W7b8bz5dSLbalieTSc6fP49hGLS0tBTYcgGQSCROAn9YM1t9MZmfn2d6ejrfLbUYhnHD7hjJZPJnKWVHSUzF45JhGF1QeDltkVL+RvYO9zUwI4Roa2hoiFkDBT3z4cOH2vLy8kkp5ffAXuAbNnc9/weYAP5UVfXasWPH/s1N+A/hSMnCCuYIDAAAAABJRU5ErkJggg==' 'map' { 'iconSize' 32 } 'color' 'orange' } { 'key' 'Error' 'color' 'red' 'render' 'marker' 'map' { 'iconSize' [ 30 32 ] } 'marker' 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAOxAAADsQBlSsOGwAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAPqSURBVFiFxZc7TFtnGIaf/9jmYoMvgMNFpoOpaIYQgRiAASlCwUEKLiuDRQphQYJE7cBApS6pulQdWNiSKFF3q4UIOcnCwASSpRBBsMSIgJRLQMIGH5/zdyDHHNs4UAer73S+9/u/874+/8X/J8iCvHPHTUnJMDAAfAfcAJTscVeEDnxEyg8oyl9o2nPx9u2heYDIEA8ERoDfgaoCBS/DHkL8JCKRlwaR/mUyEPgNeFpEcYBqpHwhA4EnBiE+i498FgdA83pJBIMkW1rQPB6wWguTS6Ww7O9TsrJC+ewslt1dc/YH8fr1CyHv3/egqhuAByB5+zZHjx4hy8oKE80DcXKCc3qakpUVg9ojmfxWQVUfGuKa11sUcQBZVsbR48do1dUGVY3NNqIAQYNJ9PcXRdxsItHfb6aCCmdbDYDkrVtFE09rtLScB0LcVACvEesuV9EN6G63ObxhxXzIKGeP+/v7HB8fX/iCmpoaysvLC3egZJxpSs7+WlhYIBwO56232WxMTU3h8XgKN2F2kE2sr69/sUBVVRKJxLWIA+Q9YaxWK6FQKIf3er00NDTk8JqmAWCxWHJyqVQKi8WCECInl9eAoii0trbmS7O0tEQ0GqWrq4vFxUVisRhCCAYHB9nZ2WFvb4+2tjbm5+fZ2trCbrczNjbGN7W1VzNwGcLhMPF4nNXV1Qx+eXk5PY3RaDTNx+NxNjc3r24glUoxMzOTwblcLoLBIE6nE1VV03xFRQW9vb1omobP58tYRz6fj46ODqSUtLe3g5RXM6DrOrFYLIevr6+np6cnHSuKwvj4OHV1dQBsb2+nc263m4mJCUpLS89fkExezYAQgvr6+gzO5XLlrIvm5ua0eDY6OzszxS9AXgM2m43JyckvFsPZ588Hu91+aX2hV61rw/9uIO8UqKp64RQ0NjYyOjpaPAPGnEopSWatWICNjQ02NzdxOBx8+vSJysrKjLzD4UAIgZQyJ5fPgI4xFbpOX18fDoeD09PTCwu8Xi9NTU0MDQ2xtrZGd3d3Rr6yspJQKMTBwQEt5v9+A7qeEVmBf4BaAOXwkKraWgYGBi517vf78fv9F+ba29vz1ikHB+bwowKkjy3ThbFoKHn//jyQ8oMCzBpx+dwc4uSkaOIikcD+6pWZmlWw2Z4C+wCW3V2c09NFMSESCZzT0yjnvcEeqvrsrDG5d28YKZ8ZGa2m5rwxqar6+sbk3Tvsc3NmcRDigYhEXqZvCDIQ+BX4uTCl/wghnohI5BfIbU4fAH8A1RfVXYPwLrr+o3jz5s80lT1G3r3rwmIZRsrvgZucbdGvac93gDWk/Bur9bmYnz8yD/gXwKBHJwNxAm8AAAAASUVORK5CYII=' } ] 'globalParams' { 'map' { 'cluster' true 'clusterCustomIcon' true 'maxClusterRadius' 100 } } }

Point of Interest

A Point of Interest (POI) is a specific datapoint you decide to focus on by clicking on it. It emits an event which contains the list of POIs. By listening this kind of event, you can decide how to handle them.

{
  'cellHeight' 90
  'vars' {  
     'myPOIs' [] // The dedicated var that contains POIs
  }
  'tiles' [
    { // map with POI support
      'type' 'map' 'x' 0 'y' 0 'w' 12 'h' 2
      'options' { 
        'timeMode' 'timestamp' 
        'eventHandler' 'type=variable,tag=markers' 
        'poi' T
        'poiColor' 'blue'
        'poiLine' 'dotted'
       }
      'macro' <%
        [ 
          1 4 <% 
            'i' STORE NEWGTS 'data-' $i TOSTRING + RENAME 'g' STORE
            1 10 <% 'ts' STORE $g $ts RAND RAND RAND RAND ADDVALUE DROP %> FOR
            $g
          %> FOR
        ] 'data' STORE
        { 
          'data' $data
          'events' [
            { 'tags' [ 'pois' ] 'type' 'poi' 'selector' 'myPOIs' }
          ]
        }
      %>
    }
    { // Display selected POIs
      'title' 'POI'
      'type' 'tabular' 'x' 0 'y' 2 'w' 12 'h' 3
      'options' { 'eventHandler' 'type=poi,tag=pois' }
      'macro' <%
        {
          'data' {
            'columns'  [ 'date' 'lat' 'lng' 'name' 'value' ]
            'rows' $myPOIs <% 'date' GET %> SORTBY <% 
              'p' STORE
              [ $p 'date' GET $p 'lat' GET $p 'lng' GET $p 'name' GET $p 'value' GET ] 
            %> F LMAP
          }
          'globalParams' {
            'tabular' { 'fixedWidth' true }
          }
        }
      %>
    }      
  ]
}
{ 'cellHeight' 90 'vars' { 'myPOIs' [] // The dedicated var that contains POIs } 'tiles' [ { // map with POI support 'type' 'map' 'x' 0 'y' 0 'w' 12 'h' 2 'options' { 'timeMode' 'timestamp' 'eventHandler' 'type=variable,tag=markers' 'poi' T 'poiColor' 'blue' 'poiLine' 'dotted' } 'macro' <% [ 1 4 <% 'i' STORE NEWGTS 'data-' $i TOSTRING + RENAME 'g' STORE 1 10 <% 'ts' STORE $g $ts RAND RAND RAND RAND ADDVALUE DROP %> FOR $g %> FOR ] 'data' STORE { 'data' $data 'events' [ { 'tags' [ 'pois' ] 'type' 'poi' 'selector' 'myPOIs' } ] } %> } { // Display selected POIs 'title' 'POI' 'type' 'tabular' 'x' 0 'y' 2 'w' 12 'h' 3 'options' { 'eventHandler' 'type=poi,tag=pois' } 'macro' <% { 'data' { 'columns' [ 'date' 'lat' 'lng' 'name' 'value' ] 'rows' $myPOIs <% 'date' GET %> SORTBY <% 'p' STORE [ $p 'date' GET $p 'lat' GET $p 'lng' GET $p 'name' GET $p 'value' GET ] %> F LMAP } 'globalParams' { 'tabular' { 'fixedWidth' true } } } %> } ] }

Found an issue on this page or something missing?

Tell us onSlack iconThe Lounge, the Warp 10 Community Slack.