def geo_bounds_based_on_center
      viewport_radius_w = @viewport_w / 2
      viewport_radius_h = @viewport_h / 2
      max_lat = @center_lat + Rational(viewport_radius_h, pixel_per_lat)
      min_lat = @center_lat - Rational(viewport_radius_h, pixel_per_lat)
      max_long = @center_long + Rational(viewport_radius_w, pixel_per_long)
      min_long = @center_long - Rational(viewport_radius_w, pixel_per_long)
      @geo_bounds_based_on_center ||= {
        sw: [min_lat, min_long],
        ne: [max_lat, max_long]
      }
    end
def geo_bounds_based_on_center
      viewport_radius_w = @viewport_w / 2
      viewport_radius_h = @viewport_h / 2
      max_lat = @center_lat + Rational(viewport_radius_h, pixel_per_lat)
      min_lat = @center_lat - Rational(viewport_radius_h, pixel_per_lat)
      max_long = @center_long + Rational(viewport_radius_w, pixel_per_long)
      min_long = @center_long - Rational(viewport_radius_w, pixel_per_long)
      @geo_bounds_based_on_center ||= {
        sw: [min_lat, min_long],
        ne: [max_lat, max_long]
      }
    end
Return: latlng bounds of the viewport