new_contents: """
  Grouped Points with Proportional Symbols Map
  ============================================
  This is a layered geographic visualization that groups points by state.
  """
  # category: maps
  import altair as alt
  from vega_datasets import data
  
  airports = data.airports.url
  states = alt.topo_feature(data.us_10m.url, feature='states')
  
  # US states background
  background = alt.Chart(states).mark_geoshape(
      fill='lightgray',
      stroke='white'
  ).properties(
      width=500,
      height=300
  ).project('albersUsa')
  
  # Airports grouped by state
  points = alt.Chart(airports).transform_aggregate(
      latitude='mean(latitude)',
      longitude='mean(longitude)',
      count='count()',
      groupby=['state']
  ).mark_circle().encode(
      longitude='longitude:Q',
      latitude='latitude:Q',
      size=alt.Size('count:Q', title='Number of Airports'),
      color=alt.value('steelblue'),
      tooltip=['state:N','count:Q']
  ).properties(
      title='Number of airports in US'
  )
  
  background + points
  
subject: Create groupby-map.py