Question for Java/PHP Programmers
Does anyone know how I can incorporate, using SQL, Java, and PHP, a function that, when 2 zip codes are entered, it gives an approximate distance between the 2 zip codes. Like, somewhere within 20 miles or so?
I know UPS does it to give estimates on shipping costs. Also places like mapquest use it to give directions. I dont' need something that complex, just an approximation between 2 area codes. |
In order to do that you need some kind of database that has locational information of all the zip codes. In short you need some kind of geographical database like GIS (I'm not sure of the name of the company that makes the big one Arcview I think it's EMSI?).
They also make an internet mapping one that can power a mapquest like application. I'm not sure if it's tied to a specific platform or if there is any web service associated with it or not. |
Well, here's a website where you can get the latitude an longitude (which i suspect you could easily translate into miles) of a specified zip code http://www.census.gov/cgi-bin/gazetteer/
Now, getting all the zip codes in this database manually would be pretty tedious... The remedies I can think of are: 1) Write a script that checks all zip codes (00001 through 99999) and use a Regular Expression to extract the coordinates from the page when it comes back, then store these coordinates to your database. 2) Have your script check your database to see if you already have the info for the submitted zip code, and if not, do the same thing as in #1 above, only for that code. Eventually you would build up a pretty complete library of zip codes. 3) Find another way to get the zip codes. Writing the regular expression for this could be a little tricky. Once you have the latitude and longitude for your two zip codes, you could subtract them to get the north-south difference and the east-west difference. Using those and the pythagorean theorem you could find the distance between the two points. Find a conversion factor for degrees (distance, lat. & long.) to miles and you're set This could all be a little more work than you want to put into it though. It would be a cool webapp when you're done though. If you need / want more help, just let me know :D |
Don't build your own table. Go here, <b>Census Tables </b>, and download the zip table used by this service. This is a page off of the one recommended by fox128 above.
The other thing you could do is search for a SOAP service that does what you want. Not sure if there are any here, but <b>XMethods </b> is a good place to start. |
Hey fox 128. I found a text file (about 1.8 meg) of many cities with their zip codes, population, and lat/long. Thanks a lot for your help in this matter. I'm gonna start working with the sql now and see if I can get a demo up here within the next week or so. I'll keep you informed
Thank you also platypus |
Ah, that table makes things much simpler.
Can't wait to see how your project develops, good luck. |
Why use java - PHP and MySQL can do the same thing but much quicker, and do you realy want to have your viewers to have to download the java script every time the view or refresh the page. PHP's math functions are more powerfull anyway.
As for the zip code formula - ask UPS they will give it to you. |
Code:
diff_miles = 3963.0 * acos( sin( zip1_lattitude_rad ) * sin ( zip2_lattitude_rad ) + cos( zip1_lattitude_rad ) * cos ( zip2_lattitude_rad ) * cos( zip2_longitude_rad - zip1.longitude_rad ) ) |
Or you could use: (Probably less cpu intensive)
Code:
$diff_miles = $conversion * sqrt( pow( $zip1_lattitude_rad - $zip2_lattitude_rad, 2 ) + pow( $zip1_longitude_rad - $zip2_longitude_rad, 2 ); |
All times are GMT -8. The time now is 07:14 PM. |
Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Search Engine Optimization by vBSEO 3.6.0 PL2
© 2002-2012 Tilted Forum Project