2

We create direct mail lists around groups of approx 20-50 site locations.

There seem to be many (even free) tools to generate a list with one zip code/distance but we need to be able to enter a list of 20-50 site location zips and get back one master list with all the zips within the range of those site zips.

We had a tool that worked well for years called ZipFind Deluxe - unfortunately they are out of business. We'd upload our site zip codes, enter the maximum distance value and get back a master list of all the zips within the range along with the distance each one was from the original site location zip.

Does anyone know of any software that does this? Thanks in advance for any help.

2 Answers 2

1

Our MileCharter products can but you would need a list of zipcodes - two of the versions work with host applications that have these.

MileCharter calculates mileage tables/etc and can also do things like "only report the closest or within a specific distance/time". So if you give it zipcodes as destinations then it can be told to only report those in X miles or Y minutes.

The site is https://www.milecharter.com

Versions available for Microsoft MapPoint (now very old), and Caliper Maptitude (modern updates, comes with lots of data); and "Ultra Mileage" - our own in-house system. The latter has a geocoder tool but for your application you could also source your own zipcode centroids. Perhaps Geonames.org would have them?

1

This site provides a download with All US zip codes with their corresponding latitude and longitude coordinates. Comma delimited for your database goodness..

This python code:

const home = { latitude: ???degrees, longitude: ???degrees }
const distance = function(latitude, longitude) {
    // From https://www.movable-type.co.uk/scripts/latlong.html
    const φ1 = latitude * Math.PI/180 // φ, λ in radians
    const φ2 = home.latitude * Math.PI/180
    const Δφ = (latitude - home.latitude) * Math.PI/180
    const Δλ = (longitude - home.longitude) * Math.PI/180
    const a = ( Math.sin(Δφ/2) * Math.sin(Δφ/2) ) + ( Math.cos(φ1) * Math.cos(φ2) * Math.sin(Δλ/2) * Math.sin(Δλ/2) )
    const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a))
    return 6371e3 * 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)) // in metres       
}

returns the distance in metres between any two points.

It shouldn't be difficult to combine the two into a short program to do what you want.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.