title: Can geom_label draw points to a position on a map?
body: <p>I am making a map using <code>ggplot2</code>, and I'd like to place some point labels off (in the margin of the map or what could be a margin) the map with some text describing the point. For instance, the following code produces: </p>
  
  <pre><code>require(tidyverse)
  
  # UK Base polygon 
  UK &lt;- map_data(map = "world", region = "UK",interior = T) 
  
  # Cities to plot as geom_points
  UK_cities &lt;- world.cities %&gt;% 
      filter(country.etc == 'UK')
  
  # Filter for the ones of interest
  UK_cities &lt;- UK_cities %&gt;% 
      filter(name %in% c('London',
                     'Edinburgh',
                     'Glasgow',
                     'Birmingham',
                     'Edinburgh'))
  
  # plot with ggplot    
  ggplot(data = UK, aes(x = long, y = lat, group = group)) + 
      geom_polygon(aes(x = long, y = lat, group = group),fill = 'grey80',
                   color = 'grey80') + 
      geom_point(data = UK_cities,aes(long, lat,group = name))+
      geom_text(data = UK_cities,
                aes(long, lat,label = name,group = name),
                color = 'black',
                size  = 3)+
      coord_map()+
      theme_void()
  </code></pre>
  
  <p>Which produces:
  <a href="https://i.stack.imgur.com/AH5IZ.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/AH5IZ.png" alt="enter image description here"></a></p>
  
  <p>My question is: Can <code>geom_label</code> 'draw' a line to a given point and be positioned elsewhere on the map/plot? I'd like to have 'London' off to the side with a small blurb of information, i.e. population, etc. Is there a way to do this? </p>