{ "$schema": "https://vega.github.io/schema/vega/v5.json", "background": "white", "padding": 5, "width": 800, "height": 500, "data": [ { "name": "source_0", "url": "data/us-10m.json", "format": {"type": "topojson", "feature": "states"} }, {"name": "source_1", "url": "data/airports.csv", "format": {"type": "csv"}}, { "name": "data_0", "source": "source_1", "transform": [ { "type": "geojson", "fields": ["longitude", "latitude"], "signal": "layer_1_geojson_0" }, { "type": "geopoint", "projection": "projection", "fields": ["longitude", "latitude"], "as": ["layer_1_x", "layer_1_y"] } ] }, { "name": "source_2", "url": "data/flights-airport.csv", "format": {"type": "csv", "parse": {"origin": "string"}}, "transform": [ {"type": "filter", "expr": "datum[\"origin\"]===\"SEA\""}, { "type": "lookup", "from": "source_1", "key": "iata", "fields": ["origin"], "values": ["latitude", "longitude"], "as": ["origin_latitude", "origin_longitude"] }, { "type": "lookup", "from": "source_1", "key": "iata", "fields": ["destination"], "values": ["latitude", "longitude"], "as": ["dest_latitude", "dest_longitude"] }, { "type": "geojson", "fields": ["origin_longitude", "origin_latitude"], "signal": "layer_2_geojson_0" }, { "type": "geojson", "fields": ["dest_longitude", "dest_latitude"], "signal": "layer_2_geojson_1" }, { "type": "geopoint", "projection": "projection", "fields": ["origin_longitude", "origin_latitude"], "as": ["layer_2_x", "layer_2_y"] }, { "type": "geopoint", "projection": "projection", "fields": ["dest_longitude", "dest_latitude"], "as": ["layer_2_x2", "layer_2_y2"] } ] } ], "projections": [ { "name": "projection", "size": {"signal": "[width, height]"}, "fit": { "signal": "[data('source_0'), layer_1_geojson_0, layer_2_geojson_0, layer_2_geojson_1]" }, "type": "albersUsa" } ], "marks": [ { "name": "layer_0_marks", "type": "shape", "style": ["geoshape"], "from": {"data": "source_0"}, "encode": { "update": { "fill": {"value": "lightgray"}, "stroke": {"value": "white"}, "ariaRoleDescription": {"value": "geoshape"} } }, "transform": [{"type": "geoshape", "projection": "projection"}] }, { "name": "layer_1_marks", "type": "symbol", "style": ["circle"], "from": {"data": "data_0"}, "encode": { "update": { "opacity": {"value": 0.7}, "fill": {"value": "gray"}, "ariaRoleDescription": {"value": "circle"}, "description": { "signal": "\"longitude: \" + (format(datum[\"longitude\"], \"\")) + \"; latitude: \" + (format(datum[\"latitude\"], \"\"))" }, "x": {"field": "layer_1_x"}, "y": {"field": "layer_1_y"}, "size": {"value": 5}, "shape": {"value": "circle"} } } }, { "name": "layer_2_marks", "type": "rule", "style": ["rule"], "from": {"data": "source_2"}, "encode": { "update": { "stroke": {"value": "black"}, "description": { "signal": "\"origin_longitude: \" + (format(datum[\"origin_longitude\"], \"\")) + \"; dest_longitude: \" + (format(datum[\"dest_longitude\"], \"\")) + \"; origin_latitude: \" + (format(datum[\"origin_latitude\"], \"\")) + \"; dest_latitude: \" + (format(datum[\"dest_latitude\"], \"\"))" }, "x": {"field": "layer_2_x"}, "x2": {"field": "layer_2_x2"}, "y": {"field": "layer_2_y"}, "y2": {"field": "layer_2_y2"} } } } ] }