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 ¶
- Variables
- func DistanceBetweenPoints(latitude1, longitude1, latitude2, longitude2, radius float64) float64
- func IsMulti(zipcodeLocations ZipCodeLocations) bool
- type ZipCodeLocation
- type ZipCodeLocations
- type Zipcodes
- func (zc Zipcodes) CalculateDistance(zipcodeLocationA, zipcodeLocationB ZipCodeLocation, radius float64) float64
- func (zc Zipcodes) DistanceInKm(zipcodeLocationA ZipCodeLocation, zipcodeLocationB ZipCodeLocation) float64
- func (zc Zipcodes) DistanceInKmToZipCode(zipcodeLocation ZipCodeLocation, latitude, longitude float64) float64
- func (zc Zipcodes) DistanceInMilToZipCode(zipcodeLocation ZipCodeLocation, latitude, longitude float64) float64
- func (zc Zipcodes) DistanceInMiles(zipcodeLocationA, zipcodeLocationB ZipCodeLocation) float64
- func (zc Zipcodes) FindZipcodesWithinRadius(zipcodeLocation ZipCodeLocation, maxRadius, earthRadius float64) []string
- func (zc Zipcodes) GetZipcodesWithinKmRadius(zipcodeLocation ZipCodeLocation, radius float64) []string
- func (zc Zipcodes) GetZipcodesWithinMlRadius(zipcodeLocation ZipCodeLocation, radius float64) []string
- func (zc Zipcodes) Lookup(zipCode string) (ZipCodeLocations, error)
Constants ¶
This section is empty.
Variables ¶
var ( ErrMultipleLatLon = errors.New("zipcode has multiple lat/lon coordinates") ErrZipcodeNotFound = errors.New("zipcode not found") )
Functions ¶
func DistanceBetweenPoints ¶
DistanceBetweenPoints returns the distance between two lat/lon points using the Haversine distance formula.
func IsMulti ¶ added in v2.1.0
func IsMulti(zipcodeLocations ZipCodeLocations) bool
IsMulti returns if there are multiple lat/lon coordinates for a zipcode
Types ¶
type ZipCodeLocation ¶
type ZipCodeLocation struct { ZipCode string PlaceName string AdminName string Lat float64 Lon float64 StateCode string }
ZipCodeLocation struct represents each line of the dataset
type ZipCodeLocations ¶ added in v2.1.0
type ZipCodeLocations []ZipCodeLocation
ZipCodeLocations slice represents a zipcode with multiple lat/lon coordinates
func (ZipCodeLocations) IsMulti ¶ added in v2.1.0
func (zcl ZipCodeLocations) IsMulti() bool
IsMulti returns if there are multiple lat/lon coordinates for a zipcode
type Zipcodes ¶
type Zipcodes struct {
DatasetList map[string]ZipCodeLocations
}
Zipcodes contains the whole list of structs representing the zipcode dataset
func LoadDataset ¶
LoadDataset reads and loads the dataset into a map interface
func LoadDatasetByCountry ¶
LoadDatasetByCountry reads and loads the dataset into a map interface filtered by ISO Country Code
func NewByCountry ¶ added in v2.1.0
NewByCountry loads the dataset, filtered by country, and returns a struct that contains the dataset as a map interface
func (Zipcodes) CalculateDistance ¶
func (zc Zipcodes) CalculateDistance(zipcodeLocationA, zipcodeLocationB ZipCodeLocation, radius float64) float64
CalculateDistance returns the line of sight distance between two zipcode locations in Kilometers
func (Zipcodes) DistanceInKm ¶
func (zc Zipcodes) DistanceInKm(zipcodeLocationA ZipCodeLocation, zipcodeLocationB ZipCodeLocation) float64
DistanceInKm returns the line of sight distance between two zipcode locations in Kilometers
func (Zipcodes) DistanceInKmToZipCode ¶
func (zc Zipcodes) DistanceInKmToZipCode(zipcodeLocation ZipCodeLocation, latitude, longitude float64) float64
DistanceInKmToZipcode calculates the distance between a zipcode and a give lat/lon in Kilometers
func (Zipcodes) DistanceInMilToZipCode ¶
func (zc Zipcodes) DistanceInMilToZipCode(zipcodeLocation ZipCodeLocation, latitude, longitude float64) float64
DistanceInMilToZipcode calculates the distance between a zipcode and a give lat/lon in Miles
func (Zipcodes) DistanceInMiles ¶
func (zc Zipcodes) DistanceInMiles(zipcodeLocationA, zipcodeLocationB ZipCodeLocation) float64
DistanceInMiles returns the line of sight distance between two zipcode locations in Miles
func (Zipcodes) FindZipcodesWithinRadius ¶
func (zc Zipcodes) FindZipcodesWithinRadius(zipcodeLocation ZipCodeLocation, maxRadius, earthRadius float64) []string
FindZipcodesWithinRadius finds zipcodes within a given radius
func (Zipcodes) GetZipcodesWithinKmRadius ¶
func (zc Zipcodes) GetZipcodesWithinKmRadius(zipcodeLocation ZipCodeLocation, radius float64) []string
GetZipcodesWithinKmRadius get all zipcodes within the radius of this zipcode
func (Zipcodes) GetZipcodesWithinMlRadius ¶
func (zc Zipcodes) GetZipcodesWithinMlRadius(zipcodeLocation ZipCodeLocation, radius float64) []string
GetZipcodesWithinMlRadius get all zipcodes within the radius of this zipcode