{
const map = vl.markGeoshape();
const earth = map
.data(vl.topojson(world).feature('countries'))
.encode(
vl.color().value('lightgrey'),
vl.stroke().value('darkgrey')
);
const graticule = map
.data(vl.graticule())
.encode(
vl.stroke().value('lightgrey'),
);
const sphere = map
.data(vl.sphere())
.encode(
vl.color().value('transparent'),
vl.stroke().value('black')
);
const scatter = vl.markCircle({ opacity: 0.5 })
.data(airports)
.encode(
vl.longitude().fieldQ('lon'),
vl.latitude().fieldQ('lat'),
vl.tooltip(['Orig', 'Name']),
vl.size().fieldQ('TotalSeats').scale({ range: [10, 200]}),
vl.order().fieldQ('TotalSeats').sort('descending')
);
return vl.layer(graticule, sphere, earth, scatter)
.width(800)
.height(500)
.project(
vl.projection('orthographic')
)
.render()
}