Distribuir puntos superpuestos en un círculo - R

Tengo una cantidad de puntos en R que se superponen -> mi idea es crear una nueva columna de coordenadas donde los extienda en un círculo.

No quiero temblar; se ve feo y es engañoso -> hace que el espectador piense que los datos son realmente así, en lugar de que se hayan presentado así para mayor visibilidad.

Creo que un círculo o girasol o estrella se ve bien, así que eso es lo que quiero hacer. Lo que tengo no funciona muy bien, creo que debido a las proyecciones geográficas:

antes de

Después

Coordenadas de ejemplo

(ENTRADA):

Latitude    Longitude
51.52328    -0.1570965
51.52328    -0.1570965
51.52328    -0.1570965
51.52328    -0.1570965
51.52328    -0.1570965

SALIDA:

new_lat new_lng
51.50815    -0.1545583
51.53691    -0.1620067
51.51205    -0.1501359
51.53138    -0.1656516
51.51884    -0.1475074

Mi código en este momento:

#http://geepeeex.com/LongitudesAndLatitudes.htm
#UK (122/78)
radius_size = 0.001
lat_radius_size = radius_size*(122/78)
many_stations$new_lat <- many_stations$Latitude
many_stations$new_lng <- many_stations$Longitude

for (i in unique(many_stations$Station)) {
# Get group-length = N
group_length = length(which(many_stations$Station == i))
#Cos/Sin take degrees not radians
circle_chunk = (360/group_length)
angle = circle_chunk
# If duplicates:
  if(group_length>1) {
    print(paste('group_length: ',group_length))
    # Loop within the group
    for (j in which(many_stations$Station == i)) {
      print(paste('row: ',j))

      many_stations[j,]$new_lng <- many_stations[j,]$Longitude + sin(angle)*radius_size
      many_stations[j,]$new_lat <- many_stations[j,]$Latitude + cos(angle)*lat_radius_size

      angle = angle + circle_chunk
    }
  }
}

Respuestas a la pregunta(2)

Su respuesta a la pregunta