This is a webservice that allows us to map US ZIP codes to a pair of coordinates.

Usage is very simple, just query the service with a ZIP code as a parameter: http://localhost/zip2coords/?zip=90210

And receive the coordinates in JSON format:


Data comes from GeoNames Postal Codes. It is distributed as a plain text file. To build the MySQL database run the database/geonames.sh shell script. It'll download the required data, setup the database structure and import the data into it using MySQL's native load functionality.

Requires PHP with PDO and JSON support.

Nearest Location

A webservice to find the nearest location (for example the nearest office, store, etc of a business) to the given location (typically the user's), either by coordinates or ZIP code, in the latter case using the ZIP2Coords webservice.

Locations are stored in the file locations.json in JSON format.

To use just query the service with either a ZIP code or a pair of coordinates: http://localhost/nearest/?zip=90210 or http://localhost/nearest/?lat=40&lng=-73.

To get a response such as:

    "location": "Orlando",
    "URL": "http:\/\/localhost\/Orlando_FL.html",
    "distance": 198.46303408646,
    "latitude": 28.661653,
    "longitude": -81.354558

Requires PHP with cURL support and memcached. To run the tests you need PHPUnit.