Documentation ¶
Overview ¶
zipcodes is a package that uses the GeoNames Postal Code dataset from http://www.geonames.org in order to perform zipcode lookup operations
Index ¶
- func DistanceBetweenPoints(latitude1, longitude1, latitude2, longitude2 float64, radius float64) float64
- type ZipCodeLocation
- type Zipcodes
- func (zc *Zipcodes) CalculateDistance(zipCodeA string, zipCodeB string, radius float64) (float64, error)
- func (zc *Zipcodes) DistanceInKm(zipCodeA string, zipCodeB string) (float64, error)
- func (zc *Zipcodes) DistanceInKmToZipCode(zipCode string, latitude, longitude float64) (float64, error)
- func (zc *Zipcodes) DistanceInMilToZipCode(zipCode string, latitude, longitude float64) (float64, error)
- func (zc *Zipcodes) DistanceInMiles(zipCodeA string, zipCodeB string) (float64, error)
- func (zc *Zipcodes) FindZipcodesWithinRadius(location *ZipCodeLocation, maxRadius float64, earthRadius float64) []string
- func (zc *Zipcodes) GetZipcodesWithinKmRadius(zipCode string, radius float64) ([]string, error)
- func (zc *Zipcodes) GetZipcodesWithinMlRadius(zipCode string, radius float64) ([]string, error)
- func (zc *Zipcodes) Lookup(zipCode string) (*ZipCodeLocation, error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DistanceBetweenPoints ¶
func DistanceBetweenPoints(latitude1, longitude1, latitude2, longitude2 float64, radius float64) float64
DistanceBetweenPoints returns the distance between two lat/lon points using the Haversin distance formula.
Types ¶
type ZipCodeLocation ¶
type ZipCodeLocation struct { ZipCode string PlaceName string AdminName string State string Lat float64 Lon float64 }
ZipCodeLocation struct represents each line of the dataset
type Zipcodes ¶
type Zipcodes struct {
DatasetList map[string]ZipCodeLocation
}
Zipcodes contains the whole list of structs representing the zipcode dataset
func LoadDataset ¶
LoadDataset reads and loads the dataset into a map interface
func New ¶
New loads the dataset that this packages uses and returns a struct that contains the dataset as a map interface
func (*Zipcodes) CalculateDistance ¶
func (zc *Zipcodes) CalculateDistance(zipCodeA string, zipCodeB string, radius float64) (float64, error)
CalculateDistance returns the line of sight distance between two zipcodes in Kilometers
func (*Zipcodes) DistanceInKm ¶
DistanceInKm returns the line of sight distance between two zipcodes in Kilometers
func (*Zipcodes) DistanceInKmToZipCode ¶
func (zc *Zipcodes) DistanceInKmToZipCode(zipCode string, latitude, longitude float64) (float64, error)
DistanceInKmToZipcode calculates the distance between a zipcode and a give lat/lon in Kilometers
func (*Zipcodes) DistanceInMilToZipCode ¶
func (zc *Zipcodes) DistanceInMilToZipCode(zipCode string, latitude, longitude float64) (float64, error)
DistanceInMilToZipcode calculates the distance between a zipcode and a give lat/lon in Miles
func (*Zipcodes) DistanceInMiles ¶
DistanceInMiles returns the line of sight distance between two zipcodes in Miles
func (*Zipcodes) FindZipcodesWithinRadius ¶
func (zc *Zipcodes) FindZipcodesWithinRadius(location *ZipCodeLocation, maxRadius float64, earthRadius float64) []string
FindZipcodesWithinRadius finds zipcodes within a given radius
func (*Zipcodes) GetZipcodesWithinKmRadius ¶
GetZipcodesWithinKmRadius get all zipcodes within the radius of this zipcode
func (*Zipcodes) GetZipcodesWithinMlRadius ¶
GetZipcodesWithinMlRadius get all zipcodes within the radius of this zipcode