Created
May 22, 2019 15:57
-
-
Save simonhearne/054e73324e32233d82f1fc110b8dae48 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "$schema": "https://vega.github.io/schema/vega/v5.json", | |
| "width": 900, | |
| "height": 500, | |
| "autosize": "none", | |
| "padding": 0, | |
| "title": { | |
| "text": "Akamai CloudTest Locations", | |
| "zindex": 10 | |
| }, | |
| "encode": { | |
| "update": { | |
| "fill": {"value": "white"} | |
| } | |
| }, | |
| "signals": [ | |
| {"name": "type", "value": "equirectangular"}, | |
| { "name": "scale", "value": 170}, | |
| { "name": "center0", "value": 15}, | |
| { "name": "center1", "value": 60}, | |
| { "name": "translate0", "update": "(width / 2)" }, | |
| { "name": "translate1", "update": "(height / 4)" }, | |
| { | |
| "name": "highlight_provider", | |
| "value": null, | |
| "on": [ | |
| { | |
| "events": "@legendSymbol:mouseover, @legendLabel:mouseover", | |
| "update": "datum.value" | |
| }, | |
| { | |
| "events": "@points:mouseover", | |
| "update": "datum.properties.provider" | |
| }, | |
| { | |
| "events": "@points:mouseout, @legendSymbol:mouseout, @legendLabel:mouseout", | |
| "update": "null" | |
| } | |
| ] | |
| }, | |
| { | |
| "name": "highlight_name", | |
| "value": null, | |
| "on": [ | |
| { | |
| "events": "@points:mouseover", | |
| "update": "datum.properties.name", | |
| "force": true | |
| }, | |
| { | |
| "events": "@points:mouseout", | |
| "update": "null", | |
| "force": true | |
| } | |
| ] | |
| } | |
| ], | |
| "projections": [ | |
| { | |
| "name": "projection", | |
| "type": {"signal": "type"}, | |
| "scale": {"signal": "scale"}, | |
| "center": [ | |
| {"signal": "center0"}, | |
| {"signal": "center1"} | |
| ], | |
| "translate": [ | |
| {"signal": "translate0"}, | |
| {"signal": "translate1"} | |
| ] | |
| } | |
| ], | |
| "data": [ | |
| { | |
| "name": "world", | |
| "url": "data/world-110m.json", | |
| "format": { | |
| "type": "topojson", | |
| "feature": "countries" | |
| } | |
| }, | |
| { | |
| "name": "locations", | |
| "values": [ | |
| { | |
| "type": "Feature", | |
| "properties": { | |
| "name": "N. Virginia", | |
| "provider": "AWS", | |
| "id": "us-east-1" | |
| }, | |
| "geometry": { | |
| "type": "Point", | |
| "coordinates": [-77.1,38.9] | |
| } | |
| }, | |
| { | |
| "type": "Feature", | |
| "properties": { | |
| "name": "Ohio", | |
| "provider": "AWS", | |
| "id": "us-east-2" | |
| }, | |
| "geometry": { | |
| "type": "Point", | |
| "coordinates": [-83,40] | |
| } | |
| }, | |
| { | |
| "type": "Feature", | |
| "properties": { | |
| "name": "N. California", | |
| "provider": "AWS", | |
| "id": "us-west-1" | |
| }, | |
| "geometry": { | |
| "type": "Point", | |
| "coordinates": [-122.3,37.9] | |
| } | |
| }, | |
| { | |
| "type": "Feature", | |
| "properties": { | |
| "name": "Oregon", | |
| "provider": "AWS", | |
| "id": "us-west-2" | |
| }, | |
| "geometry": { | |
| "type": "Point", | |
| "coordinates": [-122.6,45.6] | |
| } | |
| }, | |
| { | |
| "type": "Feature", | |
| "properties": { | |
| "name": "Canada", | |
| "provider": "AWS", | |
| "id": "ca-central-1" | |
| }, | |
| "geometry": { | |
| "type": "Point", | |
| "coordinates": [-73.6,45.5] | |
| } | |
| }, | |
| { | |
| "type": "Feature", | |
| "properties": { | |
| "name": "Frankfurt", | |
| "provider": "AWS", | |
| "id": "eu-central-1" | |
| }, | |
| "geometry": { | |
| "type": "Point", | |
| "coordinates": [8.7,50.1] | |
| } | |
| }, | |
| { | |
| "type": "Feature", | |
| "properties": { | |
| "name": "Ireland", | |
| "provider": "AWS", | |
| "id": "eu-west-1" | |
| }, | |
| "geometry": { | |
| "type": "Point", | |
| "coordinates": [-6.3,53.3] | |
| } | |
| }, | |
| { | |
| "type": "Feature", | |
| "properties": { | |
| "name": "London", | |
| "provider": "AWS", | |
| "id": "eu-west-2" | |
| }, | |
| "geometry": { | |
| "type": "Point", | |
| "coordinates": [-0.1,51.5] | |
| } | |
| }, | |
| { | |
| "type": "Feature", | |
| "properties": { | |
| "name": "Paris", | |
| "provider": "AWS", | |
| "id": "eu-west-3" | |
| }, | |
| "geometry": { | |
| "type": "Point", | |
| "coordinates": [2.4,48.9] | |
| } | |
| }, | |
| { | |
| "type": "Feature", | |
| "properties": { | |
| "name": "Stockholm", | |
| "provider": "AWS", | |
| "id": "eu-north-1", | |
| "coming": true | |
| }, | |
| "geometry": { | |
| "type": "Point", | |
| "coordinates": [18.1,59.3] | |
| } | |
| }, | |
| { | |
| "type": "Feature", | |
| "properties": { | |
| "name": "Hong Kong", | |
| "provider": "AWS", | |
| "id": "ap-east-1" | |
| }, | |
| "geometry": { | |
| "type": "Point", | |
| "coordinates": [114.1,22.4] | |
| } | |
| }, | |
| { | |
| "type": "Feature", | |
| "properties": { | |
| "name": "Tokyo", | |
| "provider": "AWS", | |
| "id": "ap-northeast-1" | |
| }, | |
| "geometry": { | |
| "type": "Point", | |
| "coordinates": [139.7,35.7] | |
| } | |
| }, | |
| { | |
| "type": "Feature", | |
| "properties": { | |
| "name": "Seoul", | |
| "provider": "AWS", | |
| "id": "ap-northeast-2" | |
| }, | |
| "geometry": { | |
| "type": "Point", | |
| "coordinates": [127.0,37.6] | |
| } | |
| }, | |
| { | |
| "type": "Feature", | |
| "properties": { | |
| "name": "Osaka", | |
| "provider": "AWS", | |
| "id": "ap-northeast-3" | |
| }, | |
| "geometry": { | |
| "type": "Point", | |
| "coordinates": [135.5,34.7] | |
| } | |
| }, | |
| { | |
| "type": "Feature", | |
| "properties": { | |
| "name": "Singapore", | |
| "provider": "AWS", | |
| "id": "ap-southeast-1" | |
| }, | |
| "geometry": { | |
| "type": "Point", | |
| "coordinates": [103.8,1.4] | |
| } | |
| }, | |
| { | |
| "type": "Feature", | |
| "properties": { | |
| "name": "Sydney", | |
| "provider": "AWS", | |
| "id": "ap-southeast-2" | |
| }, | |
| "geometry": { | |
| "type": "Point", | |
| "coordinates": [151.2,-33.9] | |
| } | |
| }, | |
| { | |
| "type": "Feature", | |
| "properties": { | |
| "name": "Mumbai", | |
| "provider": "AWS", | |
| "id": "ap-south-1" | |
| }, | |
| "geometry": { | |
| "type": "Point", | |
| "coordinates": [72.9,19.1] | |
| } | |
| }, | |
| { | |
| "type": "Feature", | |
| "properties": { | |
| "name": "São Paulo", | |
| "provider": "AWS", | |
| "id": "sa-east-1" | |
| }, | |
| "geometry": { | |
| "type": "Point", | |
| "coordinates": [-46.6,-23.6] | |
| } | |
| }, | |
| { | |
| "type": "Feature", | |
| "properties": { | |
| "name": "Hong Kong", | |
| "provider": "Azure", | |
| "id": "sa-east-1" | |
| }, | |
| "geometry": { | |
| "type": "Point", | |
| "coordinates": [116,23] | |
| } | |
| }, | |
| { | |
| "type": "Feature", | |
| "properties": { | |
| "name": "Singapore", | |
| "provider": "Azure", | |
| "id": "sa-east-1" | |
| }, | |
| "geometry": { | |
| "type": "Point", | |
| "coordinates": [103,0] | |
| } | |
| }, | |
| { | |
| "type": "Feature", | |
| "properties": { | |
| "name": "São Paulo", | |
| "provider": "Azure", | |
| "id": "sa-east-1" | |
| }, | |
| "geometry": { | |
| "type": "Point", | |
| "coordinates": [-45,-23] | |
| } | |
| }, | |
| { | |
| "type": "Feature", | |
| "properties": { | |
| "name": "Amsterdam", | |
| "provider": "Azure", | |
| "id": "sa-east-1" | |
| }, | |
| "geometry": { | |
| "type": "Point", | |
| "coordinates": [4.9,52.4] | |
| } | |
| }, | |
| { | |
| "type": "Feature", | |
| "properties": { | |
| "name": "Ireland", | |
| "provider": "Azure" | |
| }, | |
| "geometry": { | |
| "type": "Point", | |
| "coordinates": [-6,53] | |
| } | |
| }, | |
| { | |
| "type": "Feature", | |
| "properties": { | |
| "name": "Tokyo", | |
| "provider": "Azure" | |
| }, | |
| "geometry": { | |
| "type": "Point", | |
| "coordinates": [140,35] | |
| } | |
| }, | |
| { | |
| "type": "Feature", | |
| "properties": { | |
| "name": "Osaka", | |
| "provider": "Azure" | |
| }, | |
| "geometry": { | |
| "type": "Point", | |
| "coordinates": [135,34] | |
| } | |
| }, | |
| { | |
| "type": "Feature", | |
| "properties": { | |
| "name": "Osaka", | |
| "provider": "Azure", | |
| "id": "ap-northeast-3" | |
| }, | |
| "geometry": { | |
| "type": "Point", | |
| "coordinates": [135,34] | |
| } | |
| }, | |
| { | |
| "type": "Feature", | |
| "properties": { | |
| "name": "Iowa", | |
| "provider": "Azure" | |
| }, | |
| "geometry": { | |
| "type": "Point", | |
| "coordinates": [-93.1,41.9] | |
| } | |
| }, | |
| { | |
| "type": "Feature", | |
| "properties": { | |
| "name": "Virginia", | |
| "provider": "Azure" | |
| }, | |
| "geometry": { | |
| "type": "Point", | |
| "coordinates": [-78.7,37.4] | |
| } | |
| }, | |
| { | |
| "type": "Feature", | |
| "properties": { | |
| "name": "Chicago", | |
| "provider": "Azure" | |
| }, | |
| "geometry": { | |
| "type": "Point", | |
| "coordinates": [-87.6,41.9] | |
| } | |
| }, | |
| { | |
| "type": "Feature", | |
| "properties": { | |
| "name": "Dallas", | |
| "provider": "Azure" | |
| }, | |
| "geometry": { | |
| "type": "Point", | |
| "coordinates": [-96.8,32.8] | |
| } | |
| }, | |
| { | |
| "type": "Feature", | |
| "properties": { | |
| "name": "California", | |
| "provider": "Azure" | |
| }, | |
| "geometry": { | |
| "type": "Point", | |
| "coordinates": [-122,37] | |
| } | |
| }, | |
| { | |
| "type": "Feature", | |
| "properties": { | |
| "name": "Paris", | |
| "provider": "Azure" | |
| }, | |
| "geometry": { | |
| "type": "Point", | |
| "coordinates": [2,48] | |
| } | |
| }, | |
| { | |
| "type": "Feature", | |
| "properties": { | |
| "name": "South Africa North", | |
| "provider": "Azure" | |
| }, | |
| "geometry": { | |
| "type": "Point", | |
| "coordinates": [28,-26.2] | |
| } | |
| }, | |
| { | |
| "type": "Feature", | |
| "properties": { | |
| "name": "Dallas", | |
| "provider": "Rackspace" | |
| }, | |
| "geometry": { | |
| "type": "Point", | |
| "coordinates": [-96.8,32.8] | |
| } | |
| }, | |
| { | |
| "type": "Feature", | |
| "properties": { | |
| "name": "Chicago", | |
| "provider": "Rackspace" | |
| }, | |
| "geometry": { | |
| "type": "Point", | |
| "coordinates": [-87.6,41.9] | |
| } | |
| }, | |
| { | |
| "type": "Feature", | |
| "properties": { | |
| "name": "London", | |
| "provider": "Rackspace" | |
| }, | |
| "geometry": { | |
| "type": "Point", | |
| "coordinates": [0,52] | |
| } | |
| }, | |
| { | |
| "type": "Feature", | |
| "properties": { | |
| "name": "Northern Virginia", | |
| "provider": "Rackspace" | |
| }, | |
| "geometry": { | |
| "type": "Point", | |
| "coordinates": [-78,38] | |
| } | |
| }, | |
| { | |
| "type": "Feature", | |
| "properties": { | |
| "name": "Canada", | |
| "provider": "GCE" | |
| }, | |
| "geometry": { | |
| "type": "Point", | |
| "coordinates": [-73,46] | |
| } | |
| }, | |
| { | |
| "type": "Feature", | |
| "properties": { | |
| "name": "Finland", | |
| "provider": "GCE" | |
| }, | |
| "geometry": { | |
| "type": "Point", | |
| "coordinates": [24.9,60.2] | |
| } | |
| }, | |
| { | |
| "type": "Feature", | |
| "properties": { | |
| "name": "Belgium", | |
| "provider": "GCE" | |
| }, | |
| "geometry": { | |
| "type": "Point", | |
| "coordinates": [4.4,50.9] | |
| } | |
| }, | |
| { | |
| "type": "Feature", | |
| "properties": { | |
| "name": "Frankfurt", | |
| "provider": "GCE" | |
| }, | |
| "geometry": { | |
| "type": "Point", | |
| "coordinates": [8.7,50.1] | |
| } | |
| }, | |
| { | |
| "type": "Feature", | |
| "properties": { | |
| "name": "London", | |
| "provider": "GCE" | |
| }, | |
| "geometry": { | |
| "type": "Point", | |
| "coordinates": [1,52] | |
| } | |
| }, | |
| { | |
| "type": "Feature", | |
| "properties": { | |
| "name": "Netherlands", | |
| "provider": "GCE" | |
| }, | |
| "geometry": { | |
| "type": "Point", | |
| "coordinates": [6.8,53.4] | |
| } | |
| }, | |
| { | |
| "type": "Feature", | |
| "properties": { | |
| "name": "Switzerland", | |
| "provider": "GCE" | |
| }, | |
| "geometry": { | |
| "type": "Point", | |
| "coordinates": [8.5,47.4] | |
| } | |
| }, | |
| { | |
| "type": "Feature", | |
| "properties": { | |
| "name": "Hong Kong", | |
| "provider": "GCE" | |
| }, | |
| "geometry": { | |
| "type": "Point", | |
| "coordinates": [114.5,24] | |
| } | |
| }, | |
| { | |
| "type": "Feature", | |
| "properties": { | |
| "name": "Japan", | |
| "provider": "GCE" | |
| }, | |
| "geometry": { | |
| "type": "Point", | |
| "coordinates": [139,35] | |
| } | |
| }, | |
| { | |
| "type": "Feature", | |
| "properties": { | |
| "name": "Mumbai", | |
| "provider": "GCE" | |
| }, | |
| "geometry": { | |
| "type": "Point", | |
| "coordinates": [72,19] | |
| } | |
| }, | |
| { | |
| "type": "Feature", | |
| "properties": { | |
| "name": "Singapore", | |
| "provider": "GCE" | |
| }, | |
| "geometry": { | |
| "type": "Point", | |
| "coordinates": [102,1] | |
| } | |
| }, | |
| { | |
| "type": "Feature", | |
| "properties": { | |
| "provider": "GCE", | |
| "name": "São Paulo" | |
| }, | |
| "geometry": { | |
| "type": "Point", | |
| "coordinates": [-46,-22] | |
| } | |
| }, | |
| { | |
| "type": "Feature", | |
| "properties": { | |
| "provider": "GCE", | |
| "name": "Sydney" | |
| }, | |
| "geometry": { | |
| "type": "Point", | |
| "coordinates": [152,-33] | |
| } | |
| }, | |
| { | |
| "type": "Feature", | |
| "properties": { | |
| "provider": "GCE", | |
| "name": "Taiwan" | |
| }, | |
| "geometry": { | |
| "type": "Point", | |
| "coordinates": [121,23.7] | |
| } | |
| }, | |
| { | |
| "type": "Feature", | |
| "properties": { | |
| "provider": "GCE", | |
| "name": "Idaho" | |
| }, | |
| "geometry": { | |
| "type": "Point", | |
| "coordinates": [-114.7,44] | |
| } | |
| }, | |
| { | |
| "type": "Feature", | |
| "properties": { | |
| "provider": "GCE", | |
| "name": "Virginia" | |
| }, | |
| "geometry": { | |
| "type": "Point", | |
| "coordinates": [-79.5,38] | |
| } | |
| }, | |
| { | |
| "type": "Feature", | |
| "properties": { | |
| "provider": "GCE", | |
| "name": "South Carolina" | |
| }, | |
| "geometry": { | |
| "type": "Point", | |
| "coordinates": [-81.1,33.8] | |
| } | |
| }, | |
| { | |
| "type": "Feature", | |
| "properties": { | |
| "provider": "GCE", | |
| "name": "Los Angeles" | |
| }, | |
| "geometry": { | |
| "type": "Point", | |
| "coordinates": [-118.2,34.1] | |
| } | |
| }, | |
| { | |
| "type": "Feature", | |
| "properties": { | |
| "provider": "GCE", | |
| "name": "Oregon" | |
| }, | |
| "geometry": { | |
| "type": "Point", | |
| "coordinates": [-122,45] | |
| } | |
| } | |
| ], | |
| "transform": [ | |
| { | |
| "type": "geopoint", | |
| "projection": "projection", | |
| "fields": ["geometry.coordinates[0]","geometry.coordinates[1]"] | |
| } | |
| ] | |
| } | |
| ], | |
| "scales": [ | |
| { | |
| "name": "providercolor", | |
| "type": "ordinal", | |
| "range": "category", | |
| "domain": {"data": "locations","field": "properties.provider"} | |
| } | |
| ], | |
| "marks": [ | |
| { | |
| "type": "shape", | |
| "from": {"data": "world"}, | |
| "encode": { | |
| "update": { | |
| "strokeWidth": {"value": 2}, | |
| "strokeOpacity": {"value": 0.1}, | |
| "zindex": {"value": 0} | |
| } | |
| }, | |
| "transform": [ | |
| { "type": "geoshape", "projection": "projection" } | |
| ] | |
| }, | |
| { | |
| "type": "shape", | |
| "name": "points", | |
| "from": {"data": "locations"}, | |
| "encode": { | |
| "enter": { | |
| "shape": {"value": "circle"}, | |
| "fill": {"scale": "providercolor", "field": "properties.provider"}, | |
| "stroke": {"signal": "datum.properties.coming ? 'grey' : scale('providercolor',datum.properties.provider)"}, | |
| "strokeWidth": {"value": 2} | |
| }, | |
| "update": { | |
| "fillOpacity": {"signal": "highlight_provider ? datum.properties.provider == highlight_provider ? '1.0' : '0.1' : '0.5'"}, | |
| "strokeOpacity": {"signal": "highlight_provider ? datum.properties.provider == highlight_provider ? '1.0' : '0' : '1.0'"} | |
| }, | |
| "hover": { | |
| "fillOpacity": {"value": 1} | |
| } | |
| }, | |
| "transform": [ | |
| { | |
| "type": "geoshape", | |
| "projection": "projection", | |
| "pointRadius": 5 | |
| } | |
| ] | |
| }, | |
| { | |
| "type": "text", | |
| "from": {"data": "locations"}, | |
| "interactive": false, | |
| "encode": { | |
| "enter": { | |
| "text": {"signal": "datum.properties.name + (datum.properties.coming ? ' (Coming Soon)' : '')"}, | |
| "fontSize": {"value": 10} | |
| }, | |
| "update": { | |
| "fillOpacity": {"signal": "datum.properties.provider == highlight_provider ? '1.0' : '0'"}, | |
| "x": {"field": "x", "offset": 10}, | |
| "y": {"field": "y","offset": 7} | |
| }, | |
| "hover": { | |
| "fillOpacity": {"signal": "datum.properties.provider == highlight_provider ? '1.0' : '0'"} | |
| } | |
| } | |
| }, | |
| { | |
| "type": "text", | |
| "from": {"data": "locations"}, | |
| "interactive": false, | |
| "encode": { | |
| "enter": { | |
| "text": {"field": "properties.provider"}, | |
| "fontSize": {"value": 10} | |
| }, | |
| "update": { | |
| "fillOpacity": {"signal": "datum.properties.provider == highlight_provider ? '1.0' : '0'"}, | |
| "x": {"field": "x", "offset": 10}, | |
| "y": {"field": "y","offset": -2} | |
| }, | |
| "hover": { | |
| "fillOpacity": {"signal": "datum.properties.provider == highlight_provider ? '1.0' : '0'"} | |
| } | |
| } | |
| } | |
| ], | |
| "legends": [ | |
| { | |
| "type": "symbol", | |
| "fill": "providercolor", | |
| "orient": "none", | |
| "zindex": 100, | |
| "title": "Akamai CloudTest Locations", | |
| "encode": { | |
| "labels": { | |
| "name": "legendLabel", | |
| "interactive": true | |
| }, | |
| "symbols": { | |
| "name": "legendSymbol", | |
| "interactive": true, | |
| "enter": { | |
| "size": {"value": 75}, | |
| "fillOpacity": {"value": 0.5} | |
| }, | |
| "update": { | |
| "stroke": {"signal": "!highlight_provider || datum.value == highlight_provider ? scale('providercolor', datum.value) : 'transparent'"} | |
| } | |
| } | |
| } | |
| } | |
| ] | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment