Richard: I found this post incredibly useful.  Thank you!


Richard Lynch wrote:
If you only want "close" things to a given location, the curvature of the
earth is pretty insignificant.

...

I realized one day that at a distance of a hundred miles or less, I just didn't *CARE* about curvature of the earth, and replaced that trig with your basic Cartesian distance.

Made a *HUGE* difference in performance.

...
Put a longitude and latitude column on your existing table, and default it
to NULL.

Write your business logic so that *ANY* time a zip code is changed, the
longitude/latitude is re-set to NULL.  (Or use triggers or whatever you
want to make this happen.  I don't care.)

Finally, write a cron job (scheduled task in Windoze) to find N records at
random in your table where the long/lat is NULL, and *copy* over the
long/lat from the zips table.
...

PPS You can pay $$$ for the "complete" databases of zips, or use the TIGER data for free just interpolate from existing entries to make up long/lats for new zips. EG: If tomorrow the USPS creates zip code 60609, I can be pretty damn sure it's "close enough" to 60601 through 60608 and just average them to make up bogus long/lat. Sure, it's "wrong". It's also FREE and "close enough" for what I (and almost for sure you) are doing.



--
Teach a person to fish...

Ask smart questions: http://www.catb.org/~esr/faqs/smart-questions.html
PHP Manual: http://www.php.net/manual/en/index.php
php-general archives: http://marc.theaimsgroup.com/?l=php-general&w=2

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Reply via email to