code: def main():
      imagery = OSM()
  
      fig = plt.figure()
      ax = fig.add_subplot(1, 1, 1, projection=imagery.crs)
      ax.set_extent([-0.14, -0.1, 51.495, 51.515], ccrs.PlateCarree())
  
      # Construct concentric circles and a rectangle,
      # suitable for a London Underground logo.
      theta = np.linspace(0, 2 * np.pi, 100)
      circle_verts = np.vstack([np.sin(theta), np.cos(theta)]).T
      concentric_circle = Path.make_compound_path(
          Path(circle_verts[::-1]), Path(circle_verts * 0.6)
      )
  
      rectangle = Path([[-1.1, -0.2], [1, -0.2], [1, 0.3], [-1.1, 0.3]])
  
      # Add the imagery to the map.
      ax.add_image(imagery, 14)
  
      # Plot the locations twice, first with the red concentric circles,
      # then with the blue rectangle.
      xs, ys = tube_locations().T
      ax.plot(
          xs,
          ys,
          transform=ccrs.OSGB(approx=False),
          marker=concentric_circle,
          color="red",
          markersize=9,
          linestyle="",
      )
      ax.plot(
          xs,
          ys,
          transform=ccrs.OSGB(approx=False),
          marker=rectangle,
          color="blue",
          markersize=11,
          linestyle="",
      )
  
      ax.set_title("London underground locations")
      plt.show()
  
imports: from matplotlib.path import Path
  import matplotlib.pyplot
  import numpy
  import cartopy.crs
  from cartopy.io.img_tiles import OSM
label_desc: Use image node_id 2 for calling a global function with example usage: main() without return types