/**
  * Creates a polygon that stems from the latitude and longitude provided
  * 
  * @param integer $lat          Reference latitude in degrees
  * @param integer $long         Reference longitude in degrees
  * @param integer $maxRadius    Units away from the reference cordinates
  * @param integer $verts        Number of vertices required
  * @param boolean $openEnded    If true, the polygon is not closed
  * 
  * @return array List of polygon points
  */
 public function makePolygon($lat, $long, $maxRadius = 1, $verts = 4, $openEnded = false)
 {
     /* Ensure the vertices are more than 1 */
     if ($verts < 2) {
         throw new GeneratorException("The number of vertices specified is too low", GeneratorException::ERR_TOO_FEW_VERTICES);
     }
     $theta = 360 / ($openEnded ? $verts + 1 : $verts);
     $currentAngle = 0;
     $collection = new Collection([]);
     /* We are going to generate these point clockwise */
     for ($p = 1; $p <= $verts; $p++) {
         // Generate the "r" from this point
         $r = mt_rand(1, 10) / 10;
         // Normalize to between 0, 1
         $currentAngle += $theta;
         $newLat = $lat + ($r * cos($currentAngle) + $maxRadius);
         $newLng = $long + ($r * sin($currentAngle) + $maxRadius);
         $collection->add(new Location($newLat, $newLng));
     }
     return $collection;
 }