How to get proximity search with Location module to work

Like many of you, I wanted the proximity search function in the Location module to work on my site.  Turns out, it doesn't really work "out of the box", and I spent many weeks working on it but now I believe I have it working and wanted to share my success with others who may be disgruntled with the entire process.

  1. Download the Location module, the 3.x-dev version (2009-Jul-31)
  2. Install module
  3. Import MySQL database of US zip codes from the database folder (located inside the location module folder).
  4. Download the proximity patch
  5. Place the patch in the Location module directory
  6. Run the patch from the command line: patch -p0 < location_proximity_rerolled_321114.patch
  7. Now that it's patched, go to the Locations module settings (admin/settings/location) and select the option "Enable JIT geocoding".
  8. Enable other settings in the Location module, making sure you have a mapping API enabled, such as Google and enabled for the United States (admin/settings/location/geocoding and admin/settings/location/maplinking)
  9. Create a new node type or edit an existing node type to allow for Locations to be attached to the node (from what I understand, CCK Location fields do not work).
  10. Add/edit nodes with location information
  11. Download and install the Views module, if it isn't already on your site
  12. Create a new View
    1.  Type: Location
    2. Add field Location: Distance / Proximity
      1. Units: Miles
      2. Origin: Use Distance / Proximity Filter
    3. Add field Node:Title
    4. Add Filter Location: Distance / Proximity
      1. Expose the filter
      2. Operator: Proximity (Circular)
      3. Form Mode: Postal Code (Assume default country)
    5. Optional: You can add other options such as a sort option, other fields to display, filters, et al.  The options above are the necessary ones.
    6. Create a page or block to display the view
  13. Last step (and kind of tricky): Go into your Drupal MySQL database and go to the Locations table.  In there, you will see all of the nodes that have a location.  You need to change all of them to have a value of "4" in the "Source" column

That's it!  Everything should work now.